{"version":3,"file":"static/js/main.df8afa9a.js","mappings":"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","sources":["components/socialMedia/SocialMedia.js","portfolio.js","utils.js","../node_modules/exenv/index.js","../node_modules/lottie-react/compiled/hooks/useLottie.js","../node_modules/lottie-react/compiled/hooks/useLottieInteractivity.js","../node_modules/lottie-react/compiled/components/Lottie.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/object-assign/index.js","../node_modules/performance-now/src/performance-now.coffee","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/raf/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-easy-emoji/index.js","../node_modules/react-easy-emoji/lib/makeTwemojiRenderer.js","../node_modules/react-easy-emoji/lib/replaceEmoji.js","../node_modules/react-headroom/dist/index.js","../node_modules/react-headroom/dist/shouldUpdate.js","../node_modules/react-headroom/dist/supportsPassiveEvents.js","../node_modules/react-proptype-conditional-require/isRequiredIf.js","../node_modules/react-reveal/Bounce.js","../node_modules/react-reveal/Fade.js","../node_modules/react-reveal/Flip.js","../node_modules/react-reveal/LightSpeed.js","../node_modules/react-reveal/Reveal.js","../node_modules/react-reveal/RevealBase.js","../node_modules/react-reveal/Roll.js","../node_modules/react-reveal/Rotate.js","../node_modules/react-reveal/Slide.js","../node_modules/react-reveal/Zoom.js","../node_modules/react-reveal/globals.js","../node_modules/react-reveal/index.js","../node_modules/react-reveal/wrap.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/scriptjs/dist/script.js","../node_modules/shallowequal/index.js","../node_modules/string-replace-to-array/string-replace-to-array.js","assets/images|sync|/^/.//.*$","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/css loading","../webpack/runtime/jsonp chunk loading","contexts/StyleContext.js","components/ToggleSwitch/ToggleSwitch.js","components/header/Header.js","containers/loading/Loading.js","components/displayLottie/DisplayLottie.js","components/button/Button.js","containers/greeting/Greeting.js","components/softwareSkills/SoftwareSkill.js","containers/skills/Skills.js","containers/skillProgress/skillProgress.js","../node_modules/colorthief/dist/color-thief.mjs","components/experienceCard/ExperienceCard.js","containers/workExperience/WorkExperience.js","containers/projects/Projects.js","containers/StartupProjects/StartupProject.js","components/achievementCard/AchievementCard.js","containers/achievement/Achievement.js","components/blogCard/BlogCard.js","containers/blogs/Blogs.js","components/footer/Footer.js","components/talkCard/TalkCard.js","containers/talks/Talks.js","containers/podcast/Podcast.js","components/educationCard/EducationCard.js","containers/education/Education.js","containers/topbutton/Top.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/react-twitter-embed/src/components/twitter-widget-url.js","../node_modules/react-twitter-embed/src/components/TwitterTimelineEmbed.js","../node_modules/react-twitter-embed/src/components/TwitterShareButton.js","../node_modules/react-twitter-embed/src/components/TwitterFollowButton.js","../node_modules/react-twitter-embed/src/components/TwitterHashtagButton.js","../node_modules/react-twitter-embed/src/components/TwitterMentionButton.js","../node_modules/react-twitter-embed/src/components/TwitterTweetEmbed.js","../node_modules/react-twitter-embed/src/components/TwitterMomentShare.js","../node_modules/react-twitter-embed/src/components/TwitterDMButton.js","../node_modules/react-twitter-embed/src/components/TwitterVideoEmbed.js","../node_modules/react-twitter-embed/src/components/TwitterOnAirButton.js","containers/twitter-embed/twitter.js","containers/contact/Contact.js","containers/profile/Profile.js","containers/splashScreen/SplashScreen.js","hooks/useLocalStorage.js","containers/chat/Chat.js","containers/Main.js","App.js","serviceWorker.js","index.js"],"sourcesContent":["import React from \"react\";\nimport \"./SocialMedia.scss\";\nimport {socialMediaLinks} from \"../../portfolio\";\n\nexport default function socialMedia() {\n if (!socialMediaLinks.display) {\n return null;\n }\n return (\n
\n {socialMediaLinks.github ? (\n \n \n \n \n ) : null}\n\n {socialMediaLinks.linkedin ? (\n \n \n \n \n ) : null}\n\n {socialMediaLinks.gmail ? (\n \n \n \n \n ) : null}\n\n {socialMediaLinks.gitlab ? (\n \n \n \n \n ) : null}\n\n {socialMediaLinks.facebook ? (\n \n \n \n \n ) : null}\n\n {socialMediaLinks.instagram ? (\n \n \n \n \n ) : null}\n\n {socialMediaLinks.twitter ? (\n \n \n \n \n ) : null}\n\n {socialMediaLinks.medium ? (\n \n \n \n \n ) : null}\n\n {socialMediaLinks.stackoverflow ? (\n \n \n \n \n ) : null}\n\n {socialMediaLinks.kaggle ? (\n \n \n \n \n ) : null}\n
\n );\n}\n","/* Change this file to get your personal Portfolio */\n\n// To change portfolio colors globally go to the _globalColor.scss file\n\nimport emoji from \"react-easy-emoji\";\nimport splashAnimation from \"./assets/lottie/splashAnimation\"; // Rename to your file name for custom animation\nimport getAssetUrl from \"./utils\";\n// Splash Screen\n\nconst splashScreen = {\n enabled: true, // set false to disable splash screen`\n animation: splashAnimation,\n duration: 2000 // Set animation duration as per your animation\n};\n\n// Summary And Greeting Section\n\nconst illustration = {\n animated: true // Set to false to use static SVG\n};\n\nconst greeting = {\n username: \"Pai Peng\",\n title: \"Hi all, I'm Pai\",\n chatWithResumeLink: \"https://paipeline-anythingaboutme-appchatbot-tut6g2.streamlit.app/\",\n chatWithResumeText: \"Chat with my cv/resume\\n\",\n subTitle: emoji(\n \"Ideas are cheap, execution is everything!\"\n ),\n currentProject: {\n text: \"Currently developing\",\n projectName: \"Mindy: Multimodal knowledge note merging platform\",\n description: \"Mindy transforms video, audio and PDFs into atomic knowledge cards for users to drag and drop into their notes and merge them with LLM. Generate flashcards, graphs and more!\",\n projectLink: \"https://mymindy.net\"\n },\n // earlyProject: {\n // text: \"Early-stage\",\n // projectName: \"Vitaelia: AI-Powered Wearable Vision System\",\n // description: \"Developing modular AI vision hardware solutions focusing on cost-effective, detachable smart lenses and necklace systems. Looking for partners - if interested, feel free to contact me!\"\n // },\n plannedProjects: [\n {\n text: \"Research initiative\",\n projectName: \"NextAPI\",\n description: \"A Huggingface-like place for fast reinforcement fine-tuned agents api calling with a standard API interface and a common marketplace. Currently seeking partners - if interested, feel free to contact me!\"\n }\n ],\n smallProjects: {\n title: \"Academic & Medium-Scale Projects\",\n subtitle: \"Click to collapse\",\n display: true,\n defaultOpen: true,\n projects: [\n {\n projectName: \"AnythingAboutMe\",\n description: \"A personalized chatbot representing the user to answer any question by using knowledge from resume and conversation history\"\n },\n {\n projectName: \"Qlora\",\n description: \"Exploration of QLoRA on transfer learning from movie reviews to book reviews, required by research\"\n },\n {\n projectName: \"JobPush.ai\",\n description: \"Built an AI-powered job matching system for a group of 200+ F1 students, using web scraping and LLM-based recommendation matching to assist in job searching\"\n },\n {\n projectName: \"Portfolio Optimization System\",\n description: \"Developed a financial portfolio optimization system combining Markowitz Modern Portfolio Theory with news sentiment analysis with backtesting for enhanced investment decisions\"\n },\n {\n projectName: \"Song Searcher\",\n description: \"Implemented an efficient music search using graph theory for optimized data storage and retrieval for music recommendation\"\n },\n\n {\n projectName: \"Distributed ETL Pipeline\",\n description: \"Built a scalable data processing system using Cassandra, Spark, and Kafka for efficient ETL operations\"\n },\n {\n projectName: \"Low-Resolution Object Detection\",\n description: \"Implemented ResNet architecture for accurate object detection in low-resolution images\"\n },\n {\n projectName: \"Flock Simulation\",\n description: \"Implemented a computer graphics simulation of bird flocking behavior using Boids algorithm, featuring emergent behaviors through local interaction rules\"\n },\n {\n projectName: \"Major Recommendation System\",\n description: \"Created a personalized academic major recommendation system using collaborative filtering and content-based approaches\"\n },\n {\n projectName: \"Badger Mobile App\",\n description: \"Created a comprehensive mobile application featuring in price management\"\n },\n ]\n },\n displayGreeting: true\n};\n\n// Social Media Links\n\nconst socialMediaLinks = {\n github: \"https://github.com/paipeline\",\n linkedin: \"www.linkedin.com/in/pai-peng-8aa782199\",\n gmail: \"ppeng24@wisc.edu\",\n // Instagram, Twitter and Kaggle are also supported in the links!\n // To customize icons and social links, tweak src/components/SocialMedia\n display: true // Set true to display this section, defaults to false\n};\n\n// Skills Section\n\nconst skillsSection = {\n title: \"My backpack\",\n subTitle: \"Bilingual in Spanish and Chinese with life experience across EU, US and Asia\",\n skills: [\n emoji(\"⚡ Research in Editing LLM Models\"),\n emoji(\"⚡ User resume-based AI-to-AI conversation flow system\"),\n emoji(\"⚡ Research in Machine Learning for Chemical Compound Demixing\"),\n emoji(\"⚡ Research in Deep Learning for Low Light Vision under laboratory settings\"),\n emoji(\"⚡ Integrated AI reviewer agent in Company's Computer Vision Gitlab codebase for Machine Vision Code Review\"),\n ],\n\n /* Make Sure to include correct Font Awesome Classname to view your icon\nhttps://fontawesome.com/icons?d=gallery */\n\n softwareSkills: [\n {skillName: \"python\", fontAwesomeClassname: \"fab fa-python\"},\n {skillName: \"JavaScript\", fontAwesomeClassname: \"fab fa-js\"},\n {skillName: \"reactjs\", fontAwesomeClassname: \"fab fa-react\"},\n {skillName: \"MongoDB\", fontAwesomeClassname: \"fas fa-database\"},\n {skillName: \"pytorch\", fontAwesomeClassname: \"fas fa-fire\"},\n {skillName: \"tensorflow\", fontAwesomeClassname: \"fas fa-brain\"},\n {skillName: \"figma\", fontAwesomeClassname: \"fab fa-figma\"},\n {skillName: \"java\", fontAwesomeClassname: \"fab fa-java\"},\n {skillName: \"Postgresql\", fontAwesomeClassname: \"fas fa-database\"},\n {skillName: \"Git\", fontAwesomeClassname: \"fab fa-git\"},\n {skillName: \"C/C++\", fontAwesomeClassname: \"fas fa-fire\"},\n {skillName: \"Terraform\", fontAwesomeClassname: \"fas fa-cloud\"},\n {skillName: \"Docker\", fontAwesomeClassname: \"fas fa-ship\"},\n {skillName: \"Linux\", fontAwesomeClassname: \"fab fa-linux\"},\n {skillName: \"AWS\", fontAwesomeClassname: \"fas fa-cloud\"},\n {skillName: \"Cassandra\", fontAwesomeClassname: \"fas fa-database\"},\n \n\n ],\n display: true // Set false to hide this section, defaults to true\n};\n\n// Achievement Section\nconst achievementSection = {\n title: emoji(\"Achievements And Certifications 🏆 \"),\n subtitle: \"Achievements, Certifications, Award Letters and Some Cool Stuff that I have done!\",\n achievementsCards: [\n {\n title: \"ICPC Central North America Regional Contest\",\n subtitle: \"Top 9 Bronze Medal in the Central North America Regional Contest of the International Collegiate Programming Contest | Top 3 in the University of Wisconsin-Madison\",\n image: getAssetUrl(\"icpcLogo.jpg\"),\n imageAlt: \"ICPC Logo\",\n footerLink: [\n { name: \"View Certificate\", url: \"https://bit.ly/m/step-presentation\" }\n ]\n },\n {\n title: \"Aigües de Barcelona Data Challenge\",\n subtitle: \"Finalist for implementing predictive deep learning modeling on water consumption forecasting using NeuralProphet and analyzing the impact of COVID on water consumption\",\n image: getAssetUrl(\"agues.png\"),\n imageAlt: \"Aigües de Barcelona Logo\",\n footerLink: [\n { name: \"Project Presentation\", url: \"https://junjielyu13.github.io/AiguaDeBarcelona_DataChallenge/templates/about-ust.html\" }\n ]\n },\n {\n title: \"Northwestern University Innovators' Hub - Bronze Medal\",\n subtitle: \"Awarded Bronze Medal at Northwestern University's Innovators' Hub, pitching Step's strategy to automate networking\",\n image: getAssetUrl(\"northwestern.jpg\"),\n imageAlt: \"Northwestern University Logo\",\n footerLink: []\n },\n {\n title: \"XTime International Startup Competition\",\n subtitle: \"Achieved Semifinalist position at Plug and Play's XTime International Startup Competition\",\n image: getAssetUrl(\"plugandplay.jpg\"),\n imageAlt: \"Plug and Play Tech Center Logo\",\n footerLink: []\n }\n ],\n display: true\n};\n\n// Education Section\n\nconst educationInfo = {\n display: true,\n schools: [\n {\n schoolName: \"University of Wisconsin-Madison\",\n logo: getAssetUrl(\"wisconsinLogo.jpeg\"),\n subHeader: \"B.S. Computer Science + Data Science\",\n duration: \"January 2023 - May 2025\",\n desc:\"GPA: 3.8+ / 4.0 (Senior standing)\",\n },\n {\n schoolName: \"Autonomous University of Barcelona\",\n logo: getAssetUrl(\"BarcelonaLogo.png\"),\n subHeader: \"B.S. in Artificial Intelligence (Transferred to the U.S.)\",\n duration: \"September 2021 - January 2023\",\n desc: \"Average Grade: 8.8+ / 10 with Course Honors\"\n }\n ]\n};\n\n// Your top 3 proficient stacks/tech experience\n\nconst techStack = {\n viewSkillBars: true, //Set it to true to show Proficiency Section\n experience: [\n {\n Stack: \"Frontend/Design\", //Insert stack or technology you have experience in\n progressPercentage: \"80%\" //Insert relative proficiency in percentage\n },\n {\n Stack: \"Backend\",\n progressPercentage: \"100%\"\n },\n {\n Stack: \"Programming\",\n progressPercentage: \"100%\"\n }\n ],\n displayCodersrank: false // Set true to display codersrank badges section need to changes your username in src/containers/skillProgress/skillProgress.js:17:62, defaults to false\n};\n\n// Work experience section\n\nconst workExperiences = {\n display: true,\n experience: [\n {\n role: \"Project Lead\",\n company: \"Mindy.ai\", \n companylogo: getAssetUrl(\"mindy.png\"),\n date: \"September 2024 – Present\",\n desc: \"Leading the development of an AI-enabled note-taking platform featuring Git-like note merging capabilities from video, audio and PDFs and flashcard generation for knowledge retention.\",\n descBullets: [\n \"Designed and deployed serverless backend microservices architecture using AWS Lambda and DynamoDB\",\n \"Implemented AI-driven note merging, processing and flashcard generation systems\"\n ],\n skills: [\"Next.js\", \"DynamoDB\", \"AWS Lambda\",\"AWS Lambda\", \"Python\", \"FastAPI\", \"Agent\", 'Terraform']\n },\n {\n role: \"Project Lead\",\n company: \"STEP\",\n companylogo: getAssetUrl(\"stepLogo.jpg\"),\n date: \"January 2024 – Present\",\n desc: \"AI-powered networking solution. Achieved Top 7 in Northwestern University Innovators'Hub competition with $4500 prize and semifinalist in Plug and Play X Time International competition (Silicon Valley)\",\n descBullets: [\n \"Developed an agent-to-agent conversation system for resume analysis, integrating LangChain and ChromaDB with RabbitMQ and MongoDB for enhanced performance and scalability\",\n \"Designed user interfaces using Figma\",\n \"Semifinalist in X Time international startup competition in Silicon Valley\"\n ]\n },\n {\n role: \"Research Assistant\",\n company: \"Computer Vision Center\",\n companylogo: getAssetUrl(\"cvcLogo.png\"),\n date: \"June 2022 – January 2023\",\n desc: \"Conducted benchmark assessments of Deep Learning-based low-light enhancement models. Paper under review for AAAI 2025.\",\n descBullets: [\n \"Automated capture of lab-based ground-truth images\",\n \"Benchmarked models like KinD, KinDPlus, and Zero-Reference on a dataset of 3000+ low-light images of real-world laboratory scenes\",\n ]\n },\n\n {\n role: \"Software Engineer Intern\",\n company: \"Isvision Technologies Co. Ltd\",\n companylogo: getAssetUrl(\"isv.png\"),\n date: \"June 2024 – September 2024\",\n desc: \"AI-powered code review system for the company's Computer Vision codebase\",\n descBullets: [\n \"Developed and deployed an LLM-powered GitLab agent to identify security vulnerabilities and enforce coding standards, with a focus on the company's Computer Vision code.\",\n \"Comment service within GitLab for instant developer LLM queries on specific commits and response, utilizing Redis for efficient retrieval and inline suggestions.\",\n \"Implemented a LLaMA 3 70B-RAG-based code review system on the company's local GitLab repository.\"\n ],\n skills: [\"Redis\", \"MongoDB\", \"RabbitMQ\", \"Python\", \"LLM\", \"AI Agent\", \"Prompt Engineering\"]\n },\n ]\n};\n\n/* Your Open Source Section to View Your Github Pinned Projects\nTo know how to get github key look at readme.md */\n\n// Some big projects you have worked on\n\nconst bigProjects = {\n title: \"Close Source Projects\",\n subtitle: \"Some software products I have worked on\",\n projects: [\n {\n image: getAssetUrl(\"stepLogo.jpg\"),\n projectName: \"Step\",\n projectDesc: \"Automatizing networking\",\n footerLink: [\n {\n name: \"Step website\",\n url: \"https://maimiao.com/\"\n }\n // you can add extra buttons here.\n ]\n },\n {\n image: getAssetUrl(\"vitaelia.jpg\"),\n projectName: \"Vitaelia\",\n projectDesc: \"Wearable AI Vision Necklace\",\n footerLink: [\n {\n name: \"Wearable AI Vision Necklace\",\n }\n ]\n }\n ],\n display: true // Set false to hide this section, defaults to true\n};\n\n// Blogs Section\n\nconst blogSection = {\n title: \"Blogs\",\n subtitle:\n \"With Love for Developing cool stuff, I love to write and teach others what I have learnt.\",\n displayMediumBlogs: \"true\", // Set true to display fetched medium blogs instead of hardcoded ones\n blogs: [\n {\n url: \"https://blog.usejournal.com/create-a-google-assistant-action-and-win-a-google-t-shirt-and-cloud-credits-4a8d86d76eae\",\n title: \"Win a Google Assistant Tshirt and $200 in Google Cloud Credits\",\n description:\n \"Do you want to win $200 and Google Assistant Tshirt by creating a Google Assistant Action in less then 30 min?\"\n },\n {\n url: \"https://medium.com/@saadpasta/why-react-is-the-best-5a97563f423e\",\n title: \"Why REACT is The Best?\",\n description:\n \"React is a JavaScript library for building User Interface. It is maintained by Facebook and a community of individual developers and companies.\"\n }\n ],\n display: false // Set false to hide this section, defaults to true\n};\n\n// Talks Sections\n\nconst openSource = {\n showGithubProfile: \"true\", // Set true or false to show Contact profile using Github, defaults to true\n display: true // Set false to hide this section, defaults to true\n};\n\nconst talkSection = {\n title: \"PRESENTATIONS\",\n subtitle: emoji(\n \"Leadership and Presentations\"\n ),\n\n talks: [\n {\n title: \"Startup presentation at Northwestern University\",\n subtitle: \"Presented STEP and won 7th place with 5000$ in prize sponsored by Amazon Web Services\",\n slides_url: \"https://www.canva.com/design/DAGDpoukV14/gYE3X0ck7Ypg94xTb4wNtA/edit?utm_content=DAGDpoukV14&utm_campaign=designshare&utm_medium=link2&utm_source=sharebutton\",\n },\n {\n title: \"X Time International Startup Competition at Plug and Play Tech Center Silicon Valley\",\n subtitle: \"Semifinalist out of 500+ teams\",\n slides_url: \"https://www.canva.com/design/DAGDpoukV14/gYE3X0ck7Ypg94xTb4wNtA/edit?utm_content=DAGDpoukV14&utm_campaign=designshare&utm_medium=link2&utm_source=sharebutton\",\n },\n\n ],\n display: true // Set false to hide this section, defaults to true\n};\n\n// Podcast Section\n\nconst podcastSection = {\n title: emoji(\"Podcast 🎙️\"),\n subtitle: \"I LOVE TO TALK ABOUT MYSELF AND TECHNOLOGY\",\n\n // Please Provide with Your Podcast embeded Link\n podcast: [\n \"https://anchor.fm/codevcast/embed/episodes/DevStory---Saad-Pasta-from-Karachi--Pakistan-e9givv/a-a15itvo\"\n ],\n display: false // Set false to hide this section, defaults to true\n};\n\n// Resume Section\nconst resumeSection = {\n title: \"Resume\",\n subtitle: \"Feel free to download my resume\",\n\n // Please Provide with Your Podcast embeded Link\n display: false // Set false to hide this section, defaults to true\n};\n\nconst contactInfo = {\n title: emoji(\"Contact Me!\"),\n // subtitle:\n // \"Discuss a project or just want to say hi? My Inbox is open for all.\",\n // number: \"+92-0000000000\",\n email_address: \"ppeng24@wisc.edu\"\n};\n\n// Twitter Section\n\nconst twitterDetails = {\n userName: \"twitter\", //Replace \"twitter\" with your twitter username without @\n display: false // Set true to display this section, defaults to false\n};\n\nconst isHireable = true; // Set false if you are not looking for a job. Also isHireable will be display as Open for opportunities: Yes/No in the GitHub footer\n\nconst chatSection = {\n title: \"Chat with my Resume\",\n subtitle: \"Have a conversation with my AI-powered resume\",\n display: true,\n chatUrl: \"https://paipeline-anythingaboutme-appchatbot-tut6g2.streamlit.app/?embed=true\",\n buttonText: \"Chat with my Resume\"\n};\n\nexport {\n illustration,\n greeting,\n socialMediaLinks,\n splashScreen,\n skillsSection,\n achievementSection,\n educationInfo,\n techStack,\n workExperiences,\n openSource,\n bigProjects,\n blogSection,\n talkSection,\n podcastSection,\n contactInfo,\n twitterDetails,\n isHireable,\n resumeSection,\n chatSection\n};\n","export const formatFileSizeDisplay = value => {\n if (value < 1024) {\n return `${value} KB`;\n }\n return `${parseFloat((value / 1024).toFixed(1))} MB`;\n};\n\n\n\nconst getAssetUrl = (assetPath) => {\n if (process.env.NODE_ENV === 'production') {\n console.log(\"using s3\")\n console.log(`${process.env.REACT_APP_S3_BUCKET_NAME}/${assetPath}`);\n return `${process.env.REACT_APP_S3_BUCKET_NAME}/${assetPath}`;\n }\n console.log(\"using local\")\n console.log(require(`../src/assets/images/${assetPath}`));\n return require(`../src/assets/images/${assetPath}`);\n};\n\nexport default getAssetUrl;","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","import lottie from \"lottie-web\";\nimport React, { useEffect, useRef, useState, } from \"react\";\nconst useLottie = (props, style) => {\n const { animationData, loop, autoplay, initialSegment, onComplete, onLoopComplete, onEnterFrame, onSegmentStart, onConfigReady, onDataReady, onDataFailed, onLoadedImages, onDOMLoaded, onDestroy, \n // Specified here to take them out from the 'rest'\n lottieRef, renderer, name, assetsPath, rendererSettings, \n // TODO: find a better way to extract the html props to avoid specifying\n // all the props that we want to exclude (as you can see above)\n ...rest } = props;\n const [animationLoaded, setAnimationLoaded] = useState(false);\n const animationInstanceRef = useRef();\n const animationContainer = useRef(null);\n /*\n ======================================\n INTERACTION METHODS\n ======================================\n */\n /**\n * Play\n */\n const play = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.play();\n };\n /**\n * Stop\n */\n const stop = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.stop();\n };\n /**\n * Pause\n */\n const pause = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.pause();\n };\n /**\n * Set animation speed\n * @param speed\n */\n const setSpeed = (speed) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSpeed(speed);\n };\n /**\n * Got to frame and play\n * @param value\n * @param isFrame\n */\n const goToAndPlay = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndPlay(value, isFrame);\n };\n /**\n * Got to frame and stop\n * @param value\n * @param isFrame\n */\n const goToAndStop = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndStop(value, isFrame);\n };\n /**\n * Set animation direction\n * @param direction\n */\n const setDirection = (direction) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setDirection(direction);\n };\n /**\n * Play animation segments\n * @param segments\n * @param forceFlag\n */\n const playSegments = (segments, forceFlag) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.playSegments(segments, forceFlag);\n };\n /**\n * Set sub frames\n * @param useSubFrames\n */\n const setSubframe = (useSubFrames) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSubframe(useSubFrames);\n };\n /**\n * Get animation duration\n * @param inFrames\n */\n const getDuration = (inFrames) => { var _a; return (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.getDuration(inFrames); };\n /**\n * Destroy animation\n */\n const destroy = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Removing the reference to the animation so separate cleanups are skipped.\n // Without it the internal `lottie-react` instance throws exceptions as it already cleared itself on destroy.\n animationInstanceRef.current = undefined;\n };\n /*\n ======================================\n LOTTIE\n ======================================\n */\n /**\n * Load a new animation, and if it's the case, destroy the previous one\n * @param {Object} forcedConfigs\n */\n const loadAnimation = (forcedConfigs = {}) => {\n var _a;\n // Return if the container ref is null\n if (!animationContainer.current) {\n return;\n }\n // Destroy any previous instance\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Build the animation configuration\n const config = {\n ...props,\n ...forcedConfigs,\n container: animationContainer.current,\n };\n // Save the animation instance\n animationInstanceRef.current = lottie.loadAnimation(config);\n setAnimationLoaded(!!animationInstanceRef.current);\n // Return a function that will clean up\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n animationInstanceRef.current = undefined;\n };\n };\n /**\n * (Re)Initialize when animation data changed\n */\n useEffect(() => {\n const onUnmount = loadAnimation();\n // Clean up on unmount\n return () => onUnmount === null || onUnmount === void 0 ? void 0 : onUnmount();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [animationData, loop]);\n // Update the autoplay state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n animationInstanceRef.current.autoplay = !!autoplay;\n }, [autoplay]);\n // Update the initial segment state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n // When null should reset to default animation length\n if (!initialSegment) {\n animationInstanceRef.current.resetSegments(true);\n return;\n }\n // If it's not a valid segment, do nothing\n if (!Array.isArray(initialSegment) || !initialSegment.length) {\n return;\n }\n // If the current position it's not in the new segment\n // set the current position to start\n if (animationInstanceRef.current.currentRawFrame < initialSegment[0] ||\n animationInstanceRef.current.currentRawFrame > initialSegment[1]) {\n animationInstanceRef.current.currentRawFrame = initialSegment[0];\n }\n // Update the segment\n animationInstanceRef.current.setSegment(initialSegment[0], initialSegment[1]);\n }, [initialSegment]);\n /*\n ======================================\n EVENTS\n ======================================\n */\n /**\n * Reinitialize listener on change\n */\n useEffect(() => {\n const partialListeners = [\n { name: \"complete\", handler: onComplete },\n { name: \"loopComplete\", handler: onLoopComplete },\n { name: \"enterFrame\", handler: onEnterFrame },\n { name: \"segmentStart\", handler: onSegmentStart },\n { name: \"config_ready\", handler: onConfigReady },\n { name: \"data_ready\", handler: onDataReady },\n { name: \"data_failed\", handler: onDataFailed },\n { name: \"loaded_images\", handler: onLoadedImages },\n { name: \"DOMLoaded\", handler: onDOMLoaded },\n { name: \"destroy\", handler: onDestroy },\n ];\n const listeners = partialListeners.filter((listener) => listener.handler != null);\n if (!listeners.length) {\n return;\n }\n const deregisterList = listeners.map(\n /**\n * Handle the process of adding an event listener\n * @param {Listener} listener\n * @return {Function} Function that deregister the listener\n */\n (listener) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener(listener.name, listener.handler);\n // Return a function to deregister this listener\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener(listener.name, listener.handler);\n };\n });\n // Deregister listeners on unmount\n return () => {\n deregisterList.forEach((deregister) => deregister());\n };\n }, [\n onComplete,\n onLoopComplete,\n onEnterFrame,\n onSegmentStart,\n onConfigReady,\n onDataReady,\n onDataFailed,\n onLoadedImages,\n onDOMLoaded,\n onDestroy,\n ]);\n /**\n * Build the animation view\n */\n const View = React.createElement(\"div\", { style: style, ref: animationContainer, ...rest });\n return {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef: animationContainer,\n animationLoaded,\n animationItem: animationInstanceRef.current,\n };\n};\nexport default useLottie;\n","import { useEffect } from \"react\";\n// helpers\nexport function getContainerVisibility(container) {\n const { top, height } = container.getBoundingClientRect();\n const current = window.innerHeight - top;\n const max = window.innerHeight + height;\n return current / max;\n}\nexport function getContainerCursorPosition(container, cursorX, cursorY) {\n const { top, left, width, height } = container.getBoundingClientRect();\n const x = (cursorX - left) / width;\n const y = (cursorY - top) / height;\n return { x, y };\n}\nexport const useInitInteractivity = ({ wrapperRef, animationItem, mode, actions, }) => {\n useEffect(() => {\n const wrapper = wrapperRef.current;\n if (!wrapper || !animationItem || !actions.length) {\n return;\n }\n animationItem.stop();\n const scrollModeHandler = () => {\n let assignedSegment = null;\n const scrollHandler = () => {\n const currentPercent = getContainerVisibility(wrapper);\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ visibility }) => visibility &&\n currentPercent >= visibility[0] &&\n currentPercent <= visibility[1]);\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n if (action.type === \"seek\" &&\n action.visibility &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const frameToGo = action.frames[0] +\n Math.ceil(((currentPercent - action.visibility[0]) /\n (action.visibility[1] - action.visibility[0])) *\n action.frames[1]);\n //! goToAndStop must be relative to the start of the current segment\n animationItem.goToAndStop(frameToGo - animationItem.firstFrame - 1, true);\n }\n if (action.type === \"loop\") {\n // Loop: Loop a given frames\n if (assignedSegment === null) {\n // if not playing any segments currently. play those segments and save to state\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else {\n // if playing any segments currently.\n //check if segments in state are equal to the frames selected by action\n if (assignedSegment !== action.frames) {\n // if they are not equal. new segments are to be loaded\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else if (animationItem.isPaused) {\n // if they are equal the play method must be called only if lottie is paused\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n }\n }\n if (action.type === \"play\" && animationItem.isPaused) {\n // Play: Reset segments and continue playing full animation from current position\n animationItem.resetSegments(true);\n animationItem.play();\n }\n if (action.type === \"stop\") {\n // Stop: Stop playback\n animationItem.goToAndStop(action.frames[0] - animationItem.firstFrame - 1, true);\n }\n };\n document.addEventListener(\"scroll\", scrollHandler);\n return () => {\n document.removeEventListener(\"scroll\", scrollHandler);\n };\n };\n const cursorModeHandler = () => {\n const handleCursor = (_x, _y) => {\n let x = _x;\n let y = _y;\n // Resolve cursor position if cursor is inside container\n if (x !== -1 && y !== -1) {\n // Get container cursor position\n const pos = getContainerCursorPosition(wrapper, x, y);\n // Use the resolved position\n x = pos.x;\n y = pos.y;\n }\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ position }) => {\n if (position &&\n Array.isArray(position.x) &&\n Array.isArray(position.y)) {\n return (x >= position.x[0] &&\n x <= position.x[1] &&\n y >= position.y[0] &&\n y <= position.y[1]);\n }\n if (position &&\n !Number.isNaN(position.x) &&\n !Number.isNaN(position.y)) {\n return x === position.x && y === position.y;\n }\n return false;\n });\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n // Process action types:\n if (action.type === \"seek\" &&\n action.position &&\n Array.isArray(action.position.x) &&\n Array.isArray(action.position.y) &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const xPercent = (x - action.position.x[0]) /\n (action.position.x[1] - action.position.x[0]);\n const yPercent = (y - action.position.y[0]) /\n (action.position.y[1] - action.position.y[0]);\n animationItem.playSegments(action.frames, true);\n animationItem.goToAndStop(Math.ceil(((xPercent + yPercent) / 2) *\n (action.frames[1] - action.frames[0])), true);\n }\n if (action.type === \"loop\") {\n animationItem.playSegments(action.frames, true);\n }\n if (action.type === \"play\") {\n // Play: Reset segments and continue playing full animation from current position\n if (animationItem.isPaused) {\n animationItem.resetSegments(false);\n }\n animationItem.playSegments(action.frames);\n }\n if (action.type === \"stop\") {\n animationItem.goToAndStop(action.frames[0], true);\n }\n };\n const mouseMoveHandler = (ev) => {\n handleCursor(ev.clientX, ev.clientY);\n };\n const mouseOutHandler = () => {\n handleCursor(-1, -1);\n };\n wrapper.addEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.addEventListener(\"mouseout\", mouseOutHandler);\n return () => {\n wrapper.removeEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.removeEventListener(\"mouseout\", mouseOutHandler);\n };\n };\n switch (mode) {\n case \"scroll\":\n return scrollModeHandler();\n case \"cursor\":\n return cursorModeHandler();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mode, animationItem]);\n};\nconst useLottieInteractivity = ({ actions, mode, lottieObj, }) => {\n const { animationItem, View, animationContainerRef } = lottieObj;\n useInitInteractivity({\n actions,\n animationItem,\n mode,\n wrapperRef: animationContainerRef,\n });\n return View;\n};\nexport default useLottieInteractivity;\n","import { useEffect } from \"react\";\nimport useLottie from \"../hooks/useLottie\";\nimport useLottieInteractivity from \"../hooks/useLottieInteractivity\";\nconst Lottie = (props) => {\n var _a, _b, _c;\n const { style, interactivity, ...lottieProps } = props;\n /**\n * Initialize the 'useLottie' hook\n */\n const { View, play, stop, pause, setSpeed, goToAndStop, goToAndPlay, setDirection, playSegments, setSubframe, getDuration, destroy, animationContainerRef, animationLoaded, animationItem, } = useLottie(lottieProps, style);\n /**\n * Make the hook variables/methods available through the provided 'lottieRef'\n */\n useEffect(() => {\n if (props.lottieRef) {\n props.lottieRef.current = {\n play,\n stop,\n pause,\n setSpeed,\n goToAndPlay,\n goToAndStop,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [(_a = props.lottieRef) === null || _a === void 0 ? void 0 : _a.current]);\n return useLottieInteractivity({\n lottieObj: {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n },\n actions: (_b = interactivity === null || interactivity === void 0 ? void 0 : interactivity.actions) !== null && _b !== void 0 ? _b : [],\n mode: (_c = interactivity === null || interactivity === void 0 ? void 0 : interactivity.mode) !== null && _c !== void 0 ? _c : \"scroll\",\n });\n};\nexport default Lottie;\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.12.2';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\n\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects$1 = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects$1[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(elem.effectsManager.effectElements[i], elem);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n CVEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd); // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\n renderer.ctxLineWidth(currentStyle.wi); // ctx.lineWidth = currentStyle.wi;\n\n renderer.ctxLineCap(currentStyle.lc); // ctx.lineCap = currentStyle.lc;\n\n renderer.ctxLineJoin(currentStyle.lj); // ctx.lineJoin = currentStyle.lj;\n\n renderer.ctxMiterLimit(currentStyle.ml || 0); // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd); // ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n // ctx.stroke();\n renderer.ctxStroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n // ctx.fill(currentStyle.r);\n this.globalData.renderer.ctxFill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt'); // ctx.lineCap = 'butt';\n\n this.globalData.renderer.ctxLineJoin('miter'); // ctx.lineJoin = 'miter';\n\n this.globalData.renderer.ctxMiterLimit(4); // ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n var renderer = this.globalData.renderer;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc; // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill); // ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxFill(); // this.globalData.canvasContext.fill();\n /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n renderer.ctxLineWidth(renderedLetter.sw); // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth); // ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc); // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke); // ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxStroke(); // this.globalData.canvasContext.stroke();\n /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n // var ctx = this.canvasContext;\n this.globalData.renderer.ctxFillStyle(this.data.sc); // ctx.fillStyle = this.data.sc;\n\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh); // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function () {\n this.canvasContext.save();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.restore(actionFlag);\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.contextData.setContext(this.canvasContext);\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1; //\n\n this.currentFillStyle = '';\n this.appliedFillStyle = ''; //\n\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = ''; //\n\n this.currentLineWidth = '';\n this.appliedLineWidth = ''; //\n\n this.currentLineCap = '';\n this.appliedLineCap = ''; //\n\n this.currentLineJoin = '';\n this.appliedLineJoin = ''; //\n\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var currentStack = this.stack[this.cArrPos];\n var i;\n\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.cTr; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.multiply(currentTransform); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fill(rule);\n };\n\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fillRect(x, y, w, h);\n };\n\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n\n this.nativeContext.stroke();\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n\n if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$2(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n var _lottieGlobal = {};\n initialize$2(BMMath);\n\n function resetFrame() {\n _lottieGlobal = {};\n }\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n function TransformEffect() {}\n\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n\n extendPrototype([TransformEffect], CVTransformEffect);\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","if performance? and performance.now\n module.exports = -> performance.now()\nelse if process? and process.hrtime\n module.exports = -> (getNanoSeconds() - nodeLoadTime) / 1e6\n hrtime = process.hrtime\n getNanoSeconds = ->\n hr = hrtime()\n hr[0] * 1e9 + hr[1]\n moduleLoadTime = getNanoSeconds()\n upTime = process.uptime() * 1e9\n nodeLoadTime = moduleLoadTime - upTime\nelse if Date.now\n module.exports = -> Date.now() - loadTime\n loadTime = Date.now()\nelse\n module.exports = -> new Date().getTime() - loadTime\n loadTime = new Date().getTime()\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","/** @license React v16.14.0\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),n=require(\"object-assign\"),r=require(\"scheduler\");function u(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;dpc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=td(a.document)}return b}\nfunction yd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;gzf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(gl&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;by?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;yy?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;cf))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(lN.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;hd.tailExpiration&&1b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTimea?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){awi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime 0 && protocol.charAt(protocol.length - 1) !== ':') {\n\t\treturn protocol + ':'\n\t}\n\treturn protocol\n}\n\nmodule.exports = function makeTwemojiRenderer(options) {\n\toptions = merge({\n\t\tprotocol: pageProtocol,\n\t\tbaseUrl: '//cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/',\n\t\tsize: '72x72',\n\t\text: '.png',\n\t\tprops: null\n\t}, options)\n\n\treturn function renderTwemoji (icon, match, offset) {\n\t\tvar src = ''\n\t\tif (options.baseUrl.indexOf('http') !== 0) {\n\t\t\tsrc += normalizeProtocol(options.protocol)\n\t\t}\n\n\t\tsrc += options.baseUrl + options.size + '/' + icon + options.ext\n\n\t\treturn createElement(\n\t\t\t'img',\n\t\t\tmerge({\n\t\t\t\tkey: offset,\n\t\t\t\talt: match,\n\t\t\t\tdraggable: false,\n\t\t\t\tsrc: src,\n\t\t\t\tstyle: emojiStyle\n\t\t\t}, options.props)\n\t\t)\n\t}\n}\n\nfunction merge() {\n\tvar out = {}, len = arguments.length\n\tfor(var i = 0; i < len; ++i) {\n\t\tvar source = arguments[i]\n\t\tif (source) {\n\t\t\tfor (var key in source) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\t\t\tout[key] = source[key]\n\t\t\t\t}\n\t\t\t}\n\t\t}\n }\n return out\n}","var replaceStringToArray = require('string-replace-to-array')\n\n// This is based off of https://github.com/twitter/twemoji/blob/gh-pages/2/twemoji.js\n//\n// Ideally we'd use twemoji instead of replicating its logic.\n// The reason we can't is that we need to run our own replace.\n//\n// We could use it for most things (by essentially running twemoji.parse for each\n// regex match, and reading the code from the callback), but the one thing we'd always need\n// to copy and paste into this file is the regex since we need it to run the replace.\n//\n// Another option is to fork twemoji and expose a method in it that could help us, then\n// ask them to pull it in.\n//\n\n// RegExp based on emoji's official Unicode standards\n// http://www.unicode.org/Public/UNIDATA/EmojiSources.txt\nvar re = /(?:\\ud83d\\udc68\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83e\\uddd1\\ud83c[\\udffc-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83e\\uddd1\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83e\\uddd1\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83e\\uddd1\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83e\\uddd1\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc68\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc68\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc68\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc68\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc68\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udffe]|\\ud83e\\uddd1\\ud83c\\udffb\\u200d\\u2764\\ufe0f\\u200d\\ud83e\\uddd1\\ud83c[\\udffc-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffc\\u200d\\u2764\\ufe0f\\u200d\\ud83e\\uddd1\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffd\\u200d\\u2764\\ufe0f\\u200d\\ud83e\\uddd1\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83e\\uddd1\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffe\\u200d\\u2764\\ufe0f\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83e\\uddd1\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udfff\\u200d\\u2764\\ufe0f\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udffe]|\\ud83e\\uddd1\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc68\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68|\\ud83d\\udc69\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d[\\udc68\\udc69]|\\ud83e\\udef1\\ud83c\\udffb\\u200d\\ud83e\\udef2\\ud83c[\\udffc-\\udfff]|\\ud83e\\udef1\\ud83c\\udffc\\u200d\\ud83e\\udef2\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83e\\udef1\\ud83c\\udffd\\u200d\\ud83e\\udef2\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83e\\udef1\\ud83c\\udffe\\u200d\\ud83e\\udef2\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83e\\udef1\\ud83c\\udfff\\u200d\\ud83e\\udef2\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc68\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68|\\ud83d\\udc69\\u200d\\u2764\\ufe0f\\u200d\\ud83d[\\udc68\\udc69]|\\ud83e\\uddd1\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1|\\ud83d\\udc6b\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc6c\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc6d\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc8f\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc91\\ud83c[\\udffb-\\udfff]|\\ud83e\\udd1d\\ud83c[\\udffb-\\udfff]|\\ud83d[\\udc6b-\\udc6d\\udc8f\\udc91]|\\ud83e\\udd1d)|(?:\\ud83d[\\udc68\\udc69]|\\ud83e\\uddd1)(?:\\ud83c[\\udffb-\\udfff])?\\u200d(?:\\u2695\\ufe0f|\\u2696\\ufe0f|\\u2708\\ufe0f|\\ud83c[\\udf3e\\udf73\\udf7c\\udf84\\udf93\\udfa4\\udfa8\\udfeb\\udfed]|\\ud83d[\\udcbb\\udcbc\\udd27\\udd2c\\ude80\\ude92]|\\ud83e[\\uddaf-\\uddb3\\uddbc\\uddbd])|(?:\\ud83c[\\udfcb\\udfcc]|\\ud83d[\\udd74\\udd75]|\\u26f9)((?:\\ud83c[\\udffb-\\udfff]|\\ufe0f)\\u200d[\\u2640\\u2642]\\ufe0f)|(?:\\ud83c[\\udfc3\\udfc4\\udfca]|\\ud83d[\\udc6e\\udc70\\udc71\\udc73\\udc77\\udc81\\udc82\\udc86\\udc87\\ude45-\\ude47\\ude4b\\ude4d\\ude4e\\udea3\\udeb4-\\udeb6]|\\ud83e[\\udd26\\udd35\\udd37-\\udd39\\udd3d\\udd3e\\uddb8\\uddb9\\uddcd-\\uddcf\\uddd4\\uddd6-\\udddd])(?:\\ud83c[\\udffb-\\udfff])?\\u200d[\\u2640\\u2642]\\ufe0f|(?:\\ud83d\\udc68\\u200d\\ud83d\\udc68\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc68\\u200d\\ud83d\\udc68\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc68\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc69\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc68\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\ud83d\\udc68\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\ud83d\\udc69\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc69\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\ud83d\\udc69\\u200d\\ud83d[\\udc66\\udc67]|\\ud83c\\udff3\\ufe0f\\u200d\\u26a7\\ufe0f|\\ud83c\\udff3\\ufe0f\\u200d\\ud83c\\udf08|\\ud83d\\ude36\\u200d\\ud83c\\udf2b\\ufe0f|\\u2764\\ufe0f\\u200d\\ud83d\\udd25|\\u2764\\ufe0f\\u200d\\ud83e\\ude79|\\ud83c\\udff4\\u200d\\u2620\\ufe0f|\\ud83d\\udc15\\u200d\\ud83e\\uddba|\\ud83d\\udc3b\\u200d\\u2744\\ufe0f|\\ud83d\\udc41\\u200d\\ud83d\\udde8|\\ud83d\\udc68\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc6f\\u200d\\u2640\\ufe0f|\\ud83d\\udc6f\\u200d\\u2642\\ufe0f|\\ud83d\\ude2e\\u200d\\ud83d\\udca8|\\ud83d\\ude35\\u200d\\ud83d\\udcab|\\ud83e\\udd3c\\u200d\\u2640\\ufe0f|\\ud83e\\udd3c\\u200d\\u2642\\ufe0f|\\ud83e\\uddde\\u200d\\u2640\\ufe0f|\\ud83e\\uddde\\u200d\\u2642\\ufe0f|\\ud83e\\udddf\\u200d\\u2640\\ufe0f|\\ud83e\\udddf\\u200d\\u2642\\ufe0f|\\ud83d\\udc08\\u200d\\u2b1b)|[#*0-9]\\ufe0f?\\u20e3|(?:[©®\\u2122\\u265f]\\ufe0f)|(?:\\ud83c[\\udc04\\udd70\\udd71\\udd7e\\udd7f\\ude02\\ude1a\\ude2f\\ude37\\udf21\\udf24-\\udf2c\\udf36\\udf7d\\udf96\\udf97\\udf99-\\udf9b\\udf9e\\udf9f\\udfcd\\udfce\\udfd4-\\udfdf\\udff3\\udff5\\udff7]|\\ud83d[\\udc3f\\udc41\\udcfd\\udd49\\udd4a\\udd6f\\udd70\\udd73\\udd76-\\udd79\\udd87\\udd8a-\\udd8d\\udda5\\udda8\\uddb1\\uddb2\\uddbc\\uddc2-\\uddc4\\uddd1-\\uddd3\\udddc-\\uddde\\udde1\\udde3\\udde8\\uddef\\uddf3\\uddfa\\udecb\\udecd-\\udecf\\udee0-\\udee5\\udee9\\udef0\\udef3]|[\\u203c\\u2049\\u2139\\u2194-\\u2199\\u21a9\\u21aa\\u231a\\u231b\\u2328\\u23cf\\u23ed-\\u23ef\\u23f1\\u23f2\\u23f8-\\u23fa\\u24c2\\u25aa\\u25ab\\u25b6\\u25c0\\u25fb-\\u25fe\\u2600-\\u2604\\u260e\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262a\\u262e\\u262f\\u2638-\\u263a\\u2640\\u2642\\u2648-\\u2653\\u2660\\u2663\\u2665\\u2666\\u2668\\u267b\\u267f\\u2692-\\u2697\\u2699\\u269b\\u269c\\u26a0\\u26a1\\u26a7\\u26aa\\u26ab\\u26b0\\u26b1\\u26bd\\u26be\\u26c4\\u26c5\\u26c8\\u26cf\\u26d1\\u26d3\\u26d4\\u26e9\\u26ea\\u26f0-\\u26f5\\u26f8\\u26fa\\u26fd\\u2702\\u2708\\u2709\\u270f\\u2712\\u2714\\u2716\\u271d\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u2764\\u27a1\\u2934\\u2935\\u2b05-\\u2b07\\u2b1b\\u2b1c\\u2b50\\u2b55\\u3030\\u303d\\u3297\\u3299])(?:\\ufe0f|(?!\\ufe0e))|(?:(?:\\ud83c[\\udfcb\\udfcc]|\\ud83d[\\udd74\\udd75\\udd90]|[\\u261d\\u26f7\\u26f9\\u270c\\u270d])(?:\\ufe0f|(?!\\ufe0e))|(?:\\ud83c[\\udf85\\udfc2-\\udfc4\\udfc7\\udfca]|\\ud83d[\\udc42\\udc43\\udc46-\\udc50\\udc66-\\udc69\\udc6e\\udc70-\\udc78\\udc7c\\udc81-\\udc83\\udc85-\\udc87\\udcaa\\udd7a\\udd95\\udd96\\ude45-\\ude47\\ude4b-\\ude4f\\udea3\\udeb4-\\udeb6\\udec0\\udecc]|\\ud83e[\\udd0c\\udd0f\\udd18-\\udd1c\\udd1e\\udd1f\\udd26\\udd30-\\udd39\\udd3d\\udd3e\\udd77\\uddb5\\uddb6\\uddb8\\uddb9\\uddbb\\uddcd-\\uddcf\\uddd1-\\udddd\\udec3-\\udec5\\udef0-\\udef6]|[\\u270a\\u270b]))(?:\\ud83c[\\udffb-\\udfff])?|(?:\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40\\udc65\\udb40\\udc6e\\udb40\\udc67\\udb40\\udc7f|\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40\\udc73\\udb40\\udc63\\udb40\\udc74\\udb40\\udc7f|\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40\\udc77\\udb40\\udc6c\\udb40\\udc73\\udb40\\udc7f|\\ud83c\\udde6\\ud83c[\\udde8-\\uddec\\uddee\\uddf1\\uddf2\\uddf4\\uddf6-\\uddfa\\uddfc\\uddfd\\uddff]|\\ud83c\\udde7\\ud83c[\\udde6\\udde7\\udde9-\\uddef\\uddf1-\\uddf4\\uddf6-\\uddf9\\uddfb\\uddfc\\uddfe\\uddff]|\\ud83c\\udde8\\ud83c[\\udde6\\udde8\\udde9\\uddeb-\\uddee\\uddf0-\\uddf5\\uddf7\\uddfa-\\uddff]|\\ud83c\\udde9\\ud83c[\\uddea\\uddec\\uddef\\uddf0\\uddf2\\uddf4\\uddff]|\\ud83c\\uddea\\ud83c[\\udde6\\udde8\\uddea\\uddec\\udded\\uddf7-\\uddfa]|\\ud83c\\uddeb\\ud83c[\\uddee-\\uddf0\\uddf2\\uddf4\\uddf7]|\\ud83c\\uddec\\ud83c[\\udde6\\udde7\\udde9-\\uddee\\uddf1-\\uddf3\\uddf5-\\uddfa\\uddfc\\uddfe]|\\ud83c\\udded\\ud83c[\\uddf0\\uddf2\\uddf3\\uddf7\\uddf9\\uddfa]|\\ud83c\\uddee\\ud83c[\\udde8-\\uddea\\uddf1-\\uddf4\\uddf6-\\uddf9]|\\ud83c\\uddef\\ud83c[\\uddea\\uddf2\\uddf4\\uddf5]|\\ud83c\\uddf0\\ud83c[\\uddea\\uddec-\\uddee\\uddf2\\uddf3\\uddf5\\uddf7\\uddfc\\uddfe\\uddff]|\\ud83c\\uddf1\\ud83c[\\udde6-\\udde8\\uddee\\uddf0\\uddf7-\\uddfb\\uddfe]|\\ud83c\\uddf2\\ud83c[\\udde6\\udde8-\\udded\\uddf0-\\uddff]|\\ud83c\\uddf3\\ud83c[\\udde6\\udde8\\uddea-\\uddec\\uddee\\uddf1\\uddf4\\uddf5\\uddf7\\uddfa\\uddff]|\\ud83c\\uddf4\\ud83c\\uddf2|\\ud83c\\uddf5\\ud83c[\\udde6\\uddea-\\udded\\uddf0-\\uddf3\\uddf7-\\uddf9\\uddfc\\uddfe]|\\ud83c\\uddf6\\ud83c\\udde6|\\ud83c\\uddf7\\ud83c[\\uddea\\uddf4\\uddf8\\uddfa\\uddfc]|\\ud83c\\uddf8\\ud83c[\\udde6-\\uddea\\uddec-\\uddf4\\uddf7-\\uddf9\\uddfb\\uddfd-\\uddff]|\\ud83c\\uddf9\\ud83c[\\udde6\\udde8\\udde9\\uddeb-\\udded\\uddef-\\uddf4\\uddf7\\uddf9\\uddfb\\uddfc\\uddff]|\\ud83c\\uddfa\\ud83c[\\udde6\\uddec\\uddf2\\uddf3\\uddf8\\uddfe\\uddff]|\\ud83c\\uddfb\\ud83c[\\udde6\\udde8\\uddea\\uddec\\uddee\\uddf3\\uddfa]|\\ud83c\\uddfc\\ud83c[\\uddeb\\uddf8]|\\ud83c\\uddfd\\ud83c\\uddf0|\\ud83c\\uddfe\\ud83c[\\uddea\\uddf9]|\\ud83c\\uddff\\ud83c[\\udde6\\uddf2\\uddfc]|\\ud83c[\\udccf\\udd8e\\udd91-\\udd9a\\udde6-\\uddff\\ude01\\ude32-\\ude36\\ude38-\\ude3a\\ude50\\ude51\\udf00-\\udf20\\udf2d-\\udf35\\udf37-\\udf7c\\udf7e-\\udf84\\udf86-\\udf93\\udfa0-\\udfc1\\udfc5\\udfc6\\udfc8\\udfc9\\udfcf-\\udfd3\\udfe0-\\udff0\\udff4\\udff8-\\udfff]|\\ud83d[\\udc00-\\udc3e\\udc40\\udc44\\udc45\\udc51-\\udc65\\udc6a\\udc6f\\udc79-\\udc7b\\udc7d-\\udc80\\udc84\\udc88-\\udc8e\\udc90\\udc92-\\udca9\\udcab-\\udcfc\\udcff-\\udd3d\\udd4b-\\udd4e\\udd50-\\udd67\\udda4\\uddfb-\\ude44\\ude48-\\ude4a\\ude80-\\udea2\\udea4-\\udeb3\\udeb7-\\udebf\\udec1-\\udec5\\uded0-\\uded2\\uded5-\\uded7\\udedd-\\udedf\\udeeb\\udeec\\udef4-\\udefc\\udfe0-\\udfeb\\udff0]|\\ud83e[\\udd0d\\udd0e\\udd10-\\udd17\\udd20-\\udd25\\udd27-\\udd2f\\udd3a\\udd3c\\udd3f-\\udd45\\udd47-\\udd76\\udd78-\\uddb4\\uddb7\\uddba\\uddbc-\\uddcc\\uddd0\\uddde-\\uddff\\ude70-\\ude74\\ude78-\\ude7c\\ude80-\\ude86\\ude90-\\udeac\\udeb0-\\udeba\\udec0-\\udec2\\uded0-\\uded9\\udee0-\\udee7]|[\\u23e9-\\u23ec\\u23f0\\u23f3\\u267e\\u26ce\\u2705\\u2728\\u274c\\u274e\\u2753-\\u2755\\u2795-\\u2797\\u27b0\\u27bf\\ue50a])|\\ufe0f/g\n\nfunction toCodePoint(unicodeSurrogates, sep) {\n var\n\t\tr = [],\n\t\tc = 0,\n\t\tp = 0,\n\t\ti = 0\n\t\t\n\twhile (i < unicodeSurrogates.length) {\n\t\tc = unicodeSurrogates.charCodeAt(i++)\n\t\tif (p) {\n\t\t\tr.push((0x10000 + ((p - 0xD800) << 10) + (c - 0xDC00)).toString(16))\n\t\t\tp = 0\n\t\t} else if (0xD800 <= c && c <= 0xDBFF) {\n\t\t\tp = c\n\t\t} else {\n\t\t\tr.push(c.toString(16))\n\t\t}\n\t}\n\treturn r.join(sep || '-')\n}\n\n// avoid runtime RegExp creation for not so smart,\n// not JIT based, and old browsers / engines\nvar UFE0Fg = /\\uFE0F/g\n\n// avoid using a string literal like '\\u200D' here because minifiers expand it inline\nvar U200D = String.fromCharCode(0x200D)\n\n/**\n* Used to both remove the possible variant\n* and to convert utf16 into code points.\n* If there is a zero-width-joiner (U+200D), leave the variants in.\n* @param string the raw text of the emoji match\n*/\nfunction grabTheRightIcon(rawText) {\n\t// if variant is present as \\uFE0F\n\treturn toCodePoint(rawText.indexOf(U200D) < 0 ?\n\t\trawText.replace(UFE0Fg, '') :\n\t\trawText\n\t);\n}\n\nmodule.exports = function replaceEmoji (string, render) {\n\t// Note: the latest regex added an empty matching group, so we ignore it.\n\treturn replaceStringToArray(string, re, function emojiReplacer (match, _, offset) {\n\t\tvar icon = grabTheRightIcon(match)\n\t\treturn render(icon, match, offset)\n\t})\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _shallowequal = require('shallowequal');\n\nvar _shallowequal2 = _interopRequireDefault(_shallowequal);\n\nvar _raf = require('raf');\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nvar _shouldUpdate2 = require('./shouldUpdate');\n\nvar _shouldUpdate3 = _interopRequireDefault(_shouldUpdate2);\n\nvar _supportsPassiveEvents = require('./supportsPassiveEvents');\n\nvar _supportsPassiveEvents2 = _interopRequireDefault(_supportsPassiveEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // eslint-disable-line import/no-unresolved\n\n\nvar noop = function noop() {};\n\nvar Headroom = function (_Component) {\n _inherits(Headroom, _Component);\n\n _createClass(Headroom, null, [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(props, state) {\n if (props.disable && state.state !== 'unfixed') {\n return {\n translateY: 0,\n className: 'headroom headroom--unfixed headroom-disable-animation',\n animation: false,\n state: 'unfixed'\n };\n }\n\n return null;\n }\n }]);\n\n function Headroom(props) {\n _classCallCheck(this, Headroom);\n\n // Class variables.\n var _this = _possibleConstructorReturn(this, (Headroom.__proto__ || Object.getPrototypeOf(Headroom)).call(this, props));\n\n _this.setRef = function (ref) {\n return _this.inner = ref;\n };\n\n _this.setHeightOffset = function () {\n _this.setState({\n height: _this.inner ? _this.inner.offsetHeight : ''\n });\n _this.resizeTicking = false;\n };\n\n _this.getScrollY = function () {\n if (_this.props.parent().pageYOffset !== void 0) {\n return _this.props.parent().pageYOffset;\n } else if (_this.props.parent().scrollTop !== void 0) {\n return _this.props.parent().scrollTop;\n } else {\n return (document.documentElement || document.body.parentNode || document.body).scrollTop;\n }\n };\n\n _this.getViewportHeight = function () {\n return window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\n };\n\n _this.getDocumentHeight = function () {\n var body = document.body;\n var documentElement = document.documentElement;\n\n return Math.max(body.scrollHeight, documentElement.scrollHeight, body.offsetHeight, documentElement.offsetHeight, body.clientHeight, documentElement.clientHeight);\n };\n\n _this.getElementPhysicalHeight = function (elm) {\n return Math.max(elm.offsetHeight, elm.clientHeight);\n };\n\n _this.getElementHeight = function (elm) {\n return Math.max(elm.scrollHeight, elm.offsetHeight, elm.clientHeight);\n };\n\n _this.getScrollerPhysicalHeight = function () {\n var parent = _this.props.parent();\n\n return parent === window || parent === document.body ? _this.getViewportHeight() : _this.getElementPhysicalHeight(parent);\n };\n\n _this.getScrollerHeight = function () {\n var parent = _this.props.parent();\n\n return parent === window || parent === document.body ? _this.getDocumentHeight() : _this.getElementHeight(parent);\n };\n\n _this.isOutOfBound = function (currentScrollY) {\n var pastTop = currentScrollY < 0;\n\n var scrollerPhysicalHeight = _this.getScrollerPhysicalHeight();\n var scrollerHeight = _this.getScrollerHeight();\n\n var pastBottom = currentScrollY + scrollerPhysicalHeight > scrollerHeight;\n\n return pastTop || pastBottom;\n };\n\n _this.handleScroll = function () {\n if (!_this.scrollTicking) {\n _this.scrollTicking = true;\n (0, _raf2.default)(_this.update);\n }\n };\n\n _this.handleResize = function () {\n if (!_this.resizeTicking) {\n _this.resizeTicking = true;\n (0, _raf2.default)(_this.setHeightOffset);\n }\n };\n\n _this.unpin = function () {\n _this.props.onUnpin();\n\n _this.setState({\n translateY: '-100%',\n className: 'headroom headroom--unpinned',\n animation: true,\n state: 'unpinned'\n });\n };\n\n _this.unpinSnap = function () {\n _this.props.onUnpin();\n\n _this.setState({\n translateY: '-100%',\n className: 'headroom headroom--unpinned headroom-disable-animation',\n animation: false,\n state: 'unpinned'\n });\n };\n\n _this.pin = function () {\n _this.props.onPin();\n\n _this.setState({\n translateY: 0,\n className: 'headroom headroom--pinned',\n animation: true,\n state: 'pinned'\n });\n };\n\n _this.unfix = function () {\n _this.props.onUnfix();\n\n _this.setState({\n translateY: 0,\n className: 'headroom headroom--unfixed headroom-disable-animation',\n animation: false\n }, function () {\n setTimeout(function () {\n _this.setState({ state: 'unfixed' });\n }, 0);\n });\n };\n\n _this.update = function () {\n _this.currentScrollY = _this.getScrollY();\n\n if (!_this.isOutOfBound(_this.currentScrollY)) {\n var _shouldUpdate = (0, _shouldUpdate3.default)(_this.lastKnownScrollY, _this.currentScrollY, _this.props, _this.state),\n action = _shouldUpdate.action;\n\n if (action === 'pin') {\n _this.pin();\n } else if (action === 'unpin') {\n _this.unpin();\n } else if (action === 'unpin-snap') {\n _this.unpinSnap();\n } else if (action === 'unfix') {\n _this.unfix();\n }\n }\n\n _this.lastKnownScrollY = _this.currentScrollY;\n _this.scrollTicking = false;\n };\n\n _this.currentScrollY = 0;\n _this.lastKnownScrollY = 0;\n _this.scrollTicking = false;\n _this.resizeTicking = false;\n _this.eventListenerOptions = false;\n _this.state = {\n state: 'unfixed',\n translateY: 0,\n className: 'headroom headroom--unfixed'\n };\n return _this;\n }\n\n _createClass(Headroom, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.setHeightOffset();\n\n this.eventListenerOptions = (0, _supportsPassiveEvents2.default)() ? { passive: true, capture: false } : false;\n\n if (!this.props.disable) {\n this.props.parent().addEventListener('scroll', this.handleScroll, this.eventListenerOptions);\n\n if (this.props.calcHeightOnResize) {\n this.props.parent().addEventListener('resize', this.handleResize, this.eventListenerOptions);\n }\n }\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps, nextState) {\n return !(0, _shallowequal2.default)(this.props, nextProps) || !(0, _shallowequal2.default)(this.state, nextState);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n // If children have changed, remeasure height.\n if (prevProps.children !== this.props.children) {\n this.setHeightOffset();\n }\n\n // Add/remove event listeners when re-enabled/disabled\n if (!prevProps.disable && this.props.disable) {\n this.props.parent().removeEventListener('scroll', this.handleScroll, this.eventListenerOptions);\n this.props.parent().removeEventListener('resize', this.handleResize, this.eventListenerOptions);\n\n if (prevState.state !== 'unfixed' && this.state.state === 'unfixed') {\n this.props.onUnfix();\n }\n } else if (prevProps.disable && !this.props.disable) {\n this.props.parent().addEventListener('scroll', this.handleScroll, this.eventListenerOptions);\n\n if (this.props.calcHeightOnResize) {\n this.props.parent().addEventListener('resize', this.handleResize, this.eventListenerOptions);\n }\n }\n\n if (prevProps.pin !== this.props.pin) {\n this.handleScroll();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.props.parent()) {\n this.props.parent().removeEventListener('scroll', this.handleScroll, this.eventListenerOptions);\n this.props.parent().removeEventListener('resize', this.handleResize, this.eventListenerOptions);\n }\n window.removeEventListener('scroll', this.handleScroll, this.eventListenerOptions);\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n userClassName = _props.className,\n Tag = _props.tag,\n divProps = _objectWithoutProperties(_props, ['className', 'tag']);\n\n delete divProps.onUnpin;\n delete divProps.onPin;\n delete divProps.onUnfix;\n delete divProps.disableInlineStyles;\n delete divProps.disable;\n delete divProps.pin;\n delete divProps.parent;\n delete divProps.children;\n delete divProps.upTolerance;\n delete divProps.downTolerance;\n delete divProps.pinStart;\n delete divProps.calcHeightOnResize;\n\n var style = divProps.style,\n wrapperStyle = divProps.wrapperStyle,\n rest = _objectWithoutProperties(divProps, ['style', 'wrapperStyle']);\n\n var innerStyle = {\n position: this.props.disable || this.state.state === 'unfixed' ? 'relative' : 'fixed',\n top: 0,\n left: 0,\n right: 0,\n zIndex: 1,\n WebkitTransform: 'translate3D(0, ' + this.state.translateY + ', 0)',\n MsTransform: 'translate3D(0, ' + this.state.translateY + ', 0)',\n transform: 'translate3D(0, ' + this.state.translateY + ', 0)'\n };\n\n var className = this.state.className;\n\n // Don't add css transitions until after we've done the initial\n // negative transform when transitioning from 'unfixed' to 'unpinned'.\n // If we don't do this, the header will flash into view temporarily\n // while it transitions from 0 — -100%.\n if (this.state.animation) {\n innerStyle = _extends({}, innerStyle, {\n WebkitTransition: 'all .2s ease-in-out',\n MozTransition: 'all .2s ease-in-out',\n OTransition: 'all .2s ease-in-out',\n transition: 'all .2s ease-in-out'\n });\n className += ' headroom--scrolled';\n }\n\n if (!this.props.disableInlineStyles) {\n innerStyle = _extends({}, innerStyle, style);\n } else {\n innerStyle = style;\n }\n\n var wrapperStyles = _extends({}, wrapperStyle, {\n height: this.state.height ? this.state.height : null\n });\n\n var wrapperClassName = userClassName ? userClassName + ' headroom-wrapper' : 'headroom-wrapper';\n\n return _react2.default.createElement(\n Tag,\n { style: wrapperStyles, className: wrapperClassName },\n _react2.default.createElement(\n 'div',\n _extends({\n ref: this.setRef\n }, rest, {\n style: innerStyle,\n className: className\n }),\n this.props.children\n )\n );\n }\n }]);\n\n return Headroom;\n}(_react.Component);\n\nHeadroom.propTypes = {\n className: _propTypes2.default.string,\n parent: _propTypes2.default.func,\n children: _propTypes2.default.any.isRequired,\n disableInlineStyles: _propTypes2.default.bool,\n disable: _propTypes2.default.bool,\n pin: _propTypes2.default.bool,\n upTolerance: _propTypes2.default.number,\n downTolerance: _propTypes2.default.number,\n onPin: _propTypes2.default.func,\n onUnpin: _propTypes2.default.func,\n onUnfix: _propTypes2.default.func,\n wrapperStyle: _propTypes2.default.object,\n pinStart: _propTypes2.default.number,\n style: _propTypes2.default.object,\n calcHeightOnResize: _propTypes2.default.bool,\n tag: _propTypes2.default.string\n};\nHeadroom.defaultProps = {\n parent: function parent() {\n return window;\n },\n disableInlineStyles: false,\n disable: false,\n pin: false,\n upTolerance: 5,\n downTolerance: 0,\n onPin: noop,\n onUnpin: noop,\n onUnfix: noop,\n wrapperStyle: {},\n pinStart: 0,\n calcHeightOnResize: true,\n tag: 'div'\n};\nexports.default = Headroom;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function () {\n var lastKnownScrollY = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;\n var currentScrollY = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;\n var props = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};\n var state = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};\n\n var scrollDirection = currentScrollY >= lastKnownScrollY ? 'down' : 'up';\n var distanceScrolled = Math.abs(currentScrollY - lastKnownScrollY);\n\n // We're disabled\n if (props.disable) {\n return {\n action: 'none',\n scrollDirection: scrollDirection,\n distanceScrolled: distanceScrolled\n // We're pinned\n };\n } else if (props.pin) {\n return {\n action: state.state !== 'pinned' ? 'pin' : 'none',\n scrollDirection: scrollDirection,\n distanceScrolled: distanceScrolled\n // We're at the top and not fixed yet.\n };\n } else if (currentScrollY <= props.pinStart && state.state !== 'unfixed') {\n return {\n action: 'unfix',\n scrollDirection: scrollDirection,\n distanceScrolled: distanceScrolled\n // We're unfixed and headed down. Carry on.\n };\n } else if (currentScrollY <= state.height && scrollDirection === 'down' && state.state === 'unfixed') {\n return {\n action: 'none',\n scrollDirection: scrollDirection,\n distanceScrolled: distanceScrolled\n };\n } else if (currentScrollY > state.height + props.pinStart && scrollDirection === 'down' && state.state === 'unfixed') {\n return {\n action: 'unpin-snap',\n scrollDirection: scrollDirection,\n distanceScrolled: distanceScrolled\n // We're past the header and scrolling down.\n // We transition to \"unpinned\" if necessary.\n };\n } else if (scrollDirection === 'down' && ['pinned', 'unfixed'].indexOf(state.state) >= 0 && currentScrollY > state.height + props.pinStart && distanceScrolled > props.downTolerance) {\n return {\n action: 'unpin',\n scrollDirection: scrollDirection,\n distanceScrolled: distanceScrolled\n // We're scrolling up, we transition to \"pinned\"\n };\n } else if (scrollDirection === 'up' && distanceScrolled > props.upTolerance && ['pinned', 'unfixed'].indexOf(state.state) < 0) {\n return {\n action: 'pin',\n scrollDirection: scrollDirection,\n distanceScrolled: distanceScrolled\n // We're scrolling up, and inside the header.\n // We transition to pin regardless of upTolerance\n };\n } else if (scrollDirection === 'up' && currentScrollY <= state.height && ['pinned', 'unfixed'].indexOf(state.state) < 0) {\n return {\n action: 'pin',\n scrollDirection: scrollDirection,\n distanceScrolled: distanceScrolled\n };\n } else {\n return {\n action: 'none',\n scrollDirection: scrollDirection,\n distanceScrolled: distanceScrolled\n };\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = supportsPassiveEvents;\n/**\n * Used to detect browser support for adding an event listener with options\n * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Improving_scrolling_performance_with_passive_listeners\n * @returns Boolean\n */\nfunction supportsPassiveEvents() {\n var passiveSupported = false;\n\n try {\n var options = {\n get passive() {\n // This function will be called when the browser\n // attempts to access the passive property.\n passiveSupported = true;\n return false;\n }\n };\n\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (err) {\n passiveSupported = false;\n }\n\n return passiveSupported;\n}","const VALIDATOR_ARG_ERROR_MESSAGE =\n 'The typeValidator argument must be a function ' +\n 'with the signature function(props, propName, componentName).';\n\nconst MESSAGE_ARG_ERROR_MESSAGE =\n 'The error message is optional, but must be a string if provided.';\n\nconst propIsRequired = (condition, props, propName, componentName) => {\n if (typeof condition === 'boolean') {\n return condition;\n } else if (typeof condition === 'function') {\n return condition(props, propName, componentName);\n } else if (Boolean(condition) === true) {\n return Boolean(condition);\n }\n\n return false;\n};\n\nconst propExists = (props, propName) => Object.hasOwnProperty.call(props, propName);\n\nconst missingPropError = (props, propName, componentName, message) => {\n if (message) {\n return new Error(message);\n }\n\n return new Error(\n `Required ${props[propName]} \\`${propName}\\`` +\n ` was not specified in \\`${componentName}\\`.`,\n );\n};\n\nconst guardAgainstInvalidArgTypes = (typeValidator, message) => {\n if (typeof typeValidator !== 'function') {\n throw new TypeError(VALIDATOR_ARG_ERROR_MESSAGE);\n }\n\n if (Boolean(message) && typeof message !== 'string') {\n throw new TypeError(MESSAGE_ARG_ERROR_MESSAGE);\n }\n};\n\nconst isRequiredIf = (typeValidator, condition, message) => {\n guardAgainstInvalidArgTypes(typeValidator, message);\n\n return (props, propName, componentName, ...rest) => {\n if (propIsRequired(condition, props, propName, componentName)) {\n if (propExists(props, propName)) {\n return typeValidator(props, propName, componentName, ...rest);\n }\n\n return missingPropError(props, propName, componentName, message);\n }\n\n // Is not required, so just run typeValidator.\n return typeValidator(props, propName, componentName, ...rest);\n };\n};\n\nexport default isRequiredIf;\n","\"use strict\";function _interopRequireDefault(o){return o&&o.__esModule?o:{default:o}}function _objectWithoutProperties(o,n){var r={};for(var t in o)n.indexOf(t)>=0||Object.prototype.hasOwnProperty.call(o,t)&&(r[t]=o[t]);return r}function make(o,n){var r=n.left,t=n.right,e=n.up,a=n.down,p=n.top,i=n.bottom,s=n.mirror,l=n.opposite,u=(r?1:0)|(t?2:0)|(p||a?4:0)|(i||e?8:0)|(s?16:0)|(l?32:0)|(o?64:0);if(lookup.hasOwnProperty(u))return lookup[u];if(!s!=!(o&&l)){var d=[t,r,i,p,a,e];r=d[0],t=d[1],p=d[2],i=d[3],e=d[4],a=d[5]}var f=r||t,c=p||i||e||a,m=f||c,y=void 0,v=void 0,_=void 0,b=void 0,x=void 0,T=void 0,g=void 0,h=void 0,k=void 0,w=void 0,q=void 0,O=void 0,P=void 0,j=void 0;return o?(b=f?(t?\"-\":\"\")+\"20px\":0,x=c?(e||i?\"\":\"-\")+\"10px\":\"0\",T=(a||p?\"\":\"-\")+\"20px\",P=f?(r?\"-\":\"\")+\"2000px\":\"0\",j=c?(a||p?\"-\":\"\")+\"2000px\":\"0\"):(v=f?(r?\"-\":\"\")+\"3000px\":\"0\",_=c?(a||p?\"-\":\"\")+\"3000px\":\"0\",g=f?(t?\"-\":\"\")+\"25px\":\"0\",h=c?(e||i?\"-\":\"\")+\"25px\":\"0\",k=f?(r?\"-\":\"\")+\"10px\":\"0\",w=c?(a||p?\"-\":\"\")+\"10px\":\"0\",q=f?(t?\"-\":\"\")+\"5px\":\"0\",O=c?(e||i?\"-\":\"\")+\"5px\":\"0\"),y=m?o?\"\\n 20% {\\n transform: translate3d(\"+b+\", \"+x+\", 0);\\n }\\n \"+(c?\"40%, 45% {\\n opacity: 1;\\n transform: translate3d(0, \"+T+\", 0);\\n }\":\"\")+\"\\n to {\\n opacity: 0;\\n transform: translate3d(\"+P+\", \"+j+\", 0);\\n }\\n \":\"from, 60%, 75%, 90%, to {\\n animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\\n }\\n from {\\n opacity: 0;\\n transform: translate3d(\"+v+\", \"+_+\", 0);\\n }\\n 60% {\\n opacity: 1;\\n transform: translate3d(\"+g+\", \"+h+\", 0);\\n }\\n 75% {\\n transform: translate3d(\"+k+\", \"+w+\", 0);\\n }\\n 90% {\\n transform: translate3d(\"+q+\", \"+O+\", 0);\\n }\\n to {\\n transform: none;\\n }\":o?\"20% {\\n transform: scale3d(.9, .9, .9);\\n }\\n 50%, 55% {\\n opacity: 1;\\n transform: scale3d(1.1, 1.1, 1.1);\\n }\\n to {\\n opacity: 0;\\n transform: scale3d(.3, .3, .3);\\n }\":\"from, 20%, 40%, 60%, 80%, to {\\n animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\\n }\\n 0% {\\n opacity: 0;\\n transform: scale3d(.3, .3, .3);\\n }\\n 20% {\\n transform: scale3d(1.1, 1.1, 1.1);\\n }\\n 40% {\\n transform: scale3d(.9, .9, .9);\\n }\\n 60% {\\n opacity: 1;\\n transform: scale3d(1.03, 1.03, 1.03);\\n }\\n 80% {\\n transform: scale3d(.97, .97, .97);\\n }\\n to {\\n opacity: 1;\\n transform: scale3d(1, 1, 1);\\n }\",lookup[u]=(0,_globals.animation)(y),lookup[u]}function Bounce(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_globals.defaults,n=o.children,r=(o.out,o.forever),t=o.timeout,e=o.duration,a=void 0===e?_globals.defaults.duration:e,p=o.delay,i=void 0===p?_globals.defaults.delay:p,s=o.count,l=void 0===s?_globals.defaults.count:s,u=_objectWithoutProperties(o,[\"children\",\"out\",\"forever\",\"timeout\",\"duration\",\"delay\",\"count\"]),d={make:make,duration:void 0===t?a:t,delay:i,forever:r,count:l,style:{animationFillMode:\"both\"},reverse:u.left};return(0,_wrap2.default)(u,d,d,n)}Object.defineProperty(exports,\"__esModule\",{value:!0});var _propTypes=require(\"prop-types\"),_wrap=require(\"./wrap\"),_wrap2=_interopRequireDefault(_wrap),_globals=require(\"./globals\"),propTypes={out:_propTypes.bool,left:_propTypes.bool,right:_propTypes.bool,top:_propTypes.bool,bottom:_propTypes.bool,mirror:_propTypes.bool,opposite:_propTypes.bool,duration:_propTypes.number,timeout:_propTypes.number,delay:_propTypes.number,count:_propTypes.number,forever:_propTypes.bool},lookup={};Bounce.propTypes=propTypes,exports.default=Bounce,module.exports=exports.default;","\"use strict\";function _interopRequireDefault(o){return o&&o.__esModule?o:{default:o}}function _objectWithoutProperties(o,e){var r={};for(var t in o)e.indexOf(t)>=0||Object.prototype.hasOwnProperty.call(o,t)&&(r[t]=o[t]);return r}function make(o,e){var r=e.distance,t=e.left,p=e.right,a=e.up,l=e.down,i=e.top,u=e.bottom,n=e.big,s=e.mirror,d=e.opposite,_=(r?r.toString():0)+((t?1:0)|(p?2:0)|(i||l?4:0)|(u||a?8:0)|(s?16:0)|(d?32:0)|(o?64:0)|(n?128:0));if(lookup.hasOwnProperty(_))return lookup[_];var f=t||p||a||l||i||u,y=void 0,b=void 0;if(f){if(!s!=!(o&&d)){var v=[p,t,u,i,l,a];t=v[0],p=v[1],i=v[2],u=v[3],a=v[4],l=v[5]}var c=r||(n?\"2000px\":\"100%\");y=t?\"-\"+c:p?c:\"0\",b=l||i?\"-\"+c:a||u?c:\"0\"}return lookup[_]=(0,_globals.animation)((o?\"to\":\"from\")+\" {opacity: 0;\"+(f?\" transform: translate3d(\"+y+\", \"+b+\", 0);\":\"\")+\"}\\n \"+(o?\"from\":\"to\")+\" {opacity: 1;transform: none;} \"),lookup[_]}function Fade(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_globals.defaults,e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=o.children,t=(o.out,o.forever),p=o.timeout,a=o.duration,l=void 0===a?_globals.defaults.duration:a,i=o.delay,u=void 0===i?_globals.defaults.delay:i,n=o.count,s=void 0===n?_globals.defaults.count:n,d=_objectWithoutProperties(o,[\"children\",\"out\",\"forever\",\"timeout\",\"duration\",\"delay\",\"count\"]),_={make:make,duration:void 0===p?l:p,delay:u,forever:t,count:s,style:{animationFillMode:\"both\"},reverse:d.left};return e?(0,_wrap2.default)(d,_,_,r):_}Object.defineProperty(exports,\"__esModule\",{value:!0});var _propTypes=require(\"prop-types\"),_globals=require(\"./globals\"),_wrap=require(\"./wrap\"),_wrap2=_interopRequireDefault(_wrap),propTypes={out:_propTypes.bool,left:_propTypes.bool,right:_propTypes.bool,top:_propTypes.bool,bottom:_propTypes.bool,big:_propTypes.bool,mirror:_propTypes.bool,opposite:_propTypes.bool,duration:_propTypes.number,timeout:_propTypes.number,distance:_propTypes.string,delay:_propTypes.number,count:_propTypes.number,forever:_propTypes.bool},lookup={};Fade.propTypes=propTypes,exports.default=Fade,module.exports=exports.default;","\"use strict\";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _objectWithoutProperties(e,o){var t={};for(var r in e)o.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}function make(e,o){var t=o.left,r=o.right,n=o.top,p=o.bottom,i=o.x,a=o.y,s=o.mirror,l=o.opposite,u=(t?1:0)|(r||a?2:0)|(n||i?4:0)|(p?8:0)|(s?16:0)|(l?32:0)|(e?64:0);if(lookup.hasOwnProperty(u))return lookup[u];if(!s!=!(e&&l)){var d=[r,t,p,n,a,i];t=d[0],r=d[1],n=d[2],p=d[3],i=d[4],a=d[5]}var f=void 0;if(i||a||t||r||n||p){var m=i||n||p?(p?\"-\":\"\")+\"1\":\"0\",c=a||r||t?(t?\"-\":\"\")+\"1\":\"0\";f=e?\"from {\\n transform: perspective(400px);\\n }\\n 30% {\\n transform: perspective(400px) rotate3d(\"+m+\", \"+c+\", 0, -15deg);\\n opacity: 1;\\n }\\n to {\\n transform: perspective(400px) rotate3d(\"+m+\", \"+c+\", 0, 90deg);\\n opacity: 0;\\n }\":\"from {\\n transform: perspective(400px) rotate3d(\"+m+\", \"+c+\", 0, 90deg);\\n animation-timing-function: ease-in;\\n opacity: 0;\\n }\\n 40% {\\n transform: perspective(400px) rotate3d(\"+m+\", \"+c+\", 0, -20deg);\\n animation-timing-function: ease-in;\\n }\\n 60% {\\n transform: perspective(400px) rotate3d(\"+m+\", \"+c+\", 0, 10deg);\\n opacity: 1;\\n }\\n 80% {\\n transform: perspective(400px) rotate3d(\"+m+\", \"+c+\", 0, -5deg);\\n }\\n to {\\n transform: perspective(400px);\\n }\"}else f=\"from {\\n transform: perspective(400px) rotate3d(0, 1, 0, -360deg);\\n animation-timing-function: ease-out;\\n opacity: \"+(e?\"1\":\"0\")+\";\\n }\\n 40% {\\n transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);\\n animation-timing-function: ease-out;\\n }\\n 50% {\\n transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);\\n animation-timing-function: ease-in;\\n }\\n to {\\n transform: perspective(400px);\\n animation-timing-function: ease-in;\\n opacity: \"+(e?\"0\":\"1\")+\";\\n }\";return lookup[u]=(0,_globals.animation)(f),lookup[u]}function Flip(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_globals.defaults,o=e.children,t=(e.out,e.forever),r=e.timeout,n=e.duration,p=void 0===n?_globals.defaults.duration:n,i=e.delay,a=void 0===i?_globals.defaults.delay:i,s=e.count,l=void 0===s?_globals.defaults.count:s,u=_objectWithoutProperties(e,[\"children\",\"out\",\"forever\",\"timeout\",\"duration\",\"delay\",\"count\"]),d={make:make,duration:void 0===r?p:r,delay:a,forever:t,count:l,style:{animationFillMode:\"both\",backfaceVisibility:\"visible\"}};return(0,_wrap2.default)(u,d,d,o)}Object.defineProperty(exports,\"__esModule\",{value:!0});var _propTypes=require(\"prop-types\"),_wrap=require(\"./wrap\"),_wrap2=_interopRequireDefault(_wrap),_globals=require(\"./globals\"),propTypes={out:_propTypes.bool,left:_propTypes.bool,right:_propTypes.bool,top:_propTypes.bool,bottom:_propTypes.bool,mirror:_propTypes.bool,opposite:_propTypes.bool,duration:_propTypes.number,timeout:_propTypes.number,delay:_propTypes.number,count:_propTypes.number,forever:_propTypes.bool},lookup={};Flip.propTypes=propTypes,exports.default=Flip,module.exports=exports.default;","\"use strict\";function _interopRequireDefault(o){return o&&o.__esModule?o:{default:o}}function _objectWithoutProperties(o,e){var r={};for(var t in o)e.indexOf(t)>=0||Object.prototype.hasOwnProperty.call(o,t)&&(r[t]=o[t]);return r}function make(o,e){var r=e.left,t=e.right,p=e.mirror,n=e.opposite,a=(r?1:0)|(t?2:0)|(p?16:0)|(n?32:0)|(o?64:0);if(lookup.hasOwnProperty(a))return lookup[a];if(!p!=!(o&&n)){var i=[t,r];r=i[0],t=i[1]}var l=r?\"-100%\":t?\"100%\":\"0\",u=o?\"from {\\n opacity: 1;\\n }\\n to {\\n transform: translate3d(\"+l+\", 0, 0) skewX(30deg);\\n opacity: 0;\\n }\\n \":\"from {\\n transform: translate3d(\"+l+\", 0, 0) skewX(-30deg);\\n opacity: 0;\\n }\\n 60% {\\n transform: skewX(20deg);\\n opacity: 1;\\n }\\n 80% {\\n transform: skewX(-5deg);\\n opacity: 1;\\n }\\n to {\\n transform: none;\\n opacity: 1;\\n }\";return lookup[a]=(0,_globals.animation)(u),lookup[a]}function LightSpeed(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_globals.defaults,e=o.children,r=(o.out,o.forever),t=o.timeout,p=o.duration,n=void 0===p?_globals.defaults.duration:p,a=o.delay,i=void 0===a?_globals.defaults.delay:a,l=o.count,u=void 0===l?_globals.defaults.count:l,s=_objectWithoutProperties(o,[\"children\",\"out\",\"forever\",\"timeout\",\"duration\",\"delay\",\"count\"]),d={make:make,duration:void 0===t?n:t,delay:i,forever:r,count:u,style:{animationFillMode:\"both\"}};s.left,s.right,s.mirror,s.opposite;return(0,_wrap2.default)(s,d,d,e)}Object.defineProperty(exports,\"__esModule\",{value:!0});var _wrap=require(\"./wrap\"),_wrap2=_interopRequireDefault(_wrap),_propTypes=require(\"prop-types\"),_globals=require(\"./globals\"),propTypes={out:_propTypes.bool,left:_propTypes.bool,right:_propTypes.bool,mirror:_propTypes.bool,opposite:_propTypes.bool,duration:_propTypes.number,timeout:_propTypes.number,delay:_propTypes.number,count:_propTypes.number,forever:_propTypes.bool},lookup={};LightSpeed.propTypes=propTypes,exports.default=LightSpeed,module.exports=exports.default;","\"use strict\";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _objectWithoutProperties(e,t){var r={};for(var o in e)t.indexOf(o)>=0||Object.prototype.hasOwnProperty.call(e,o)&&(r[o]=e[o]);return r}function Reveal(e){function t(e){return e?_?{duration:n,delay:f,count:s,forever:d,className:_,style:{}}:y:i?{duration:void 0===o?u:o,delay:p,count:a,forever:l,className:i,style:{}}:c}var r=e.children,o=e.timeout,u=e.duration,p=e.delay,a=e.count,l=e.forever,n=e.durationOut,f=e.delayOut,s=e.countOut,d=e.foreverOut,i=e.effect,_=e.effectOut,c=e.inEffect,y=e.outEffect,O=_objectWithoutProperties(e,[\"children\",\"timeout\",\"duration\",\"delay\",\"count\",\"forever\",\"durationOut\",\"delayOut\",\"countOut\",\"foreverOut\",\"effect\",\"effectOut\",\"inEffect\",\"outEffect\"]);return(0,_wrap2.default)(O,t(!1),t(!0),r)}Object.defineProperty(exports,\"__esModule\",{value:!0});var _extends=Object.assign||function(e){for(var t=1;t>2,l=a>>1;n=a,r=i.delay+(this.isOn?0:s-a-l),e.style.animationDuration=s-a+(this.isOn?l:-l)+\"ms\",e.style.animationDelay=i.delay+(this.isOn?a-l:0)+\"ms\"}return e.collapse={height:o,transition:\"height \"+n+\"ms ease \"+r+\"ms\",overflow:t.collapseOnly?\"hidden\":void 0},e}},{key:\"animate\",value:function(e){if(this&&this.el&&(this.unlisten(),this.isShown!==this.isOn)){this.isShown=this.isOn;var t=!this.isOn&&e.outEffect,i=e[t?\"outEffect\":\"inEffect\"],s=\"style\"in i&&i.style.animationName||void 0,o=void 0;e.collapseOnly?o={hasAppeared:!0,hasExited:!1,style:{opacity:1}}:((e.outEffect||this.isOn)&&i.make&&(s=i.make),o={hasAppeared:!0,hasExited:!1,collapse:void 0,style:_extends({},i.style,{animationDuration:i.duration+\"ms\",animationDelay:i.delay+\"ms\",animationIterationCount:i.forever?\"infinite\":i.count,opacity:1,animationName:s}),className:i.className}),this.setState(e.collapse?this.collapse(o,e,i):o),t?(this.savedChild=_react2.default.cloneElement(this.getChild()),this.animationEnd(this.invisible,e.cascade,i)):this.savedChild=!1,this.onReveal(e)}}},{key:\"onReveal\",value:function(e){e.onReveal&&this.isOn&&(this.onRevealTimeout&&(this.onRevealTimeout=window.clearTimeout(this.onRevealTimeout)),e.wait?this.onRevealTimeout=window.setTimeout(e.onReveal,e.wait):e.onReveal())}},{key:\"componentWillUnmount\",value:function(){this.unlisten(),_globals.ssr&&(0,_globals.disableSsr)()}},{key:\"handleObserve\",value:function(e,t){_slicedToArray(e,1)[0].intersectionRatio>0&&(t.disconnect(),this.observer=null,this.reveal(this.props,!0))}},{key:\"observe\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.el&&_globals.observerMode){if(this.observer){if(!t)return;this.observer.disconnect()}else if(t)return;this.observer=new IntersectionObserver(this.handleObserve,{threshold:e.fraction}),this.observer.observe(this.el)}}},{key:\"reveal\",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];_globals.globalHide||(0,_globals.hideAll)(),this&&this.el&&(e||(e=this.props),_globals.ssr&&(0,_globals.disableSsr)(),this.isOn&&this.isShown&&void 0!==e.spy?(this.isShown=!1,this.setState({style:{}}),window.setTimeout(function(){return t.reveal(e)},200)):i||this.inViewport(e)||e.force?this.animate(e):_globals.observerMode?this.observe(e):this.listen())}},{key:\"componentDidMount\",value:function(){var e=this;if(this.el&&!this.props.disabled){this.props.collapseOnly||(\"make\"in this.props.inEffect&&this.props.inEffect.make(!1,this.props),void 0!==this.props.when&&this.props.outEffect&&\"make\"in this.props.outEffect&&this.props.outEffect.make(!0,this.props));var i=this.context.transitionGroup,s=i&&!i.isMounting?!(\"enter\"in this.props&&!1===this.props.enter):this.props.appear;return this.isOn&&((void 0!==this.props.when||void 0!==this.props.spy)&&!s||_globals.ssr&&!_globals.fadeOutEnabled&&!this.props.ssrFadeout&&this.props.outEffect&&!this.props.ssrReveal&&t.getTop(this.el)o-window.innerHeight&&s=0||Object.prototype.hasOwnProperty.call(o,t)&&(r[t]=o[t]);return r}function make(o,e){var r=e.left,t=e.right,p=e.up,l=e.down,a=e.top,u=e.bottom,i=e.big,n=e.mirror,s=e.opposite,d=(r?1:0)|(t?2:0)|(a||l?4:0)|(u||p?8:0)|(n?16:0)|(s?32:0)|(o?64:0)|(i?128:0);if(lookup.hasOwnProperty(d))return lookup[d];if(!n!=!(o&&s)){var _=[t,r,u,a,l,p];r=_[0],t=_[1],a=_[2],u=_[3],p=_[4],l=_[5]}var y=i?\"2000px\":\"100%\",b=r?\"-\"+y:t?y:\"0\",f=l||a?\"-\"+y:p||u?y:\"0\";return lookup[d]=(0,_globals.animation)(\"\\n \"+(o?\"to\":\"from\")+\" {opacity: 0;transform: translate3d(\"+b+\", \"+f+\", 0) rotate3d(0, 0, 1, -120deg);}\\n\\t \"+(o?\"from\":\"to\")+\" {opacity: 1;transform: none}\\n \"),lookup[d]}function Roll(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_globals.defaults,e=o.children,r=(o.out,o.forever),t=o.timeout,p=o.duration,l=void 0===p?_globals.defaults.duration:p,a=o.delay,u=void 0===a?_globals.defaults.delay:a,i=o.count,n=void 0===i?_globals.defaults.count:i,s=_objectWithoutProperties(o,[\"children\",\"out\",\"forever\",\"timeout\",\"duration\",\"delay\",\"count\"]),d={make:make,duration:void 0===t?l:t,delay:u,forever:r,count:n,style:{animationFillMode:\"both\"}};return(0,_wrap2.default)(s,d,d,e)}Object.defineProperty(exports,\"__esModule\",{value:!0});var _wrap=require(\"./wrap\"),_wrap2=_interopRequireDefault(_wrap),_propTypes=require(\"prop-types\"),_globals=require(\"./globals\"),propTypes={out:_propTypes.bool,left:_propTypes.bool,right:_propTypes.bool,top:_propTypes.bool,bottom:_propTypes.bool,big:_propTypes.bool,mirror:_propTypes.bool,opposite:_propTypes.bool,duration:_propTypes.number,timeout:_propTypes.number,delay:_propTypes.number,count:_propTypes.number,forever:_propTypes.bool},lookup={};Roll.propTypes=propTypes,exports.default=Roll,module.exports=exports.default;","\"use strict\";function _interopRequireDefault(o){return o&&o.__esModule?o:{default:o}}function _objectWithoutProperties(o,e){var r={};for(var t in o)e.indexOf(t)>=0||Object.prototype.hasOwnProperty.call(o,t)&&(r[t]=o[t]);return r}function make(o,e){var r=e.left,t=e.right,p=e.up,a=e.down,l=e.top,u=e.bottom,i=e.mirror,n=e.opposite,s=(r?1:0)|(t?2:0)|(l||a?4:0)|(u||p?8:0)|(i?16:0)|(n?32:0)|(o?64:0);if(lookup.hasOwnProperty(s))return lookup[s];if(!i!=!(o&&n)){var d=[t,r,u,l,a,p];r=d[0],t=d[1],l=d[2],u=d[3],p=d[4],a=d[5]}var f=\"-200deg\",_=\"center\";return(a||l)&&r&&(f=\"-45deg\"),((a||l)&&t||(p||u)&&r)&&(f=\"45deg\"),(p||u)&&t&&(f=\"-90deg\"),(r||t)&&(_=(r?\"left\":\"right\")+\" bottom\"),lookup[s]=(0,_globals.animation)(\"\\n \"+(o?\"to\":\"from\")+\" { opacity: 0; transform-origin: \"+_+\"; transform: rotate3d(0, 0, 1, \"+f+\");}\\n \"+(o?\"from\":\"to\")+\" { opacity: 1; transform-origin: \"+_+\"; transform: none;}\\n \"),lookup[s]}function Rotate(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_globals.defaults,e=o.children,r=(o.out,o.forever),t=o.timeout,p=o.duration,a=void 0===p?_globals.defaults.duration:p,l=o.delay,u=void 0===l?_globals.defaults.delay:l,i=o.count,n=void 0===i?_globals.defaults.count:i,s=_objectWithoutProperties(o,[\"children\",\"out\",\"forever\",\"timeout\",\"duration\",\"delay\",\"count\"]),d={make:make,duration:void 0===t?a:t,delay:u,forever:r,count:n,style:{animationFillMode:\"both\"}};return(0,_wrap2.default)(s,d,d,e)}Object.defineProperty(exports,\"__esModule\",{value:!0});var _propTypes=require(\"prop-types\"),_wrap=require(\"./wrap\"),_wrap2=_interopRequireDefault(_wrap),_globals=require(\"./globals\"),propTypes={out:_propTypes.bool,left:_propTypes.bool,right:_propTypes.bool,top:_propTypes.bool,bottom:_propTypes.bool,mirror:_propTypes.bool,opposite:_propTypes.bool,duration:_propTypes.number,timeout:_propTypes.number,delay:_propTypes.number,count:_propTypes.number,forever:_propTypes.bool},lookup={};Rotate.propTypes=propTypes,exports.default=Rotate,module.exports=exports.default;","\"use strict\";function _interopRequireDefault(o){return o&&o.__esModule?o:{default:o}}function _objectWithoutProperties(o,e){var r={};for(var t in o)e.indexOf(t)>=0||Object.prototype.hasOwnProperty.call(o,t)&&(r[t]=o[t]);return r}function make(o,e){var r=e.left,t=e.right,p=e.up,l=e.down,u=e.top,a=e.bottom,i=e.big,n=e.mirror,s=e.opposite,d=(r?1:0)|(t?2:0)|(u||l?4:0)|(a||p?8:0)|(n?16:0)|(s?32:0)|(o?64:0)|(i?128:0);if(lookup.hasOwnProperty(d))return lookup[d];var _=r||t||p||l||u||a,f=void 0,b=void 0;if(_){if(!n!=!(o&&s)){var y=[t,r,a,u,l,p];r=y[0],t=y[1],u=y[2],a=y[3],p=y[4],l=y[5]}var m=i?\"2000px\":\"100%\";f=r?\"-\"+m:t?m:\"0\",b=l||u?\"-\"+m:p||a?m:\"0\"}return lookup[d]=(0,_globals.animation)((o?\"to\":\"from\")+\" {\"+(_?\" transform: translate3d(\"+f+\", \"+b+\", 0);\":\"\")+\"}\\n \"+(o?\"from\":\"to\")+\" {transform: none;} \"),lookup[d]}function Slide(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_globals.defaults,e=o.children,r=(o.out,o.forever),t=o.timeout,p=o.duration,l=void 0===p?_globals.defaults.duration:p,u=o.delay,a=void 0===u?_globals.defaults.delay:u,i=o.count,n=void 0===i?_globals.defaults.count:i,s=_objectWithoutProperties(o,[\"children\",\"out\",\"forever\",\"timeout\",\"duration\",\"delay\",\"count\"]),d={make:make,duration:void 0===t?l:t,delay:a,forever:r,count:n,style:{animationFillMode:\"both\"},reverse:s.left};return(0,_wrap2.default)(s,d,d,e)}Object.defineProperty(exports,\"__esModule\",{value:!0});var _propTypes=require(\"prop-types\"),_wrap=require(\"./wrap\"),_wrap2=_interopRequireDefault(_wrap),_globals=require(\"./globals\"),propTypes={out:_propTypes.bool,left:_propTypes.bool,right:_propTypes.bool,top:_propTypes.bool,bottom:_propTypes.bool,big:_propTypes.bool,mirror:_propTypes.bool,opposite:_propTypes.bool,duration:_propTypes.number,timeout:_propTypes.number,delay:_propTypes.number,count:_propTypes.number,forever:_propTypes.bool},lookup={};Slide.propTypes=propTypes,exports.default=Slide,module.exports=exports.default;","\"use strict\";function _interopRequireDefault(o){return o&&o.__esModule?o:{default:o}}function _objectWithoutProperties(o,e){var r={};for(var t in o)e.indexOf(t)>=0||Object.prototype.hasOwnProperty.call(o,t)&&(r[t]=o[t]);return r}function make(o,e){var r=e.left,t=e.right,p=e.up,n=e.down,a=e.top,i=e.bottom,l=e.mirror,u=e.opposite,s=(r?1:0)|(t?2:0)|(a||n?4:0)|(i||p?8:0)|(l?16:0)|(u?32:0)|(o?64:0);if(lookup.hasOwnProperty(s))return lookup[s];if(!l!=!(o&&u)){var d=[t,r,i,a,n,p];r=d[0],t=d[1],a=d[2],i=d[3],p=d[4],n=d[5]}var f=r||t,c=a||i||p||n,m=f||c,y=void 0,b=void 0,_=void 0,v=void 0,T=void 0;return m?o?(b=f?(r?\"\":\"-\")+\"42px\":\"0\",_=c?(n||a?\"-\":\"\")+\"60px\":\"0\",v=f?(t?\"\":\"-\")+\"2000px\":\"0\",T=c?(p||i?\"\":\"-\")+\"2000px\":\"0\",y=\"40% {\\n opacity: 1;\\n transform: scale3d(.475, .475, .475) translate3d(\"+b+\", \"+_+\", 0);\\n }\\n to {\\n opacity: 0;\\n transform: scale(.1) translate3d(\"+v+\", \"+T+\", 0);\\n transform-origin: \"+(c?\"center bottom\":(r?\"left\":\"right\")+\" center\")+\";\\n }\"):(b=f?(r?\"-\":\"\")+\"1000px\":\"0\",_=c?(n||a?\"-\":\"\")+\"1000px\":\"0\",v=f?(t?\"-\":\"\")+\"10px\":\"0\",T=c?(p||i?\"-\":\"\")+\"60px\":\"0\",y=\"from {\\n opacity: 0;\\n transform: scale3d(.1, .1, .1) translate3d(\"+b+\", \"+_+\", 0);\\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\\n }\\n 60% {\\n opacity: 1;\\n transform: scale3d(.475, .475, .475) translate3d(\"+v+\", \"+T+\", 0);\\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\\n }\"):y=(o?\"to\":\"from\")+\" {opacity: 0; transform: scale3d(.1, .1, .1);} \"+(o?\"from\":\"to\")+\" { opacity: 1; transform: none;}\",lookup[s]=(0,_globals.animation)(y),lookup[s]}function Zoom(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_globals.defaults,e=o.children,r=(o.out,o.forever),t=o.timeout,p=o.duration,n=void 0===p?_globals.defaults.duration:p,a=o.delay,i=void 0===a?_globals.defaults.delay:a,l=o.count,u=void 0===l?_globals.defaults.count:l,s=_objectWithoutProperties(o,[\"children\",\"out\",\"forever\",\"timeout\",\"duration\",\"delay\",\"count\"]),d={make:make,duration:void 0===t?n:t,delay:i,forever:r,count:u,style:{animationFillMode:\"both\"},reverse:s.left};return(0,_wrap2.default)(s,d,d,e)}Object.defineProperty(exports,\"__esModule\",{value:!0});var _propTypes=require(\"prop-types\"),_wrap=require(\"./wrap\"),_wrap2=_interopRequireDefault(_wrap),_globals=require(\"./globals\"),propTypes={out:_propTypes.bool,left:_propTypes.bool,right:_propTypes.bool,top:_propTypes.bool,bottom:_propTypes.bool,mirror:_propTypes.bool,opposite:_propTypes.bool,duration:_propTypes.number,timeout:_propTypes.number,delay:_propTypes.number,count:_propTypes.number,forever:_propTypes.bool},lookup={};Zoom.propTypes=propTypes,exports.default=Zoom,module.exports=exports.default;","\"use strict\";function insertRule(e){try{return sheet.insertRule(e,sheet.cssRules.length)}catch(e){console.warn(\"react-reveal - animation failed\")}}function cascade(e,n,t,o,r){var s=Math.log(o),i=Math.log(r),a=(i-s)/(t-n);return Math.exp(s+a*(e-n))}function animation(e){if(!sheet)return\"\";var n=\"@keyframes \"+(name+counter)+\"{\"+e+\"}\",t=effectMap[e];return t?\"\"+name+t:(sheet.insertRule(n,sheet.cssRules.length),effectMap[e]=counter,\"\"+name+counter++)}function hideAll(){globalHide||(exports.globalHide=globalHide=!0,window.removeEventListener(\"scroll\",hideAll,!0),insertRule(\".\"+namespace+\" { opacity: 0; }\"),window.removeEventListener(\"orientationchange\",hideAll,!0),window.document.removeEventListener(\"visibilitychange\",hideAll))}function config(e){var n=e.ssrFadeout;exports.fadeOutEnabled=fadeOutEnabled=n}Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.insertRule=insertRule,exports.cascade=cascade,exports.animation=animation,exports.hideAll=hideAll,exports.default=config;var namespace=exports.namespace=\"react-reveal\",defaults=exports.defaults={duration:1e3,delay:0,count:1},ssr=exports.ssr=!0,observerMode=exports.observerMode=!1,raf=exports.raf=function(e){return window.setTimeout(e,66)},disableSsr=exports.disableSsr=function(){return exports.ssr=ssr=!1},fadeOutEnabled=exports.fadeOutEnabled=!1,ssrFadeout=exports.ssrFadeout=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return exports.fadeOutEnabled=fadeOutEnabled=e},globalHide=exports.globalHide=!1,ie10=exports.ie10=!1,collapseend=exports.collapseend=void 0,counter=1,effectMap={},sheet=!1,name=namespace+\"-\"+Math.floor(1e15*Math.random())+\"-\";if(\"undefined\"!=typeof window&&\"nodejs\"!==window.name&&window.document&&\"undefined\"!=typeof navigator){exports.observerMode=observerMode=\"IntersectionObserver\"in window&&\"IntersectionObserverEntry\"in window&&\"intersectionRatio\"in window.IntersectionObserverEntry.prototype&&/\\{\\s*\\[native code\\]\\s*\\}/.test(\"\"+IntersectionObserver),exports.raf=raf=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||raf,exports.ssr=ssr=window.document.querySelectorAll(\"div[data-reactroot]\").length>0,-1!==navigator.appVersion.indexOf(\"MSIE 10\")&&(exports.ie10=ie10=!0),ssr&&\"performance\"in window&&\"timing\"in window.performance&&\"domContentLoadedEventEnd\"in window.performance.timing&&window.performance.timing.domLoading&&Date.now()-window.performance.timing.domLoading<300&&(exports.ssr=ssr=!1),ssr&&window.setTimeout(disableSsr,1500),observerMode||(exports.collapseend=collapseend=document.createEvent(\"Event\"),collapseend.initEvent(\"collapseend\",!0,!0));var element=document.createElement(\"style\");document.head.appendChild(element),element.sheet&&element.sheet.cssRules&&element.sheet.insertRule&&(sheet=element.sheet,window.addEventListener(\"scroll\",hideAll,!0),window.addEventListener(\"orientationchange\",hideAll,!0),window.document.addEventListener(\"visibilitychange\",hideAll))}","\"use strict\";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(exports,\"__esModule\",{value:!0});var _Reveal=require(\"./Reveal\");Object.defineProperty(exports,\"default\",{enumerable:!0,get:function(){return _interopRequireDefault(_Reveal).default}});var _Fade=require(\"./Fade\");Object.defineProperty(exports,\"Fade\",{enumerable:!0,get:function(){return _interopRequireDefault(_Fade).default}});var _Bounce=require(\"./Bounce\");Object.defineProperty(exports,\"Bounce\",{enumerable:!0,get:function(){return _interopRequireDefault(_Bounce).default}});var _Roll=require(\"./Roll\");Object.defineProperty(exports,\"Roll\",{enumerable:!0,get:function(){return _interopRequireDefault(_Roll).default}});var _Slide=require(\"./Slide\");Object.defineProperty(exports,\"Slide\",{enumerable:!0,get:function(){return _interopRequireDefault(_Slide).default}});var _Flip=require(\"./Flip\");Object.defineProperty(exports,\"Flip\",{enumerable:!0,get:function(){return _interopRequireDefault(_Flip).default}}),Object.defineProperty(exports,\"Reveal\",{enumerable:!0,get:function(){return _interopRequireDefault(_Reveal).default}});var _Rotate=require(\"./Rotate\");Object.defineProperty(exports,\"Rotate\",{enumerable:!0,get:function(){return _interopRequireDefault(_Rotate).default}});var _LightSpeed=require(\"./LightSpeed\");Object.defineProperty(exports,\"LightSpeed\",{enumerable:!0,get:function(){return _interopRequireDefault(_LightSpeed).default}});var _Zoom=require(\"./Zoom\");Object.defineProperty(exports,\"Zoom\",{enumerable:!0,get:function(){return _interopRequireDefault(_Zoom).default}});","\"use strict\";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function wrap(e,t,a,r){return\"in\"in e&&(e.when=e.in),_react2.default.Children.count(r)<2?_react2.default.createElement(_RevealBase2.default,_extends({},e,{inEffect:t,outEffect:a,children:r})):(r=_react2.default.Children.map(r,function(r){return _react2.default.createElement(_RevealBase2.default,_extends({},e,{inEffect:t,outEffect:a,children:r}))}),\"Fragment\"in _react2.default?_react2.default.createElement(_react2.default.Fragment,null,r):_react2.default.createElement(\"span\",null,r))}Object.defineProperty(exports,\"__esModule\",{value:!0});var _extends=Object.assign||function(e){for(var t=1;tQ.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime= 0) {\n\t\tvar arr = []\n\t\tvar endIndex = index + patternString.length\n\n\t\tif (index > 0) {\n\t\t\tarr.push(string.substring(0, index))\n\t\t}\n\n\t\tarr.push(\n\t\t\t(typeof newValueOrFn === 'function') ?\n\t\t\t\tnewValueOrFn(\n\t\t\t\t\tstring.substring(index, endIndex),\n\t\t\t\t\tindex + globalOffset,\n\t\t\t\t\tstring\n\t\t\t\t) :\n\t\t\t\tnewValueOrFn\n\t\t)\n\n\t\tif (endIndex < string.length) {\n\t\t\tarr.push(string.substring(endIndex))\n\t\t}\n\n\t\treturn arr\n\t} else {\n\t\treturn [string]\n\t}\n}\n\nfunction replaceUsingRegexp (string, regexp, newValueOrFn, globalOffset) {\n\tvar output = []\n\n\tvar replacerIsFn = (typeof newValueOrFn === 'function')\n\n\tvar storedLastIndex = regexp.lastIndex\n\tregexp.lastIndex = 0\n\n\tvar result\n\tvar lastIndex = 0\n\twhile (result = regexp.exec(string)) {\n\t\tvar index = result.index\n\n\t\tif (result[0] === '') {\n\t\t\t// When the regexp is an empty string\n\t\t\t// we still want to advance our cursor to the next item.\n\t\t\t// This is the behavior of String.replace.\n\t\t\tregexp.lastIndex++\n\t\t}\n\n\t\tif (index !== lastIndex) {\n\t\t\toutput.push(string.substring(lastIndex, index))\n\t\t}\n\n\t\tvar match = result[0]\n\t\tlastIndex = index + match.length\n\t\t\n\t\tvar out = replacerIsFn ?\n\t\t\tnewValueOrFn.apply(this, result.concat(index + globalOffset, result.input)) :\n\t\t\tnewValueOrFn\n\t\toutput.push(out)\n\n\t\tif (!regexp.global) {\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif (lastIndex < string.length) {\n\t\toutput.push(string.substring(lastIndex))\n\t}\n\n\tregexp.lastIndex = storedLastIndex\n\treturn output\n}\n\nmodule.exports = function stringReplaceToArray (stringOrArray, regexpOrSubstr, newSubStrOrFn) {\n\tif (typeof stringOrArray === 'string') {\n\t\treturn replace(stringOrArray, regexpOrSubstr, newSubStrOrFn, 0)\n\t} else if (!Array.isArray(stringOrArray) || !stringOrArray[0]) {\n\t\tthrow new TypeError('First argument must be an array or non-empty string')\n\t} else {\n\t\tvar len = stringOrArray.length\n\t\tvar output = []\n\t\tvar globalOffset = 0\n\t\tfor (var i = 0; i < len; ++i) {\n\t\t\tvar arrayItem = stringOrArray[i]\n\t\t\tif (typeof arrayItem === 'string') {\n\t\t\t\toutput.push.apply(output, replace(arrayItem, regexpOrSubstr, newSubStrOrFn, globalOffset))\n\t\t\t\tglobalOffset += arrayItem.length\n\t\t\t} else {\n\t\t\t\toutput.push(arrayItem)\n\t\t\t}\n\t\t}\n\t\treturn output\n\t}\n}","var map = {\n\t\"./BarcelonaLogo.png\": 8692,\n\t\"./agues.png\": 1,\n\t\"./airbnbLogo.png\": 3783,\n\t\"./chat-with-resume-preview.png\": 123,\n\t\"./codeInLogo.webp\": 7008,\n\t\"./contactMail.webp\": 9729,\n\t\"./contactMailDark.svg\": 3527,\n\t\"./cvcLogo.png\": 3847,\n\t\"./developerActivity.svg\": 36,\n\t\"./facebookLogo.png\": 34,\n\t\"./googleAssistant.svg\": 760,\n\t\"./googleAssistantLogo.webp\": 2905,\n\t\"./harvardLogo.png\": 5972,\n\t\"./icpcLogo.jpg\": 4213,\n\t\"./isv.png\": 84,\n\t\"./jsFramework.svg\": 860,\n\t\"./manOnTable.svg\": 8776,\n\t\"./mindy.png\": 8006,\n\t\"./nextuLogo.webp\": 2953,\n\t\"./northwestern.jpg\": 416,\n\t\"./plugandplay.jpg\": 2415,\n\t\"./programmer.svg\": 522,\n\t\"./pwa.webp\": 930,\n\t\"./pwaLogo.webp\": 9943,\n\t\"./quoraLogo.png\": 8967,\n\t\"./saayaHealthLogo.webp\": 7788,\n\t\"./skill.svg\": 1601,\n\t\"./stanfordLogo.png\": 7021,\n\t\"./stepLogo.jpg\": 2881,\n\t\"./talksCardBack.svg\": 2592,\n\t\"./vitaelia.jpg\": 4250,\n\t\"./wisconsinLogo.jpeg\": 2985\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 990;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + {\"141\":\"ba20b319\",\"769\":\"c10ad3ac\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/css/\" + chunkId + \".\" + {\"141\":\"a78981ef\",\"769\":\"b3cbb36b\"}[chunkId] + \".chunk.css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"pai-portfolio:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = (event) => {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = (href, fullhref) => {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = (chunkId) => {\n\treturn new Promise((resolve, reject) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.miniCss = (chunkId, promises) => {\n\tvar cssChunks = {\"141\":1,\"769\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, (e) => {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkpai_portfolio\"] = self[\"webpackChunkpai_portfolio\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","import React from \"react\";\n\nconst StyleContext = React.createContext();\n\nexport const StyleProvider = StyleContext.Provider;\nexport const StyleConsumer = StyleContext.Consumer;\n\nexport default StyleContext;\n","import React, {useState, useContext} from \"react\";\nimport emoji from \"react-easy-emoji\";\nimport StyleContext from \"../../contexts/StyleContext\";\nimport \"./ToggleSwitch.scss\";\n\nconst ToggleSwitch = () => {\n const {isDark} = useContext(StyleContext);\n const [isChecked, setChecked] = useState(isDark);\n const styleContext = useContext(StyleContext);\n\n return (\n \n );\n};\nexport default ToggleSwitch;\n","import React, {useContext} from \"react\";\nimport Headroom from \"react-headroom\";\nimport \"./Header.scss\";\nimport ToggleSwitch from \"../ToggleSwitch/ToggleSwitch\";\nimport StyleContext from \"../../contexts/StyleContext\";\nimport {\n greeting,\n workExperiences,\n skillsSection,\n openSource,\n blogSection,\n talkSection,\n achievementSection,\n resumeSection\n} from \"../../portfolio\";\n\nfunction Header() {\n const {isDark} = useContext(StyleContext);\n const viewExperience = workExperiences.display;\n const viewOpenSource = openSource.display;\n const viewSkills = skillsSection.display;\n const viewAchievement = achievementSection.display;\n const viewBlog = blogSection.display;\n const viewTalks = talkSection.display;\n const viewResume = resumeSection.display;\n\n return (\n \n
\n \n <\n {greeting.username}\n />\n \n \n \n \n \n
    \n {viewSkills && (\n
  • \n Skills\n
  • \n )}\n {viewExperience && (\n
  • \n Work Experiences\n
  • \n )}\n {viewOpenSource && (\n
  • \n Open Source\n
  • \n )}\n {viewAchievement && (\n
  • \n Achievements\n
  • \n )}\n {viewBlog && (\n
  • \n Blogs\n
  • \n )}\n {viewTalks && (\n
  • \n Talks\n
  • \n )}\n {viewResume && (\n
  • \n Resume\n
  • \n )}\n
  • \n Contact Me\n
  • \n
  • \n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n \n \n \n
  • \n
\n
\n
\n );\n}\nexport default Header;\n","import React from \"react\";\nimport \"./loading.scss\";\n\nexport default function Loading() {\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n );\n}\n","import React, {Component, Suspense} from \"react\";\nimport Lottie from \"lottie-react\";\nimport Loading from \"../../containers/loading/Loading\";\n\nexport default class DisplayLottie extends Component {\n render() {\n const animationData = this.props.animationData;\n const defaultOptions = {\n loop: true,\n autoplay: true,\n animationData: animationData\n };\n\n return (\n }>\n \n \n );\n }\n}\n","import React from \"react\";\nimport \"./Button.scss\";\n\nexport default function Button({text, className, href, newTab}) {\n return (\n \n );\n}\n","import React, {useContext, useState} from \"react\";\nimport {Fade} from \"react-reveal\";\nimport emoji from \"react-easy-emoji\";\nimport \"./Greeting.scss\";\nimport landingPerson from \"../../assets/lottie/landingPerson\";\nimport DisplayLottie from \"../../components/displayLottie/DisplayLottie\";\nimport SocialMedia from \"../../components/socialMedia/SocialMedia\";\nimport Button from \"../../components/button/Button\";\nimport {illustration, greeting} from \"../../portfolio\";\nimport StyleContext from \"../../contexts/StyleContext\";\nimport getAssetUrl from \"../../utils\";\nexport default function Greeting() {\n const {isDark} = useContext(StyleContext);\n const [showSmallProjects, setShowSmallProjects] = useState(false);\n\n if (!greeting.displayGreeting) {\n return null;\n }\n return (\n \n
\n
\n
\n
\n \n {\" \"}\n {greeting.title}{\" \"}\n {emoji(\"👋\")}\n \n \n {greeting.subTitle}\n

\n
\n \n
\n {greeting.currentProject && (\n
\n

\n {greeting.currentProject.text}{\" \"}\n \n {greeting.currentProject.projectName}\n \n

\n

\n {greeting.currentProject.description}\n

\n
\n )}\n {greeting.earlyProject && (\n
\n

\n {greeting.earlyProject.text}{\" \"}\n {greeting.earlyProject.projectName}\n

\n

\n {greeting.earlyProject.description}\n

\n
\n )}\n {greeting.plannedProjects && greeting.plannedProjects.map((project, index) => (\n
\n

\n {project.text}{\" \"}\n {project.projectName}\n

\n

\n {project.description}\n

\n
\n ))}\n {greeting.smallProjects && (\n
\n
setShowSmallProjects(!showSmallProjects)}\n >\n
\n

\n {greeting.smallProjects.title}\n

\n \n {greeting.smallProjects.subtitle}\n \n
\n \n ▼\n \n
\n {showSmallProjects && (\n
\n {greeting.smallProjects.projects.map((project, index) => (\n
\n

{project.projectName}

\n

{project.description}

\n
\n ))}\n
\n )}\n
\n )}\n \n
\n
\n
\n {illustration.animated ? (\n \n ) : (\n \n )}\n
\n
\n
\n
\n );\n}\n","import React from \"react\";\nimport \"./SoftwareSkill.scss\";\nimport {skillsSection} from \"../../portfolio\";\n\nexport default function SoftwareSkill() {\n return (\n
\n
\n
    \n {skillsSection.softwareSkills.map((skills, i) => {\n return (\n \n \n

    {skills.skillName}

    \n \n );\n })}\n
\n
\n
\n );\n}\n","import React, {useContext} from \"react\";\nimport \"./Skills.scss\";\nimport SoftwareSkill from \"../../components/softwareSkills/SoftwareSkill\";\nimport {illustration, skillsSection} from \"../../portfolio\";\nimport {Fade} from \"react-reveal\";\nimport codingPerson from \"../../assets/lottie/codingPerson\";\nimport DisplayLottie from \"../../components/displayLottie/DisplayLottie\";\nimport StyleContext from \"../../contexts/StyleContext\";\nimport getAssetUrl from \"../../utils\";\nexport default function Skills() {\n const {isDark} = useContext(StyleContext);\n if (!skillsSection.display) {\n return null;\n }\n return (\n
\n
\n \n
\n {illustration.animated ? (\n \n ) : (\n \n )}\n
\n
\n \n
\n \n {skillsSection.title}{\" \"}\n \n \n {skillsSection.subTitle}\n

\n \n
\n {skillsSection.skills.map((skills, i) => {\n return (\n \n {skills}\n

\n );\n })}\n
\n
\n
\n
\n
\n );\n}\n","import React from \"react\";\nimport \"./Progress.scss\";\nimport {illustration, techStack} from \"../../portfolio\";\nimport {Fade} from \"react-reveal\";\nimport Build from \"../../assets/lottie/build\";\nimport DisplayLottie from \"../../components/displayLottie/DisplayLottie\";\nimport getAssetUrl from \"../../utils\";\nexport default function StackProgress() {\n if (techStack.viewSkillBars) {\n return (\n \n
\n
\n

Proficiency

\n {techStack.experience.map((exp, i) => {\n const progressStyle = {\n width: exp.progressPercentage\n };\n return (\n
\n

{exp.Stack}

\n
\n \n
\n
\n );\n })}\n
\n\n
\n {illustration.animated ? (\n \n ) : (\n \n )}\n
\n
\n
\n );\n }\n return null;\n}\n","if(!t)var t={map:function(t,r){var n={};return r?t.map(function(t,o){return n.index=o,r.call(n,t)}):t.slice()},naturalOrder:function(t,r){return tr?1:0},sum:function(t,r){var n={};return t.reduce(r?function(t,o,e){return n.index=e,t+r.call(n,o)}:function(t,r){return t+r},0)},max:function(r,n){return Math.max.apply(null,n?t.map(r,n):r)}};var r=function(){var r=5,n=8-r,o=1e3;function e(t,n,o){return(t<<2*r)+(n<h/2){for(e=n.copy(),u=n.copy(),a=(r=i-n[c])<=(o=n[f]-i)?Math.min(n[f]-1,~~(i+o/2)):Math.max(n[c],~~(i-1-r/2));!v[a];)a++;for(s=l[a];!s&&v[a-1];)s=l[--a];return e[f]=a,u[c]=e[f]+1,[e,u]}}(a==o?\"r\":a==u?\"g\":\"b\")}}return a.prototype={volume:function(t){var r=this;return r._volume&&!t||(r._volume=(r.r2-r.r1+1)*(r.g2-r.g1+1)*(r.b2-r.b1+1)),r._volume},count:function(t){var r=this,n=r.histo;if(!r._count_set||t){var o,u,a,i=0;for(o=r.r1;o<=r.r2;o++)for(u=r.g1;u<=r.g2;u++)for(a=r.b1;a<=r.b2;a++)i+=n[e(o,u,a)]||0;r._count=i,r._count_set=!0}return r._count},copy:function(){var t=this;return new a(t.r1,t.r2,t.g1,t.g2,t.b1,t.b2,t.histo)},avg:function(t){var n=this,o=n.histo;if(!n._avg||t){var u,a,i,c,f=0,s=1<<8-r,h=0,v=0,l=0;for(a=n.r1;a<=n.r2;a++)for(i=n.g1;i<=n.g2;i++)for(c=n.b1;c<=n.b2;c++)f+=u=o[e(a,i,c)]||0,h+=u*(a+.5)*s,v+=u*(i+.5)*s,l+=u*(c+.5)*s;n._avg=f?[~~(h/f),~~(v/f),~~(l/f)]:[~~(s*(n.r1+n.r2+1)/2),~~(s*(n.g1+n.g2+1)/2),~~(s*(n.b1+n.b2+1)/2)]}return n._avg},contains:function(t){var r=this,o=t[0]>>n;return gval=t[1]>>n,bval=t[2]>>n,o>=r.r1&&o<=r.r2&&gval>=r.g1&&gval<=r.g2&&bval>=r.b1&&bval<=r.b2}},i.prototype={push:function(t){this.vboxes.push({vbox:t,color:t.avg()})},palette:function(){return this.vboxes.map(function(t){return t.color})},size:function(){return this.vboxes.size()},map:function(t){for(var r=this.vboxes,n=0;n251&&e[1]>251&&e[2]>251&&(r[o].color=[255,255,255])}},{quantize:function(f,s){if(!f.length||s<2||s>256)return!1;var h=function(t){var o,u=new Array(1<<3*r);return t.forEach(function(t){o=e(t[0]>>n,t[1]>>n,t[2]>>n),u[o]=(u[o]||0)+1}),u}(f);h.forEach(function(){});var v=function(t,r){var o,e,u,i=1e6,c=0,f=1e6,s=0,h=1e6,v=0;return t.forEach(function(t){(o=t[0]>>n)c&&(c=o),(e=t[1]>>n)s&&(s=e),(u=t[2]>>n)v&&(v=u)}),new a(i,c,f,s,h,v,r)}(f,h),l=new u(function(r,n){return t.naturalOrder(r.count(),n.count())});function g(t,r){for(var n,e=t.size(),u=0;u=r)return;if(u++>o)return;if((n=t.pop()).count()){var a=c(h,n),i=a[0],f=a[1];if(!i)return;t.push(i),f&&(t.push(f),e++)}else t.push(n),u++}}l.push(v),g(l,.75*s);for(var p=new u(function(r,n){return t.naturalOrder(r.count()*r.volume(),n.count()*n.volume())});l.size();)p.push(l.pop());g(p,s);for(var b=new i;p.size();)b.push(p.pop());return b}}}().quantize,n=function(t){this.canvas=document.createElement(\"canvas\"),this.context=this.canvas.getContext(\"2d\"),this.width=this.canvas.width=t.naturalWidth,this.height=this.canvas.height=t.naturalHeight,this.context.drawImage(t,0,0,this.width,this.height)};n.prototype.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)};var o=function(){};o.prototype.getColor=function(t,r){return void 0===r&&(r=10),this.getPalette(t,5,r)[0]},o.prototype.getPalette=function(t,o,e){var u=function(t){var r=t.colorCount,n=t.quality;if(void 0!==r&&Number.isInteger(r)){if(1===r)throw new Error(\"colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()\");r=Math.max(r,2),r=Math.min(r,20)}else r=10;return(void 0===n||!Number.isInteger(n)||n<1)&&(n=10),{colorCount:r,quality:n}}({colorCount:o,quality:e}),a=new n(t),i=function(t,r,n){for(var o,e,u,a,i,c=t,f=[],s=0;s=125)&&(e>250&&u>250&&a>250||f.push([e,u,a]));return f}(a.getImageData().data,a.width*a.height,u.quality),c=r(i,u.colorCount);return c?c.palette():null},o.prototype.getColorFromUrl=function(t,r,n){var o=this,e=document.createElement(\"img\");e.addEventListener(\"load\",function(){var u=o.getPalette(e,5,n);r(u[0],t)}),e.src=t},o.prototype.getImageData=function(t,r){var n=new XMLHttpRequest;n.open(\"GET\",t,!0),n.responseType=\"arraybuffer\",n.onload=function(){if(200==this.status){var t=new Uint8Array(this.response);i=t.length;for(var n=new Array(i),o=0;o {\n return descBullets\n ? descBullets.map((item, i) => (\n \n {item}\n \n ))\n : null;\n };\n\n return (\n
\n
\n
\n
\n
{cardInfo.company}
\n
\n\n getColorArrays()}\n />\n
\n
\n \n {cardInfo.role}\n \n \n {cardInfo.date}\n \n \n {cardInfo.desc}\n

\n
    \n \n
\n
\n
\n );\n}\n","import React, {useContext} from \"react\";\nimport \"./WorkExperience.scss\";\nimport ExperienceCard from \"../../components/experienceCard/ExperienceCard\";\nimport {workExperiences} from \"../../portfolio\";\nimport {Fade} from \"react-reveal\";\nimport StyleContext from \"../../contexts/StyleContext\";\n\nexport default function WorkExperience() {\n const {isDark} = useContext(StyleContext);\n if (workExperiences.display) {\n return (\n
\n \n
\n
\n

Experiences

\n
\n {workExperiences.experience.map((card, i) => {\n return (\n \n );\n })}\n
\n
\n
\n
\n
\n );\n }\n return null;\n}\n","import React, {useState, useEffect, useContext, Suspense, lazy} from \"react\";\nimport \"./Project.scss\";\nimport Button from \"../../components/button/Button\";\nimport {openSource, socialMediaLinks} from \"../../portfolio\";\nimport StyleContext from \"../../contexts/StyleContext\";\nimport Loading from \"../../containers/loading/Loading\";\nexport default function Projects() {\n const GithubRepoCard = lazy(() =>\n import(\"../../components/githubRepoCard/GithubRepoCard\")\n );\n const FailedLoading = () => null;\n const renderLoader = () => ;\n const [repo, setrepo] = useState([]);\n // todo: remove useContex because is not supported\n const {isDark} = useContext(StyleContext);\n\n useEffect(() => {\n const getRepoData = () => {\n fetch(\"/profile.json\")\n .then(result => {\n if (result.ok) {\n return result.json();\n }\n throw result;\n })\n .then(response => {\n setrepoFunction(response.data.user.pinnedItems.edges);\n })\n .catch(function (error) {\n console.error(\n `${error} (because of this error, nothing is shown in place of Projects section. Also check if Projects section has been configured)`\n );\n setrepoFunction(\"Error\");\n });\n };\n getRepoData();\n }, []);\n\n function setrepoFunction(array) {\n setrepo(array);\n }\n if (\n !(typeof repo === \"string\" || repo instanceof String) &&\n openSource.display\n ) {\n return (\n \n
\n

Open Source Projects

\n
\n {repo.map((v, i) => {\n if (!v) {\n console.error(\n `Github Object for repository number : ${i} is undefined`\n );\n }\n return (\n \n );\n })}\n
\n \n
\n
\n );\n } else {\n return ;\n }\n}\n","import React, {useContext} from \"react\";\nimport \"./StartupProjects.scss\";\nimport {bigProjects} from \"../../portfolio\";\nimport {Fade} from \"react-reveal\";\nimport StyleContext from \"../../contexts/StyleContext\";\n\nexport default function StartupProject() {\n function openUrlInNewTab(url) {\n if (!url) {\n return;\n }\n var win = window.open(url, \"_blank\");\n win.focus();\n }\n\n const {isDark} = useContext(StyleContext);\n if (!bigProjects.display) {\n return null;\n }\n return (\n \n
\n
\n

{bigProjects.title}

\n \n {bigProjects.subtitle}\n

\n\n
\n {bigProjects.projects.map((project, i) => {\n return (\n \n {project.image ? (\n
\n \n
\n ) : null}\n
\n \n {project.projectName}\n \n \n {project.projectDesc}\n

\n {project.footerLink ? (\n
\n {project.footerLink.map((link, i) => {\n return (\n openUrlInNewTab(link.url)}\n >\n {link.name}\n \n );\n })}\n
\n ) : null}\n
\n
\n );\n })}\n
\n
\n \n
\n );\n}\n","import React from \"react\";\nimport \"./AchievementCard.scss\";\n\nexport default function AchievementCard({cardInfo, isDark}) {\n function openUrlInNewTab(url, name) {\n if (!url) {\n console.log(`URL for ${name} not found`);\n return;\n }\n var win = window.open(url, \"_blank\");\n win.focus();\n }\n\n return (\n
\n
\n \n
\n
\n
\n {cardInfo.title}\n
\n

\n {cardInfo.description}\n

\n
\n
\n {cardInfo.footer.map((v, i) => {\n return (\n openUrlInNewTab(v.url, v.name)}\n >\n {v.name}\n \n );\n })}\n
\n
\n );\n}\n","import React, {useContext} from \"react\";\nimport \"./Achievement.scss\";\nimport AchievementCard from \"../../components/achievementCard/AchievementCard\";\nimport {achievementSection} from \"../../portfolio\";\nimport {Fade} from \"react-reveal\";\nimport StyleContext from \"../../contexts/StyleContext\";\nexport default function Achievement() {\n const {isDark} = useContext(StyleContext);\n if (!achievementSection.display) {\n return null;\n }\n return (\n \n
\n
\n
\n \n {achievementSection.title}\n \n \n {achievementSection.subtitle}\n

\n
\n
\n {achievementSection.achievementsCards.map((card, i) => {\n return (\n \n );\n })}\n
\n
\n
\n
\n );\n}\n","import React from \"react\";\nimport \"./BlogCard.scss\";\n\nexport default function BlogCard({blog, isDark}) {\n function openUrlInNewTab(url, name) {\n if (!url) {\n console.log(`URL for ${name} not found`);\n return;\n }\n var win = window.open(url, \"_blank\");\n win.focus();\n }\n\n return (\n
openUrlInNewTab(blog.url, blog.title)}>\n
\n \n

\n {blog.title}\n

\n

\n {blog.description}\n

\n
\n
\n
\n \n
\n
\n );\n}\n","import React, {useState, useEffect, useContext} from \"react\";\nimport \"./Blog.scss\";\nimport BlogCard from \"../../components/blogCard/BlogCard\";\nimport {blogSection} from \"../../portfolio\";\nimport {Fade} from \"react-reveal\";\nimport StyleContext from \"../../contexts/StyleContext\";\nexport default function Blogs() {\n const {isDark} = useContext(StyleContext);\n const [mediumBlogs, setMediumBlogs] = useState([]);\n function setMediumBlogsFunction(array) {\n setMediumBlogs(array);\n }\n //Medium API returns blogs' content in HTML format. Below function extracts blogs' text content within paragraph tags\n function extractTextContent(html) {\n return typeof html === \"string\"\n ? html\n .split(\"p>\")\n .filter(el => !el.includes(\">\"))\n .map(el => el.replace(\" {\n if (blogSection.displayMediumBlogs === \"true\") {\n const getProfileData = () => {\n fetch(\"/blogs.json\")\n .then(result => {\n if (result.ok) {\n return result.json();\n }\n })\n .then(response => {\n setMediumBlogsFunction(response.items);\n })\n .catch(function (error) {\n console.error(\n `${error} (because of this error Blogs section could not be displayed. Blogs section has reverted to default)`\n );\n setMediumBlogsFunction(\"Error\");\n blogSection.displayMediumBlogs = \"false\";\n });\n };\n getProfileData();\n }\n }, []);\n if (!blogSection.display) {\n return null;\n }\n return (\n \n
\n
\n

{blogSection.title}

\n \n {blogSection.subtitle}\n

\n
\n
\n
\n {blogSection.displayMediumBlogs !== \"true\" ||\n mediumBlogs === \"Error\"\n ? blogSection.blogs.map((blog, i) => {\n return (\n \n );\n })\n : mediumBlogs.map((blog, i) => {\n return (\n \n );\n })}\n
\n
\n
\n
\n );\n}\n","import React, {useContext} from \"react\";\nimport \"./Footer.scss\";\nimport {Fade} from \"react-reveal\";\nimport emoji from \"react-easy-emoji\";\nimport StyleContext from \"../../contexts/StyleContext\";\n\nexport default function Footer() {\n const {isDark} = useContext(StyleContext);\n return (\n \n
\n

\n\n

\n
\n
\n );\n}\n","import React from \"react\";\nimport \"./TalkCard.scss\";\n\nexport default function TalkCard({talkDetails}) {\n return (\n
\n
\n \n
\n
{talkDetails.title}
\n

{talkDetails.subtitle}

\n\n
\n \n Slides\n \n {/* \n Event\n */}\n
\n
\n
\n \n );\n}\n","import React, {useContext} from \"react\";\nimport \"./Talks.scss\";\nimport TalkCard from \"../../components/talkCard/TalkCard\";\nimport {talkSection} from \"../../portfolio\";\nimport {Fade} from \"react-reveal\";\nimport StyleContext from \"../../contexts/StyleContext\";\n\nexport default function Talks() {\n const {isDark} = useContext(StyleContext);\n if (!talkSection.display) {\n return null;\n }\n return (\n \n
\n
\n

{talkSection.title}

\n \n {talkSection.subtitle}\n

\n {talkSection.talks.map((talk, i) => {\n return (\n \n );\n })}\n
\n
\n
\n );\n}\n","import React, {useContext} from \"react\";\nimport \"./Podcast.scss\";\nimport {podcastSection} from \"../../portfolio\";\nimport {Fade} from \"react-reveal\";\nimport StyleContext from \"../../contexts/StyleContext\";\n\nexport default function Podcast() {\n const {isDark} = useContext(StyleContext);\n\n if (!podcastSection)\n console.error(\"podcastSection object for Podcast section is missing\");\n\n if (!podcastSection.display) {\n return null;\n }\n return (\n \n
\n
\n

{podcastSection.title}

\n \n {podcastSection.subtitle}\n

\n
\n
\n {podcastSection.podcast.map((podcastLink, i) => {\n if (!podcastLink) {\n console.log(\n `Podcast link for ${podcastSection.title} is missing`\n );\n }\n return (\n
\n \n
\n );\n })}\n
\n
\n
\n );\n}\n","import React, {createRef, useContext} from \"react\";\nimport {Fade, Slide} from \"react-reveal\";\nimport \"./EducationCard.scss\";\nimport StyleContext from \"../../contexts/StyleContext\";\n\nexport default function EducationCard({school}) {\n const imgRef = createRef();\n\n const GetDescBullets = ({descBullets}) => {\n return descBullets\n ? descBullets.map((item, i) => (\n
  • \n {item}\n
  • \n ))\n : null;\n };\n const {isDark} = useContext(StyleContext);\n\n if (!school.logo)\n console.error(`Image of ${school.name} is missing in education section`);\n return (\n
    \n \n
    \n {school.logo && (\n
    \n \n
    \n )}\n
    \n
    {school.schoolName}
    \n\n
    \n \n {school.subHeader}\n \n \n {school.duration}\n

    \n

    {school.desc}

    \n
    \n
      \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n );\n}\n","import React from \"react\";\nimport \"./Education.scss\";\nimport EducationCard from \"../../components/educationCard/EducationCard\";\nimport {educationInfo} from \"../../portfolio\";\n\nexport default function Education() {\n if (educationInfo.display) {\n return (\n
    \n

    Education

    \n
    \n {educationInfo.schools.map((school, index) => (\n \n ))}\n
    \n
    \n );\n }\n return null;\n}\n","import React from \"react\";\nimport \"./Top.scss\";\n\nexport default function Top() {\n function TopEvent() {\n document.body.scrollTop = 0; // For Safari\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\n }\n // When the user scrolls down 20px from the top of the document, show the button\n function scrollFunction() {\n if (\n document.body.scrollTop > 20 ||\n document.documentElement.scrollTop > 20\n ) {\n document.getElementById(\"topButton\").style.visibility = \"visible\";\n } else {\n document.getElementById(\"topButton\").style.visibility = \"hidden\";\n }\n }\n window.onscroll = function () {\n scrollFunction();\n };\n window.onload = function () {\n scrollFunction();\n }; //To make sure that this button is not visible at starting.\n // When the user clicks on the button, scroll to the top of the document\n return (\n \n );\n}\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","const twitterWidgetJs = 'https://platform.twitter.com/widgets.js'\nexport default twitterWidgetJs\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport isRequiredIf from 'react-proptype-conditional-require'\nimport ExecutionEnvironment from 'exenv'\nimport twitterWidgetJs from './twitter-widget-url'\n\nexport default class TwitterTimelineEmbed extends Component {\n static propTypes = {\n /**\n * This can be either of profile, likes, list, collection, URL, widget\n */\n sourceType: PropTypes.oneOf(['profile', 'likes', 'list', 'collection', 'url', 'widget']).isRequired,\n /**\n * username of twitter handle as String\n */\n screenName: isRequiredIf(PropTypes.string, props => !props.hasOwnProperty('userId') && (props.sourceType === 'profile' || props.sourceType === 'likes')),\n /**\n * UserId of twitter handle as number\n */\n userId: isRequiredIf(PropTypes.number, props => !props.hasOwnProperty('screenName') && (props.sourceType === 'profile' || props.sourceType === 'likes')),\n /**\n * To show list, used along with slug\n */\n ownerScreenName: isRequiredIf(PropTypes.string, props => props.sourceType === 'list' && !props.hasOwnProperty('id')),\n /**\n * To show list, used along with ownerScreenName\n */\n slug: isRequiredIf(PropTypes.string, props => props.sourceType === 'list' && !props.hasOwnProperty('id')),\n /**\n * To show list, unique list id\n * Also used with collections, in that case its valid collection id\n */\n id: isRequiredIf(PropTypes.oneOfType([PropTypes.number, PropTypes.string]), props => (props.sourceType === 'list' && !props.hasOwnProperty('ownerScreenName') && !props.hasOwnProperty('slug')) || props.sourceType === 'collection'),\n /**\n * To show twitter content with url.\n * Supported content includes profiles, likes, lists, and collections.\n */\n url: isRequiredIf(PropTypes.string, props => props.sourceType === 'url'),\n /**\n * To show custom widget\n */\n widgetId: isRequiredIf(PropTypes.string, props => props.sourceType === 'widget'),\n /**\n * Additional options to pass to twitter widget plugin\n */\n options: PropTypes.object,\n /**\n * Automatically fit into parent container height\n */\n autoHeight: PropTypes.bool,\n /**\n * With dark or light theme\n */\n theme: PropTypes.oneOf(['dark', 'light']),\n /**\n * With custom link colors. Note: Only Hex colors are supported.\n */\n linkColor: PropTypes.string,\n /**\n * With custom border colors. Note: Only Hex colors are supported.\n */\n borderColor: PropTypes.string,\n /**\n * Hide the header from timeline\n */\n noHeader: PropTypes.bool,\n /**\n * Hide the footer from timeline\n */\n noFooter: PropTypes.bool,\n /**\n * Hide the border from timeline\n */\n noBorders: PropTypes.bool,\n /**\n * Hide the scrollbars\n */\n noScrollbar: PropTypes.bool,\n /**\n * Enable Transparancy\n */\n transparent: PropTypes.bool,\n /**\n * Custom language code. Supported codes here: https://developer.twitter.com/en/docs/twitter-for-websites/twitter-for-websites-supported-languages/overview.html\n */\n lang: PropTypes.string,\n\n /**\n * Placeholder while tweet is loading\n */\n placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n /**\n * Function to execute after load, return html element\n */\n onLoad: PropTypes.func\n };\n\n constructor(props) {\n super(props)\n this.state = {\n isLoading: true\n }\n }\n\n buildChromeOptions(options) {\n options.chrome = ''\n if (this.props.noHeader) { options.chrome = options.chrome + ' noheader' }\n\n if (this.props.noFooter) { options.chrome = options.chrome + ' nofooter' }\n\n if (this.props.noBorders) { options.chrome = options.chrome + ' noborders' }\n\n if (this.props.noScrollbar) { options.chrome = options.chrome + ' noscrollbar' }\n\n if (this.props.transparent) { options.chrome = options.chrome + ' transparent' }\n\n return options\n }\n\n buildOptions() {\n let options = Object.assign({}, this.props.options)\n if (this.props.autoHeight) { options.height = this.refs.embedContainer.parentNode.offsetHeight }\n\n options = Object.assign({}, options, {\n theme: this.props.theme,\n linkColor: this.props.linkColor,\n borderColor: this.props.borderColor,\n lang: this.props.lang\n })\n\n return options\n }\n\n renderWidget(options) {\n const { onLoad } = this.props\n if (!this.isMountCanceled) {\n window.twttr.widgets.createTimeline(\n {\n sourceType: this.props.sourceType,\n screenName: this.props.screenName,\n userId: this.props.userId,\n ownerScreenName: this.props.ownerScreenName,\n slug: this.props.slug,\n id: this.props.id || this.props.widgetId,\n url: this.props.url\n },\n this.refs.embedContainer,\n options\n ).then((element) => {\n this.setState({\n isLoading: false\n })\n if (onLoad) {\n onLoad(element)\n }\n })\n }\n }\n\n componentDidMount() {\n if (ExecutionEnvironment.canUseDOM) {\n let script = require('scriptjs')\n script(twitterWidgetJs, 'twitter-embed', () => {\n if (!window.twttr) {\n console.error('Failure to load window.twttr in TwitterTimelineEmbed, aborting load.')\n return\n }\n\n let options = this.buildOptions()\n /** Append chrome options */\n options = this.buildChromeOptions(options)\n this.renderWidget(options)\n })\n }\n }\n\n componentWillUnmount() {\n this.isMountCanceled = true\n }\n\n render() {\n const { isLoading } = this.state\n const { placeholder } = this.props\n return (\n \n {isLoading && placeholder}\n
    \n \n )\n }\n}\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport ExecutionEnvironment from 'exenv'\nimport twitterWidgetJs from './twitter-widget-url'\n\nexport default class TwitterShareButton extends Component {\n static propTypes = {\n /**\n * Url for sharing\n */\n url: PropTypes.string.isRequired,\n /**\n * Additional options for overriding config. Details at : https://dev.twitter.com/web/tweet-button/parameters\n */\n options: PropTypes.object,\n\n /**\n * Placeholder while tweet is loading\n */\n placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n /**\n * Function to execute after load, return html element\n */\n onLoad: PropTypes.func\n };\n\n constructor(props) {\n super(props)\n this.state = {\n isLoading: true\n }\n }\n\n componentDidMount() {\n const { onLoad } = this.props\n if (ExecutionEnvironment.canUseDOM) {\n let script = require('scriptjs')\n script(twitterWidgetJs, 'twitter-embed', () => {\n if (!window.twttr) {\n console.error('Failure to load window.twttr in TwitterShareButton, aborting load.')\n return\n }\n\n if (!this.isMountCanceled) {\n window.twttr.widgets.createShareButton(\n this.props.url,\n this.refs.embedContainer,\n this.props.options\n ).then((element) => {\n this.setState({\n isLoading: false\n })\n if (onLoad) {\n onLoad(element)\n }\n })\n }\n })\n }\n }\n\n componentWillUnmount() {\n this.isMountCanceled = true\n }\n\n render() {\n const { isLoading } = this.state\n const { placeholder } = this.props\n return (\n \n {isLoading && placeholder}\n
    \n \n )\n }\n}\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport ExecutionEnvironment from 'exenv'\nimport twitterWidgetJs from './twitter-widget-url'\n\nexport default class TwitterFollowButton extends Component {\n static propTypes = {\n /**\n * Username of twitter user which will be followed on click\n */\n screenName: PropTypes.string.isRequired,\n /**\n * Additional options to be added to the button\n */\n options: PropTypes.object,\n /**\n * Placeholder while tweet is loading\n */\n placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n /**\n * Function to execute after load, return html element\n */\n onLoad: PropTypes.func\n };\n\n constructor(props) {\n super(props)\n this.state = {\n isLoading: true\n }\n }\n\n componentDidMount() {\n const { onLoad } = this.props\n if (ExecutionEnvironment.canUseDOM) {\n let script = require('scriptjs')\n script(twitterWidgetJs, 'twitter-embed', () => {\n if (!window.twttr) {\n console.error('Failure to load window.twttr in TwitterFollowButton, aborting load.')\n return\n }\n\n if (!this.isMountCanceled) {\n window.twttr.widgets.createFollowButton(\n this.props.screenName,\n this.refs.embedContainer,\n this.props.options\n ).then((element) => {\n this.setState({\n isLoading: false\n })\n if (onLoad) {\n onLoad(element)\n }\n })\n }\n })\n }\n }\n\n componentWillUnmount() {\n this.isMountCanceled = true\n }\n\n render() {\n const { isLoading } = this.state\n const { placeholder } = this.props\n return (\n \n {isLoading && placeholder}\n
    \n \n )\n }\n}\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport ExecutionEnvironment from 'exenv'\nimport twitterWidgetJs from './twitter-widget-url'\n\nexport default class TwitterHashtagButton extends Component {\n static propTypes = {\n /**\n * Tag name for hashtag button\n */\n tag: PropTypes.string.isRequired,\n /**\n * Additional options to be added to the button\n */\n options: PropTypes.object,\n /**\n * Placeholder while tweet is loading\n */\n placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n /**\n * Function to execute after load, return html element\n */\n onLoad: PropTypes.func\n };\n\n constructor(props) {\n super(props)\n this.state = {\n isLoading: true\n }\n }\n\n componentDidMount() {\n const { onLoad } = this.props\n if (ExecutionEnvironment.canUseDOM) {\n let script = require('scriptjs')\n script(twitterWidgetJs, 'twitter-embed', () => {\n if (!window.twttr) {\n console.error('Failure to load window.twttr in TwitterHashtagButton, aborting load.')\n return\n }\n\n if (!this.isMountCanceled) {\n window.twttr.widgets.createHashtagButton(\n this.props.tag,\n this.refs.embedContainer,\n this.props.options\n ).then((element) => {\n this.setState({\n isLoading: false\n })\n if (onLoad) {\n onLoad(element)\n }\n })\n }\n })\n }\n }\n\n componentWillUnmount() {\n this.isMountCanceled = true\n }\n\n render() {\n const { isLoading } = this.state\n const { placeholder } = this.props\n return (\n \n {isLoading && placeholder}\n
    \n \n )\n }\n}\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport ExecutionEnvironment from 'exenv'\nimport twitterWidgetJs from './twitter-widget-url'\n\nexport default class TwitterMentionButton extends Component {\n static propTypes = {\n /**\n * Username to which you will need to tweet\n */\n screenName: PropTypes.string.isRequired,\n /**\n * Additional options for overriding config.\n */\n options: PropTypes.object,\n /**\n * Placeholder while tweet is loading\n */\n placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n /**\n * Function to execute after load, return html element\n */\n onLoad: PropTypes.func\n };\n\n constructor(props) {\n super(props)\n this.state = {\n isLoading: true\n }\n }\n\n componentDidMount() {\n const { onLoad } = this.props\n if (ExecutionEnvironment.canUseDOM) {\n let script = require('scriptjs')\n script(twitterWidgetJs, 'twitter-embed', () => {\n if (!window.twttr) {\n console.error('Failure to load window.twttr in TwitterMentionButton, aborting load.')\n return\n }\n\n if (!this.isMountCanceled) {\n window.twttr.widgets.createMentionButton(\n this.props.screenName,\n this.refs.embedContainer,\n this.props.options\n ).then((element) => {\n this.setState({\n isLoading: false\n })\n if (onLoad) {\n onLoad(element)\n }\n })\n }\n })\n }\n }\n\n componentWillUnmount() {\n this.isMountCanceled = true\n }\n\n render() {\n const { isLoading } = this.state\n const { placeholder } = this.props\n return (\n \n {isLoading && placeholder}\n
    \n \n )\n }\n}\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport ExecutionEnvironment from 'exenv'\nimport twitterWidgetJs from './twitter-widget-url'\n\nexport default class TwitterTweetEmbed extends Component {\n static propTypes = {\n /**\n * Tweet id that needs to be shown\n */\n tweetId: PropTypes.string.isRequired,\n /**\n * Additional options to pass to twitter widget plugin\n */\n options: PropTypes.object,\n /**\n * Placeholder while tweet is loading\n */\n placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n /**\n * Function to execute after load, return html element\n */\n onLoad: PropTypes.func\n };\n\n constructor(props) {\n super(props)\n this.state = {\n isLoading: true\n }\n }\n\n renderWidget() {\n const { onLoad } = this.props\n if (!window.twttr) {\n console.error('Failure to load window.twttr in TwitterTweetEmbed, aborting load.')\n return\n }\n if (!this.isMountCanceled) {\n window.twttr.widgets.createTweet(\n this.props.tweetId,\n this.refs.embedContainer,\n this.props.options\n ).then((element) => {\n this.setState({\n isLoading: false\n })\n if (onLoad) {\n onLoad(element)\n }\n })\n }\n }\n\n componentDidMount() {\n if (ExecutionEnvironment.canUseDOM) {\n let script = require('scriptjs')\n script(twitterWidgetJs, 'twitter-embed', () => {\n this.renderWidget()\n })\n }\n }\n\n componentWillUnmount() {\n this.isMountCanceled = true\n }\n\n render() {\n const { isLoading } = this.state\n const { placeholder } = this.props\n return (\n \n {isLoading && placeholder}\n
    \n \n )\n }\n}\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport ExecutionEnvironment from 'exenv'\nimport twitterWidgetJs from './twitter-widget-url'\n\nexport default class TwitterMomentShare extends Component {\n static propTypes = {\n /**\n * id of Twitter moment to show\n */\n momentId: PropTypes.string.isRequired,\n /**\n * Additional options for overriding config.\n */\n options: PropTypes.object,\n /**\n * Placeholder while tweet is loading\n */\n placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n /**\n * Function to execute after load, return html element\n */\n onLoad: PropTypes.func\n };\n\n constructor(props) {\n super(props)\n this.state = {\n isLoading: true\n }\n }\n\n componentDidMount() {\n const { onLoad } = this.props\n if (ExecutionEnvironment.canUseDOM) {\n let script = require('scriptjs')\n script(twitterWidgetJs, 'twitter-embed', () => {\n if (!window.twttr) {\n console.error('Failure to load window.twttr in TwitterMomentShare, aborting load.')\n return\n }\n\n if (!this.isMountCanceled) {\n window.twttr.widgets.createMoment(\n this.props.momentId,\n this.refs.shareMoment,\n this.props.options\n ).then((element) => {\n this.setState({\n isLoading: false\n })\n if (onLoad) {\n onLoad(element)\n }\n })\n }\n })\n }\n }\n\n componentWillUnmount() {\n this.isMountCanceled = true\n }\n\n render() {\n const { isLoading } = this.state\n const { placeholder } = this.props\n return (\n \n {isLoading && placeholder}\n
    \n \n )\n }\n}\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport ExecutionEnvironment from 'exenv'\nimport twitterWidgetJs from './twitter-widget-url'\n\nexport default class TwitterDMButton extends Component {\n static propTypes = {\n /**\n * Twitter user id for DM button\n */\n id: PropTypes.number.isRequired,\n /**\n * Additional options to be added to the button\n */\n options: PropTypes.object,\n /**\n * Placeholder while tweet is loading\n */\n placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n /**\n * Function to execute after load, return html element\n */\n onLoad: PropTypes.func\n };\n\n constructor(props) {\n super(props)\n this.state = {\n isLoading: true\n }\n }\n\n componentDidMount() {\n const { onLoad } = this.props\n if (ExecutionEnvironment.canUseDOM) {\n let script = require('scriptjs')\n script(twitterWidgetJs, 'twitter-embed', () => {\n if (!window.twttr) {\n console.error('Failure to load window.twttr in TwitterDMButton, aborting load.')\n return\n }\n\n if (!this.isMountCanceled) {\n window.twttr.widgets.createDMButton(\n this.props.id,\n this.refs.embedContainer,\n this.props.options\n ).then((element) => {\n this.setState({\n isLoading: false\n })\n if (onLoad) {\n onLoad(element)\n }\n })\n }\n })\n }\n }\n\n componentWillUnmount() {\n this.isMountCanceled = true\n }\n\n render() {\n const { isLoading } = this.state\n const { placeholder } = this.props\n return (\n \n {isLoading && placeholder}\n
    \n \n )\n }\n}\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport ExecutionEnvironment from 'exenv'\nimport twitterWidgetJs from './twitter-widget-url'\n\nexport default class TwitterVideoEmbed extends Component {\n static propTypes = {\n /**\n * Id of video tweet.\n */\n id: PropTypes.string.isRequired,\n /**\n * Placeholder while tweet is loading\n */\n placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n /**\n * Function to execute after load, return html element\n */\n onLoad: PropTypes.func\n };\n\n constructor(props) {\n super(props)\n this.state = {\n isLoading: true\n }\n }\n\n componentDidMount() {\n const { onLoad } = this.props\n if (ExecutionEnvironment.canUseDOM) {\n let script = require('scriptjs')\n script(twitterWidgetJs, 'twitter-embed', () => {\n if (!window.twttr) {\n console.error('Failure to load window.twttr in TwitterVideoEmbed, aborting load.')\n return\n }\n if (!this.isMountCanceled) {\n window.twttr.widgets.createVideo(\n this.props.id,\n this.refs.embedContainer\n ).then((element) => {\n this.setState({\n isLoading: false\n })\n if (onLoad) {\n onLoad(element)\n }\n })\n }\n })\n }\n }\n\n componentWillUnmount() {\n this.isMountCanceled = true\n }\n\n render() {\n const { isLoading } = this.state\n const { placeholder } = this.props\n return (\n \n {isLoading && placeholder}\n
    \n \n )\n }\n}\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport ExecutionEnvironment from 'exenv'\nimport twitterWidgetJs from './twitter-widget-url'\n\nexport default class TwitterOnAirButton extends Component {\n static propTypes = {\n /**\n * Username for which you require periscope on air button\n */\n username: PropTypes.string.isRequired,\n /**\n * Additional options for overriding config.\n */\n options: PropTypes.object,\n /**\n * Placeholder while tweet is loading\n */\n placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n /**\n * Function to execute after load, return html element\n */\n onLoad: PropTypes.func\n };\n\n constructor(props) {\n super(props)\n this.state = {\n isLoading: true\n }\n }\n\n componentDidMount() {\n const { onLoad } = this.props\n if (ExecutionEnvironment.canUseDOM) {\n let script = require('scriptjs')\n script(twitterWidgetJs, 'twitter-embed', () => {\n if (!window.twttr) {\n console.error('Failure to load window.twttr in TwitterOnAirButton, aborting load.')\n return\n }\n\n if (!this.isMountCanceled) {\n window.twttr.widgets.createPeriscopeOnAirButton(\n this.props.username,\n this.refs.embedContainer,\n this.props.options\n ).then((element) => {\n this.setState({\n isLoading: false\n })\n if (onLoad) {\n onLoad(element)\n }\n })\n }\n })\n }\n }\n\n componentWillUnmount() {\n this.isMountCanceled = true\n }\n\n render() {\n const { isLoading } = this.state\n const { placeholder } = this.props\n return (\n \n {isLoading && placeholder}\n
    \n \n )\n }\n}\n","import React, {Suspense, useContext} from \"react\";\nimport \"./twitter.scss\";\nimport Loading from \"../loading/Loading\";\nimport {TwitterTimelineEmbed} from \"react-twitter-embed\";\nimport {twitterDetails} from \"../../portfolio\";\nimport StyleContext from \"../../contexts/StyleContext\";\n\nconst renderLoader = () => ;\nconst cantDisplayError =\n \"

    Can't load? Check privacy protection settings

    \";\n\nfunction timeOut() {\n setTimeout(function () {\n if (!document.getElementById(\"twitter\").innerHTML.includes(\"iframe\")) {\n document.getElementById(\"twitter\").innerHTML = cantDisplayError;\n }\n }, 10000);\n}\nvar widthScreen = window.screen.width;\n\nexport default function Twitter() {\n const {isDark} = useContext(StyleContext);\n\n if (!twitterDetails.display) {\n return null;\n }\n if (!twitterDetails.userName) {\n console.error(\"Twitter username for twitter section is missing\");\n }\n if (twitterDetails.userName) {\n return (\n \n
    \n
    \n \n
    \n
    \n
    \n );\n } else {\n return null;\n }\n}\n","import React, {useContext} from \"react\";\nimport \"./Contact.scss\";\nimport SocialMedia from \"../../components/socialMedia/SocialMedia\";\nimport {illustration, contactInfo} from \"../../portfolio\";\nimport {Fade} from \"react-reveal\";\nimport email from \"../../assets/lottie/email\";\nimport DisplayLottie from \"../../components/displayLottie/DisplayLottie\";\nimport StyleContext from \"../../contexts/StyleContext\";\nimport getAssetUrl from \"../../utils\";\nexport default function Contact() {\n const {isDark} = useContext(StyleContext);\n return (\n \n
    \n
    \n
    \n

    {contactInfo.title}

    \n \n {contactInfo.subtitle}\n

    \n \n {contactInfo.number && (\n <>\n \n {contactInfo.number}\n \n
    \n
    \n \n )}\n \n {contactInfo.email_address}\n \n
    \n
    \n \n
    \n
    \n
    \n {illustration.animated ? (\n \n ) : (\n \n )}\n
    \n
    \n
    \n \n );\n}\n","import React, {useState, useEffect, lazy, Suspense} from \"react\";\nimport {openSource} from \"../../portfolio\";\nimport Contact from \"../contact/Contact\";\nimport Loading from \"../loading/Loading\";\n\nconst renderLoader = () => ;\nconst GithubProfileCard = lazy(() =>\n import(\"../../components/githubProfileCard/GithubProfileCard\")\n);\nexport default function Profile() {\n const [prof, setrepo] = useState([]);\n function setProfileFunction(array) {\n setrepo(array);\n }\n\n useEffect(() => {\n if (openSource.showGithubProfile === \"true\") {\n const getProfileData = () => {\n fetch(\"/profile.json\")\n .then(result => {\n if (result.ok) {\n return result.json();\n }\n })\n .then(response => {\n setProfileFunction(response.data.user);\n })\n .catch(function (error) {\n console.error(\n `${error} (because of this error GitHub contact section could not be displayed. Contact section has reverted to default)`\n );\n setProfileFunction(\"Error\");\n openSource.showGithubProfile = \"false\";\n });\n };\n getProfileData();\n }\n }, []);\n if (\n openSource.display &&\n openSource.showGithubProfile === \"true\" &&\n !(typeof prof === \"string\" || prof instanceof String)\n ) {\n return (\n \n \n \n );\n } else {\n return ;\n }\n}\n","import React, {useContext} from \"react\";\nimport \"./SplashScreen.css\";\nimport DisplayLottie from \"../../components/displayLottie/DisplayLottie\";\nimport {greeting, splashScreen} from \"../../portfolio\";\nimport StyleContext from \"../../contexts/StyleContext\";\n\nexport default function SplashScreen() {\n const {isDark} = useContext(StyleContext);\n return (\n
    \n
    \n \n
    \n
    \n <\n {greeting.username}\n />\n
    \n
    \n );\n}\n","import {useState} from \"react\";\n\nexport const useLocalStorage = (key, initialValue) => {\n // State to store our value\n // Pass initial state function to useState so logic is only executed once\n const [storedValue, setStoredValue] = useState(() => {\n try {\n // Get from local storage by key\n const item = window.localStorage.getItem(key);\n // Parse stored json or if none return initialValue\n return item ? JSON.parse(item) : initialValue;\n } catch (error) {\n // If error also return initialValue\n console.log(error);\n return initialValue;\n }\n });\n\n // Return a wrapped version of useState's setter function that ...\n // ... persists the new value to localStorage.\n const setValue = value => {\n try {\n // Allow value to be a function so we have same API as useState\n const valueToStore =\n value instanceof Function ? value(storedValue) : value;\n // Save state\n setStoredValue(valueToStore);\n // Save to local storage\n window.localStorage.setItem(key, JSON.stringify(valueToStore));\n } catch (error) {\n // A more advanced implementation would handle the error case\n console.log(error);\n }\n };\n\n return [storedValue, setValue];\n};\n","import React, {useContext, useState} from \"react\";\nimport \"./Chat.scss\";\nimport {chatSection} from \"../../portfolio\";\nimport StyleContext from \"../../contexts/StyleContext\";\n\nconst Chat = () => {\n const {isDark} = useContext(StyleContext);\n const [isExpanded, setIsExpanded] = useState(false);\n\n if (!chatSection || !chatSection.display) {\n return null;\n }\n\n return (\n
    \n {/* 聊天按钮 */}\n \n\n {/* 聊天窗口 */}\n
    \n
    \n

    {chatSection.title}

    \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default Chat; ","import React, {useEffect, useState} from \"react\";\nimport Header from \"../components/header/Header\";\nimport Greeting from \"./greeting/Greeting\";\nimport Skills from \"./skills/Skills\";\nimport StackProgress from \"./skillProgress/skillProgress\";\nimport WorkExperience from \"./workExperience/WorkExperience\";\nimport Projects from \"./projects/Projects\";\nimport StartupProject from \"./StartupProjects/StartupProject\";\nimport Achievement from \"./achievement/Achievement\";\nimport Blogs from \"./blogs/Blogs\";\nimport Footer from \"../components/footer/Footer\";\nimport Talks from \"./talks/Talks\";\nimport Podcast from \"./podcast/Podcast\";\nimport Education from \"./education/Education\";\nimport ScrollToTopButton from \"./topbutton/Top\";\nimport Twitter from \"./twitter-embed/twitter\";\nimport Profile from \"./profile/Profile\";\nimport SplashScreen from \"./splashScreen/SplashScreen\";\nimport {splashScreen} from \"../portfolio\";\nimport {StyleProvider} from \"../contexts/StyleContext\";\nimport {useLocalStorage} from \"../hooks/useLocalStorage\";\nimport \"./Main.scss\";\nimport Chat from \"./chat/Chat\";\n\nconst Main = () => {\n const darkPref = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const [isDark, setIsDark] = useLocalStorage(\"isDark\", darkPref.matches);\n const [isShowingSplashAnimation, setIsShowingSplashAnimation] =\n useState(true);\n\n useEffect(() => {\n if (splashScreen.enabled) {\n const splashTimer = setTimeout(\n () => setIsShowingSplashAnimation(false),\n splashScreen.duration\n );\n return () => {\n clearTimeout(splashTimer);\n };\n }\n }, []);\n\n const changeTheme = () => {\n setIsDark(!isDark);\n };\n\n return (\n
    \n \n {isShowingSplashAnimation && splashScreen.enabled ? (\n \n ) : (\n <>\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n )}\n \n
    \n );\n};\n\nexport default Main;\n","import React from \"react\";\nimport \"./App.scss\";\nimport Main from \"./containers/Main\";\n\nfunction App() {\n return (\n
    \n
    \n
    \n );\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport \"./index.css\";\nimport App from \"./App\";\nimport * as serviceWorker from \"./serviceWorker\";\n\nReactDOM.render(, document.getElementById(\"root\"));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"names":["socialMedia","socialMediaLinks","display","_jsxs","className","children","github","href","target","rel","_jsx","linkedin","gmail","gitlab","facebook","instagram","twitter","medium","stackoverflow","kaggle","splashScreen","enabled","animation","splashAnimation","duration","illustration","animated","greeting","username","title","chatWithResumeLink","chatWithResumeText","subTitle","emoji","currentProject","text","projectName","description","projectLink","plannedProjects","smallProjects","subtitle","defaultOpen","projects","displayGreeting","skillsSection","skills","softwareSkills","skillName","fontAwesomeClassname","achievementSection","achievementsCards","image","getAssetUrl","imageAlt","footerLink","name","url","educationInfo","schools","schoolName","logo","subHeader","desc","techStack","viewSkillBars","experience","Stack","progressPercentage","displayCodersrank","workExperiences","role","company","companylogo","date","descBullets","bigProjects","projectDesc","blogSection","displayMediumBlogs","blogs","openSource","showGithubProfile","talkSection","talks","slides_url","podcastSection","podcast","resumeSection","contactInfo","email_address","twitterDetails","userName","isHireable","chatSection","chatUrl","buttonText","formatFileSizeDisplay","value","parseFloat","toFixed","assetPath","console","log","canUseDOM","window","document","createElement","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","define","useLottie","props","style","animationData","loop","autoplay","initialSegment","onComplete","onLoopComplete","onEnterFrame","onSegmentStart","onConfigReady","onDataReady","onDataFailed","onLoadedImages","onDOMLoaded","onDestroy","lottieRef","renderer","assetsPath","rendererSettings","rest","_objectWithoutProperties","_excluded$1","_useState2","_slicedToArray","React","useState","animationLoaded","setAnimationLoaded","animationInstanceRef","useRef","animationContainer","play","_a","current","stop","pause","setSpeed","speed","goToAndPlay","isFrame","goToAndStop","setDirection","direction","playSegments","segments","forceFlag","setSubframe","useSubFrames","getDuration","inFrames","destroy","undefined","loadAnimation","forcedConfigs","arguments","length","config","_objectSpread2","container","lottie__default","useEffect","onUnmount","Array","isArray","currentRawFrame","setSegment","resetSegments","listeners","handler","filter","listener","deregisterList","map","removeEventListener","forEach","deregister","View","React__default","ref","animationContainerRef","animationItem","getContainerVisibility","_container$getBoundin","getBoundingClientRect","top","height","innerHeight","getContainerCursorPosition","cursorX","cursorY","_container$getBoundin2","x","left","width","y","useInitInteractivity","_ref","wrapperRef","mode","actions","wrapper","scrollModeHandler","assignedSegment","scrollHandler","currentPercent","action","find","_ref2","visibility","type","frames","frameToGo","Math","ceil","firstFrame","isPaused","cursorModeHandler","handleCursor","_x","_y","pos","_ref3","position","Number","isNaN","xPercent","yPercent","mouseMoveHandler","ev","clientX","clientY","mouseOutHandler","useLottieInteractivity","_ref4","lottieObj","Lottie","_b","_c","interactivity","lottieProps","_excluded","_useLottie","factory","navigator","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","sources","destination","i","sourcePrototype","len","attr","prototype","Object","hasOwnProperty","call","getDescriptor","object","prop","getOwnPropertyDescriptor","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","this","audios","_volume","_isMuted","addAudio","audio","push","resume","setRate","rateValue","createAudio","Howl","src","isPlaying","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","arr","Uint8ClampedArray","Float32Array","Int16Array","createSizedArray","apply","_typeof$6","obj","Symbol","iterator","constructor","subframeEnabled","expressionsPlugin","expressionsInterfaces","idPrefix$1","isSafari","test","userAgent","_shouldRoundValues","bmPow","pow","bmSqrt","sqrt","bmFloor","floor","bmMax","max","bmMin","min","BMMath","ProjectInterface$1","propertyNames","random","abs","val","absArr","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","bmRnd","round","styleDiv","element","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","h","s","v","r","g","b","f","p","q","t","RGBtoHSV","d","addSaturationToRGB","color","offset","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","toString","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setExpressionInterfaces","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","createElementNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","onmessage","postMessage","path","data","_workerSelf","setupWorker","fn","Blob","blob","URL","createObjectURL","createWorker","e","completeLayers","layers","comps","layerData","j","jLen","k","kLen","completed","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","completeText","id","comp","findComp","__used","JSON","parse","stringify","ks","it","o","checkVersion","minimum","animVersionString","animVersion","split","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","assets","checkChars","chars","charData","ip","op","st","sr","a","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","c","checkShapes","completeClosingShapes","closed","cl","moduleOb","__complete","completeChars","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","indexOf","response","responseText","load","fullPath","callback","errorCallback","XMLHttpRequest","err","onreadystatechange","readyState","status","open","join","error","send","completeData","payload","event","process","onError","createProcess","processId","location","origin","pathname","loadData","completeAnimation","anim","ImagePreloader","proxyImage","canvas","ctx","getContext","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","originalPath","imagePath","u","testImageLoaded","img","intervalId","setInterval","getBBox","_imageLoaded","clearInterval","bind","createFootageData","ob","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","cb","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","getAsset","createImgData","crossOrigin","createImageData","setAttributeNS","_elementHelper","append","appendChild","setCacheType","elementHelper","BaseEvent","triggerEvent","eventName","args","_cbs","callbacks","splice","markerParser","parsePayloadLines","line","lines","keys","keysCount","trim","Error","_markers","markers","_marker","markerData","time","tm","dr","cm","_","__","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","key","getRenderer","getRegisteredRenderer","_typeof$4","AnimationItem","isLoaded","frameRate","frameMult","playSpeed","playDirection","playCount","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","params","animType","RendererClass","globalData","defs","setProjectInterface","parseInt","autoloadSegments","setupAnimation","lastIndexOf","substr","fileName","trigger","setData","wrapperAttributes","attributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segment","shift","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","setTimeout","rendererType","initItems","gotoFrame","resize","_width","_height","updateContainerSize","renderFrame","resetFrame","triggerRenderFrameError","togglePause","setCurrentRawFrameValue","getMarkerData","markerName","marker","numValue","frameModifier","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","init","end","pendingFrame","setLoop","isLooping","getPath","getAssetData","hide","show","updateDocumentData","index","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","animItem","subtractPlayingCount","registerAnimation","elem","addPlayingCount","activate","nowTime","elapsedTime","requestAnimationFrame","first","searchAnimations","standalone","animElements","concat","slice","getElementsByClassName","lenAnims","setAttribute","body","getElementsByTagName","innerText","div","freeze","unfreeze","getRegisteredAnimations","animations","BezierFactory","str","replace","beziers","bezEasing","BezierEasing","kSplineTableSize","kSampleStepSize","float32ArraySupported","A","aA1","aA2","B","C","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","get","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","lastSample","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","pooling","poolFactory","initialLength","_create","_release","_length","_maxLength","pool","newElement","release","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","point","lastPoint","lengthData","BezierData","segmentLength","PointData","partial","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","bez","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","lastIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","to","ti","ind","__fnct","getBezierEasing","n","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quaternionToEuler","slerp","createQuaternion","omega","cosom","sinom","scale0","scale1","out","ax","ay","az","aw","bx","by","bz","bw","acos","sin","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","values","c1","cos","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","getValue","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","PropertyFactory","getProp","sid","slotManager","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","clone","shape","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","paths","localShapeCollection","shape1","shape2","shapesEqual","ShapeProperty","reset","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","p1","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","sy","ir","is","convertToPath","convertStarToPath","convertPolygonToPath","or","os","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","Matrix","_cos","_sin","_tan","tan","_rnd","rotate","mCos","mSin","_t","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","l","m","translate","tx","tz","transform","a2","b2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_identityCalculated","a1","b1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","multiply","matrix","matrixProps","isIdentity","_identity","equals","matr","cloneFromProps","applyToPoint","z","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","lottie","setLocation","setSubframeRendering","setPrefix","prefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","decodeURIComponent","useWebWorker","setIDPrefix","__getFactory","version","scripts","myScript","exports","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","_s","totalShapeLength","edges","newShapesData","addShapes","lastShape","pop","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","amount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","px","py","pz","rx","ry","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","floatEqual","floatZero","lerp","lerpPoint","quadRoots","singleRoot","delta","polynomialCoefficients","p3","singlePoint","PolynomialBezier","linearize","pointEqual","coeffx","coeffy","extrema","intersectData","t2","box","boundingBox","cx","cy","splitData","boxIntersect","intersectsImpl","depth","tolerance","intersections","maxRecursion","d1s","d2s","crossProduct","lineIntersection","start1","end1","start2","end2","v3","v4","polarOffset","pointDistance","hypot","ZigZagModifier","setPoint","outputBezier","amplitude","outAmplitude","inAmplitude","angO","angI","getPerpendicularVector","vector","rot","getProjectingAngle","cur","prevIndex","nextIndex","pVector","zigZagCorner","frequency","pointType","prevPoint","nextPoint","prevDist","nextDist","zigZagSegment","dist","normalAngle","linearOffset","offsetSegment","p1a","p1b","p2b","p2a","joinLines","seg1","seg2","lineJoin","miterLimit","angleOut","tangentAngle","angleIn","center","radius","intersection","getIntersection","intersect","pruneSegmentIntersection","outa","outb","pruneIntersections","offsetSegmentSplit","right","mid","flex","inflectionPoints","OffsetPathModifier","getFontProperties","fontData","styles","fStyle","fWeight","toLowerCase","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","unshift","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","items","itemsTransform","cont","hasReloaded","copies","group","ix","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","rd","currentV","currentI","currentO","closerV","distance","newPosPerc","derivative","denom","tcusp","square","root","p10","p11","p20","p21","bounds","bottom","other","shapeSegmentInverted","pointsType","count","ml","lj","inputBezier","multiSegments","lastSeg","multiSegment","FontManager","emptyChar","w","size","combinedCharacters","BLACK_FLAG_CODE_POINT","REGIONAL_CHARACTER_A_CODE_POINT","REGIONAL_CHARACTER_Z_CODE_POINT","surrogateModifiers","setUpNode","font","family","parentNode","fontFamily","node","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","parent","createHelper","def","helper","engine","fontProps","tHelper","fFamily","textContent","fClass","tCanvasHelper","OffscreenCanvas","measureText","getComputedTextLength","getCodePoint","string","codePoint","charCodeAt","second","isRegionalCode","Font","typekitLoaded","_warned","Date","now","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","charCode","isFlagEmoji","isCombinedCharacter","_char3","isRegionalFlag","isVariationSelector","fontPrototype","found","ch","list","cache","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","querySelectorAll","sc","getCharData","_char","warn","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","removeChild","SlotManager","slotFactory","RenderableElement","slots","assign","initRenderable","isInRange","hidden","isTransparent","renderableComponents","addRenderableComponent","component","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","getBlendMode","blendModeEnums","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effects","ef","effectElements","effectItem","GroupEffect","BaseElement","FrameElement","FootageElement","imageLoader","initBaseData","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","BaseRenderer","eff","checkMasks","LayerExpressionInterface","EffectsExpressionInterface","ShapeExpressionInterface","TextExpressionInterface","CompExpressionInterface","layerInterface","maskManager","registerMaskInterface","effectsInterface","createEffectsInterface","registerEffectsInterface","shapeInterface","shapesData","itemsData","content","textInterface","setBlendMode","blendModeValue","bm","baseElement","layerElement","layerId","effectsManager","getType","prepareProperties","isVisible","_isParent","getBaseElement","FootageInterface","getFootageData","timeRemapped","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","pendingElements","getElementById","pathValue","setupGlobalData","fontsContainer","compSize","effectTypes","TRANSFORM_EFFECT","TransformElement","MaskElement","maskElement","viewData","solidPath","rect","expansor","feMorph","properties","currentMasks","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","mask","createLayerSolidPath","invRect","drawPath","maskedElement","initTransform","_matMdf","_localMatMdf","_opMdf","localMat","localOpacity","ao","renderTransform","finalMat","renderLocalTransform","localTransforms","lmat","localOp","opacity","searchEffectTransforms","renderableEffectsManager","transformEffects","getEffects","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","featureSupport","svgLumaHidden","offscreenCanvas","registeredEffects$1","idPrefix","SVGEffects","filterManager","source","createFilter","filters","Effect","effect","countsAsEffect","registerEffect$1","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","layerElementParent","td","matteMasks","gg","tt","ln","hd","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","getMatte","matteType","useElement","masker","createAlphaToLuminanceFilter","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","setMatte","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","pr","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dataProps","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","of","ms","ost","buildShapeString","_o","_i","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","render","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","charactersArray","shouldCombine","shouldCombineNext","currentChars","charAt","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","add","anIndexes","animatorJustifyOffset","extra","animatorData","letterData","based","animators","indexes","fh","fs","fb","rn","totalChars","newInd","currentInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","sm","getMult","textProperty","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","tanAngle","matrixHelper","renderedLettersCount","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","atan","textAnimator","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","validateText","buildNewText","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","svgElement","ariaLabel","titleElement","titleId","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","focusable","filterSize","runExpressions","destroyed","ShapeTransformManager","sequences","sequenceList","transform_key_count","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","String","fromCharCode","buildShapeData","shapeItem","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","findIndexByInd","appendElementInPos","elementIndex","tp","matteMask","nextElement","insertBefore","setElements","getElements","destroyElements","addTransformSequence","sequence","processSequence","processSequences","getNewKey","lumaLoader","lumaBuffer","lumaBufferCtx","svg","loadLuma","_svg","createLumaSvgFilter","createCanvas","loadLumaCanvas","getLumaCanvas","registeredEffects","CVEffects","registerEffect","CVMaskElement","hasMasks","CVBaseElement","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","operationsMap","CVShapeData","transformsManager","styledShapes","styledShape","trNodes","CVShapeElement","CVTextElement","stroke","fill","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","CanvasContext","strokeStyle","lineCap","CVContextData","stack","cArrPos","cTr","nativeContext","transformMat","currentOpacity","currentFillStyle","appliedFillStyle","currentStrokeStyle","appliedStrokeStyle","currentLineWidth","appliedLineWidth","currentLineCap","appliedLineCap","currentLineJoin","appliedLineJoin","appliedMiterLimit","currentMiterLimit","CVCompElement","CanvasRenderer","clearCanvas","context","dpr","devicePixelRatio","currentGlobalAlpha","contextData","ctxTransform","ctxOpacity","ctxFillStyle","ctxStrokeStyle","ctxLineWidth","ctxLineCap","ctxLineJoin","ctxMiterLimit","ctxFill","ctxFillRect","ctxStroke","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","createElements","buffers","bufferCanvas","bufferCanvas2","_isProxy","transformCanvas","blendMode","globalCompositeOperation","hideElement","showElement","clearRect","prepareLayer","bufferCtx","drawImage","getTransform","exitLayer","buffer","forceRealStack","restore","transformHelper","dashResetter","preTransforms","co","wi","da","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","grd","setLineDash","lineDashOffset","closePath","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","globalAlpha","rule","actionFlag","containerStyle","mozTransformOrigin","setContext","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","fillType","duplicate","newLength","forceRestore","currentContext","prevStack","saveOnNativeFlag","currentStack","newStack","setOpacity","trProps","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","backgroundColor","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","item","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","shapeBoundingBox","xMax","yMax","tempBoundingBox","b2ac","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","strokeWidth","lineHeight","tParent","tCont","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","margin","svgTransform","setup","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","Image","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","overflow","cWidth","cHeight","floatingContainer","_createBaseContainerElements","_thisLayerFunction","defineProperty","pixelAspect","frameDuration","displayStartTime","numLayers","_typeof$2","seedRandom","nodecrypto","global","rngname","startdenom","significance","ARC4","keylen","me","S","copy","flatten","result","typ","mixkey","seed","smear","stringseed","tostring","options","shortseed","entropy","randomBytes","Uint8Array","crypto","msCrypto","getRandomValues","browser","plugins","autoseed","arc4","prng","int32","quick","pass","is_math_call","state","initialize$2","propTypes","SHAPE","_typeof$1","ExpressionManager","fetch","_lottieGlobal","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","sub","mul","mod","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","property","noOp","_value","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","valueAtTime","inPoint","outPoint","loopIn","loop_in","loopOut","loop_out","smooth","toWorld","fromWorld","fromComp","toComp","fromCompToSurface","rotation","anchorPoint","thisLayer","thisComp","velocityAtTime","scoped_bm_rt","expression_function","eval","numKeys","active","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","getVelocityAtTime","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","substring","posterizeTime","framesPerSecond","hasParent","executeExpression","frameExpressionId","__preventDeadCodeRemoval","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","MaskManagerInterface","MaskInterface","_mask","_data","_masksInterfaces","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","valueProp","speedAtTime","getSpeedAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_px","_py","_pz","_transformFactory","getMatrix","toWorldMat","toWorldVec","applyPoint","fromWorldVec","invertPoint","sampleImage","transformInterface","anchorPointDescriptor","defineProperties","anchor_point","startTime","_name","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","propertyName","createGroupInterface","groupInterface","mn","_propertyGroup","createValueInterface","numProperties","np","en","expressionProperty","setGroupProperty","effectsData","ShapePathInterface","view","propertyIndex","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","interfaces","transformInterfaceFactory","cix","contentsInterfaceFactory","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dash","start","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","_interfaceFunction","_sourceText","sourceText","stringValue","fillColor","_typeof","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","footage","getInterface","expressionHelpers","searchExpressions","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","initialize","SVGComposableEffect","createMergeNode","resultId","ins","feMergeNode","feMerge","linearFilterValue","SVGTintFilter","linearFilter","matrixFilter","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","colorBlack","colorWhite","groupPath","elemChildren","childNodes","removeAttribute","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","TransformEffect","SVGTransformEffect","CVTransformEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","sigma","dimensions","sigmaX","sigmaY","edgeMode","forceFrame","isUniformScale","scaleHeight","scaleWidth","module","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","test1","getOwnPropertyNames","test2","test3","letter","shouldUseNative","from","symbols","TypeError","toObject","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performance","hr","uptime","getTime","ReactPropTypesSecret","require","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","number","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","PropTypes","vendors","suffix","raf","caf","last","queue","_now","next","cancelled","handle","cancel","polyfill","cancelAnimationFrame","aa","encodeURIComponent","ba","ea","fa","ha","ia","ja","la","ma","na","oa","currentTarget","ka","pa","qa","ra","extractEvents","eventTypes","ta","phasedRegistrationNames","ua","registrationName","va","wa","dependencies","xa","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","Ua","Va","toUpperCase","xlinkHref","Wa","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","Xa","Sa","Ta","Ra","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","Ya","E","for","Za","$a","ab","bb","db","eb","gb","hb","ib","jb","kb","lb","mb","nb","pb","displayName","$$typeof","_status","_result","qb","tag","_debugOwner","_debugSource","return","rb","sb","nodeName","xb","_valueTracker","set","configurable","enumerable","setValue","stopTracking","tb","yb","checked","zb","defaultChecked","defaultValue","_wrapperState","initialChecked","Ab","initialValue","controlled","Bb","Cb","Db","Eb","ownerDocument","activeElement","Gb","Children","Fb","Hb","selected","defaultSelected","disabled","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","namespaceURI","innerHTML","valueOf","firstChild","MSApp","execUnsafeLocalFunction","Rb","lastChild","nodeType","nodeValue","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","transition","Xb","Yb","Zb","$b","ac","bc","WeakMap","Map","cc","dc","alternate","effectTag","ec","memoizedState","dehydrated","hc","child","sibling","gc","ic","jc","kc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","mc","nc","srcElement","correspondingUseElement","oc","pc","qc","topLevelType","nativeEvent","targetInst","ancestors","rc","eventSystemFlags","containerInfo","tc","uc","has","vc","F","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","Lc","delete","pointerId","Mc","Nc","Pc","unstable_runWithPriority","priority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","Oc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","kd","ld","md","setProperty","nd","menuitem","area","base","br","embed","input","keygen","link","meta","param","track","wbr","od","pd","qd","sd","ud","vd","nextSibling","wd","contains","compareDocumentPosition","xd","HTMLIFrameElement","contentWindow","yd","contentEditable","zd","Ad","Bd","Cd","Dd","Ed","Fd","autoFocus","Gd","__html","Hd","Id","clearTimeout","Jd","Kd","previousSibling","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","G","Interface","isDefaultPrevented","defaultPrevented","returnValue","ee","eventPool","fe","destructor","de","getPooled","preventDefault","stopPropagation","cancelBubble","persist","eventPhase","bubbles","cancelable","timeStamp","isTrusted","extend","ge","he","ie","je","ke","documentMode","le","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","qe","keyCode","re","detail","se","ve","locale","which","te","ctrlKey","altKey","metaKey","char","ue","we","datetime","email","month","password","range","search","tel","week","ye","change","ze","Ae","Be","Ce","De","Ee","Fe","Ge","detachEvent","He","Ie","Je","Ke","Le","Me","_isInputEventSupported","Ne","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Te","Ue","Ve","screenX","screenY","pageX","pageY","shiftKey","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","defaultView","parentWindow","$e","af","bf","cf","df","select","ff","hf","jf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","onSelect","lf","animationName","pseudoElement","mf","clipboardData","nf","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","rf","repeat","sf","dataTransfer","tf","touches","targetTouches","changedTouches","uf","vf","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","H","I","Af","J","K","Bf","Cf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","L","childContextTypes","Df","Ef","Ff","getChildContext","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","hg","ig","defaultProps","jg","kg","lg","mg","ng","og","_context","_currentValue","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","observedBits","responders","ug","updateQueue","baseState","baseQueue","shared","pending","vg","wg","suspenseConfig","xg","yg","zg","ca","Ag","D","Bg","Cg","Dg","Eg","Component","refs","Fg","Jg","isMounted","_reactInternalFiber","enqueueSetState","Gg","Hg","Ig","enqueueReplaceState","enqueueForceUpdate","Kg","shouldComponentUpdate","isPureReactComponent","Lg","contextType","updater","Mg","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ng","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Og","Pg","_owner","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","Ug","implementation","Vg","Wg","done","Xg","Yg","Zg","$g","ah","bh","dh","documentElement","tagName","eh","gh","M","hh","memoizedProps","revealOrder","ih","responder","jh","kh","N","O","P","mh","Q","nh","oh","ph","qh","rh","th","uh","vh","wh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","dispatch","xh","yh","zh","Ah","create","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useCallback","useContext","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useDebugValue","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","ReactCurrentOwner","R","Zh","$h","ai","bi","compare","ci","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","gi","getDerivedStateFromError","hi","pendingContext","ni","oi","qi","ii","retryTime","ji","fallback","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","tail","tailExpiration","tailMode","mi","ri","si","wasMultiple","multiple","onClick","onclick","createTextNode","ui","vi","T","xi","U","yi","zi","Ai","Bi","WeakSet","Set","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","focus","Ki","Li","componentWillUnmount","Di","Mi","Ni","Oi","Pi","Qi","Ri","instance","_reactRootContainer","Si","Ti","Ui","Vi","then","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","V","ej","fj","gj","hj","ij","jj","W","X","kj","mj","nj","oj","pj","Y","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","Z","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","timeout","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","vb","Uj","Vj","Wj","_ctor","default","Xj","_calculateChangedBits","unstable_observedBits","Zj","isReactComponent","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hasAttribute","hk","kk","jk","unmount","form","Lj","lk","Events","findFiberByHostInstance","__REACT_DEVTOOLS_GLOBAL_HOOK__","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","checkDCE","replaceEmoji","makeTwemojiRenderer","optionsOrFn","pageProtocol","protocol","emojiStyle","verticalAlign","merge","baseUrl","ext","icon","match","alt","draggable","replaceStringToArray","UFE0Fg","U200D","rawText","unicodeSurrogates","sep","toCodePoint","_extends","_createClass","descriptor","writable","Constructor","protoProps","staticProps","_react","_react2","_interopRequireDefault","_propTypes2","_shallowequal2","_raf2","_shouldUpdate3","_supportsPassiveEvents2","__esModule","noop","Headroom","_Component","_classCallCheck","_this","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","setRef","inner","setHeightOffset","setState","resizeTicking","getScrollY","pageYOffset","getViewportHeight","clientHeight","getDocumentHeight","scrollHeight","getElementPhysicalHeight","elm","getElementHeight","getScrollerPhysicalHeight","getScrollerHeight","isOutOfBound","currentScrollY","pastTop","scrollerPhysicalHeight","scrollerHeight","handleScroll","scrollTicking","handleResize","unpin","onUnpin","translateY","unpinSnap","pin","onPin","unfix","onUnfix","lastKnownScrollY","eventListenerOptions","subClass","superClass","setPrototypeOf","_inherits","disable","passive","capture","calcHeightOnResize","nextProps","nextState","prevProps","prevState","_props","userClassName","Tag","divProps","disableInlineStyles","upTolerance","downTolerance","pinStart","wrapperStyle","innerStyle","WebkitTransform","MsTransform","WebkitTransition","MozTransition","OTransition","wrapperStyles","wrapperClassName","scrollDirection","distanceScrolled","passiveSupported","guardAgainstInvalidArgTypes","_len","_key","propIsRequired","propExists","missingPropError","make","up","down","mirror","opposite","lookup","_globals","Bounce","defaults","forever","delay","animationFillMode","_wrap2","_propTypes","_wrap","big","Fade","Flip","LightSpeed","Reveal","durationOut","delayOut","countOut","foreverOut","effectOut","inEffect","outEffect","_Fade2","in","inOut","collapse","collapseEl","cascade","wait","force","appear","enter","exit","fraction","refProp","innerRef","onReveal","unmountOnExit","mountOnEnter","ssrReveal","collapseOnly","ssrFadeout","transitionGroup","RevealBase","isOn","when","getInitialCollapseStyle","savedChild","isShown","observerMode","handleObserve","revealHandler","makeHandler","reveal","resizeHandler","saveRef","childRef","el","observe","hasExited","dispatchEvent","collapseend","animationEndTimeout","getComputedStyle","getPropertyValue","getDimensionValue","animationDuration","animationDelay","unlisten","hasAppeared","cloneElement","getChild","animationEnd","invisible","onRevealTimeout","ssr","disableSsr","intersectionRatio","disconnect","observer","IntersectionObserver","globalHide","hideAll","spy","inViewport","animate","listen","isMounting","fadeOutEnabled","getTop","whiteSpace","toArray","onExited","only","namespace","_defineProperty","ticking","isListener","offsetTop","offsetParent","Roll","Rotate","Slide","Zoom","insertRule","sheet","cssRules","exp","counter","effectMap","ie10","IntersectionObserverEntry","webkitRequestAnimationFrame","mozRequestAnimationFrame","appVersion","timing","domLoading","createEvent","initEvent","head","_Reveal","_Fade","_Bounce","_Roll","_Slide","_Flip","_Rotate","_LightSpeed","_Zoom","_RevealBase2","Fragment","__self","__source","jsx","jsxs","forceUpdate","keyPrefix","escape","IsSomeRendererActing","Profiler","PureComponent","StrictMode","Suspense","createContext","_currentValue2","_threadCount","Provider","Consumer","createFactory","createRef","forwardRef","isValidElement","lazy","memo","MessageChannel","unstable_forceFrameRate","port2","port1","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","definition","scriptpath","urlArgs","doc","ids","every","ar","each","$script","idOrDone","optDone","idOrDoneIsDone","loopFn","dset","loading","onload","onerror","async","ready","req","missing","dep","objA","objB","compareContext","keysA","keysB","bHasOwnProperty","idx","valueA","valueB","regexpOrSubstr","newValueOrFn","globalOffset","RegExp","replaceUsingString","replaceUsingRegexp","patternString","regexp","output","replacerIsFn","storedLastIndex","exec","stringOrArray","newSubStrOrFn","arrayItem","webpackContext","webpackContextResolve","__webpack_require__","code","resolve","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","amdO","getter","chunkId","Promise","all","reduce","promises","miniCssF","globalThis","Function","inProgress","dataWebpackPrefix","script","needAttach","getAttribute","charset","onScriptComplete","prev","doneFns","toStringTag","loadStylesheet","reject","fullhref","existingLinkTags","dataHref","existingStyleTags","findStylesheet","oldTag","linkTag","errorType","realHref","request","createStylesheet","installedCssChunks","miniCss","installedChunks","installedChunkData","promise","realSrc","message","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","StyleContext","StyleProvider","ToggleSwitch","isDark","isChecked","setChecked","styleContext","onChange","changeTheme","viewExperience","viewOpenSource","viewSkills","viewAchievement","viewBlog","viewTalks","viewResume","htmlFor","Loading","DisplayLottie","defaultOptions","Button","newTab","Greeting","showSmallProjects","setShowSmallProjects","earlyProject","project","SocialMedia","landingPerson","SoftwareSkill","Skills","codingPerson","StackProgress","progressStyle","Build","naturalOrder","sort","peek","debug","r1","r2","histo","vboxes","vbox","_count_set","avg","_avg","gval","bval","palette","nearest","forcebw","quantize","naturalWidth","naturalHeight","getImageData","ExperienceCard","cardInfo","colorArrays","setColorArrays","imgRef","GetDescBullets","background","onLoad","colorThief","ColorThief","getColor","getColorArrays","WorkExperience","card","Projects","GithubRepoCard","FailedLoading","repo","setrepo","setrepoFunction","ok","json","user","pinnedItems","catch","StartupProject","AchievementCard","footer","openUrlInNewTab","Achievement","BlogCard","blog","Blogs","mediumBlogs","setMediumBlogs","setMediumBlogsFunction","getProfileData","html","includes","NaN","Footer","TalkCard","talkDetails","Talks","talk","event_url","Podcast","podcastLink","frameBorder","scrolling","EducationCard","school","Education","Top","scrollFunction","onscroll","_toPropertyKey","arg","hint","prim","toPrimitive","res","_defineProperties","_getPrototypeOf","_setPrototypeOf","getPalette","colorCount","quality","isInteger","getColorFromUrl","btoa","getColorAsync","twitterWidgetJs","TwitterTimelineEmbed","isLoading","chrome","noHeader","noFooter","noBorders","noScrollbar","transparent","autoHeight","embedContainer","theme","linkColor","borderColor","lang","isMountCanceled","twttr","widgets","createTimeline","sourceType","screenName","userId","ownerScreenName","slug","widgetId","_this2","_this3","buildOptions","buildChromeOptions","renderWidget","placeholder","isRequiredIf","createShareButton","createFollowButton","createHashtagButton","createMentionButton","createTweet","tweetId","createMoment","momentId","shareMoment","createDMButton","createVideo","createPeriscopeOnAirButton","renderLoader","cantDisplayError","widthScreen","Twitter","Contact","_Fragment","GithubProfileCard","Profile","prof","setProfileFunction","SplashScreen","Chat","isExpanded","setIsExpanded","allow","border","borderRadius","Main","darkPref","matchMedia","setIsDark","useLocalStorage","storedValue","setStoredValue","localStorage","getItem","valueToStore","setItem","matches","isShowingSplashAnimation","setIsShowingSplashAnimation","splashTimer","Header","ScrollToTopButton","Boolean","hostname","ReactDOM","App","serviceWorker","registration","unregister"],"sourceRoot":""}