//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//
//       LottieGen version:
//           8.1.240821.1+077322fa26
//       
//       Command:
//           LottieGen -Language CSharp -Public -WinUIVersion 3.0 -InputFile Refresh.json
//       
//       Input file:
//           Refresh.json (14570 bytes created 9:54+02:00 Nov 17 2024)
//       
//       LottieGen source:
//           http://aka.ms/Lottie
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
// ____________________________________
// |       Object stats       | Count |
// |__________________________|_______|
// | All CompositionObjects   |    64 |
// |--------------------------+-------|
// | Expression animators     |     1 |
// | KeyFrame animators       |     5 |
// | Reference parameters     |     1 |
// | Expression operations    |     0 |
// |--------------------------+-------|
// | Animated brushes         |     - |
// | Animated gradient stops  |     - |
// | ExpressionAnimations     |     1 |
// | PathKeyFrameAnimations   |     4 |
// |--------------------------+-------|
// | ContainerVisuals         |     1 |
// | ShapeVisuals             |     1 |
// |--------------------------+-------|
// | ContainerShapes          |     1 |
// | CompositionSpriteShapes  |     8 |
// |--------------------------+-------|
// | Brushes                  |     4 |
// | Gradient stops           |     - |
// | CompositionVisualSurface |     - |
// ------------------------------------
using Microsoft.Graphics;
using Microsoft.Graphics.Canvas.Geometry;
using Microsoft.UI.Composition;
using System;
using System.Collections.Generic;
using System.Numerics;
using Windows.UI;

namespace AnimatedVisuals
{
    // Name:        process
    // Frame rate:  24 fps
    // Frame count: 28
    // Duration:    1166.7 mS
    // _____________________________________________________________________________________________
    // |           Marker           |           Constant           | Frame |   mS   |   Progress   |
    // |____________________________|______________________________|_______|________|______________|
    // | NormalToPressed_Start      | M_NormalToPressed_Start      |     0 |    0.0 | 0F           |
    // | NormalToPressed_End        | M_NormalToPressed_End        |     9 |  375.0 | 0.323214293F |
    // | PointerOverToPressed_Start | M_PointerOverToPressed_Start |     9 |  375.0 | 0.323214293F |
    // | PointerOverToPressed_End   | M_PointerOverToPressed_End   |    19 |  791.7 | 0.680357158F |
    // | PressedToNormal_Start      | M_PressedToNormal_Start      |    20 |  833.3 | 0.716071427F |
    // | PressedToNormal_End        | M_PressedToNormal_End        |    28 | 1166.7 | 1F           |
    // | PressedToPointerOver_Start | M_PressedToPointerOver_Start |    28 | 1166.7 | 1F           |
    // | PressedToPointerOver_End   | M_PressedToPointerOver_End   |    28 | 1166.7 | 1F           |
    // ---------------------------------------------------------------------------------------------
    sealed partial class Refresh
        : Microsoft.UI.Xaml.Controls.IAnimatedVisualSource
        , Microsoft.UI.Xaml.Controls.IAnimatedVisualSource2
    {
        // Animation duration: 1.167 seconds.
        internal const long c_durationTicks = 11666666;

        // Marker: NormalToPressed_Start.
        internal const float M_NormalToPressed_Start = 0F;

        // Marker: NormalToPressed_End.
        internal const float M_NormalToPressed_End = 0.323214293F;

        // Marker: PointerOverToPressed_Start.
        internal const float M_PointerOverToPressed_Start = 0.323214293F;

        // Marker: PointerOverToPressed_End.
        internal const float M_PointerOverToPressed_End = 0.680357158F;

        // Marker: PressedToNormal_Start.
        internal const float M_PressedToNormal_Start = 0.716071427F;

        // Marker: PressedToNormal_End.
        internal const float M_PressedToNormal_End = 1F;

        // Marker: PressedToPointerOver_Start.
        internal const float M_PressedToPointerOver_Start = 1F;

        // Marker: PressedToPointerOver_End.
        internal const float M_PressedToPointerOver_End = 1F;

        public Microsoft.UI.Xaml.Controls.IAnimatedVisual TryCreateAnimatedVisual(Compositor compositor)
        {
            object ignored = null;
            return TryCreateAnimatedVisual(compositor, out ignored);
        }

        public Microsoft.UI.Xaml.Controls.IAnimatedVisual TryCreateAnimatedVisual(Compositor compositor, out object diagnostics)
        {
            diagnostics = null;

            var res =
                new Refresh_AnimatedVisual(
                    compositor
                    );
            res.CreateAnimations();
            return res;
        }

        /// <summary>
        /// Gets the number of frames in the animation.
        /// </summary>
        public double FrameCount => 28d;

        /// <summary>
        /// Gets the frame rate of the animation.
        /// </summary>
        public double Framerate => 24d;

        /// <summary>
        /// Gets the duration of the animation.
        /// </summary>
        public TimeSpan Duration => TimeSpan.FromTicks(11666666);

        /// <summary>
        /// Converts a zero-based frame number to the corresponding progress value denoting the
        /// start of the frame.
        /// </summary>
        public double FrameToProgress(double frameNumber)
        {
            return frameNumber / 28d;
        }

        /// <summary>
        /// Returns a map from marker names to corresponding progress values.
        /// </summary>
        public IReadOnlyDictionary<string, double> Markers =>
            new Dictionary<string, double>
            {
                { "NormalToPressed_Start", 0d },
                { "NormalToPressed_End", 0.323214285714286 },
                { "PointerOverToPressed_Start", 0.323214285714286 },
                { "PointerOverToPressed_End", 0.680357142857143 },
                { "PressedToNormal_Start", 0.716071428571429 },
                { "PressedToNormal_End", 1d },
                { "PressedToPointerOver_Start", 1d },
                { "PressedToPointerOver_End", 1d },
            };

        /// <summary>
        /// Sets the color property with the given name, or does nothing if no such property
        /// exists.
        /// </summary>
        public void SetColorProperty(string propertyName, Color value)
        {
        }

        /// <summary>
        /// Sets the scalar property with the given name, or does nothing if no such property
        /// exists.
        /// </summary>
        public void SetScalarProperty(string propertyName, double value)
        {
        }

        sealed partial class Refresh_AnimatedVisual
            : Microsoft.UI.Xaml.Controls.IAnimatedVisual
            , Microsoft.UI.Xaml.Controls.IAnimatedVisual2
        {
            const long c_durationTicks = 11666666;
            readonly Compositor _c;
            readonly ExpressionAnimation _reusableExpressionAnimation;
            AnimationController _animationController_0;
            CompositionColorBrush _colorBrush_AlmostDodgerBlue_FF0078D4;
            CompositionColorBrush _colorBrush_AlmostDodgerBlue_FF199BE2;
            CompositionColorBrush _colorBrush_AlmostMediumTurquoise_FF35C1F1;
            CompositionColorBrush _colorBrush_AlmostTurquoise_FF50E6FF;
            CompositionContainerShape _containerShape;
            CompositionPath _path_0;
            CompositionPath _path_1;
            CompositionPath _path_2;
            CompositionPath _path_3;
            CompositionPathGeometry _pathGeometry_1;
            CompositionPathGeometry _pathGeometry_3;
            CompositionPathGeometry _pathGeometry_5;
            CompositionPathGeometry _pathGeometry_7;
            ContainerVisual _root;
            CubicBezierEasingFunction _cubicBezierEasingFunction_0;
            StepEasingFunction _holdThenStepEasingFunction;

            void BindProperty(
                CompositionObject target,
                string animatedPropertyName,
                string expression,
                string referenceParameterName,
                CompositionObject referencedObject)
            {
                _reusableExpressionAnimation.ClearAllParameters();
                _reusableExpressionAnimation.Expression = expression;
                _reusableExpressionAnimation.SetReferenceParameter(referenceParameterName, referencedObject);
                target.StartAnimation(animatedPropertyName, _reusableExpressionAnimation);
            }

            PathKeyFrameAnimation CreatePathKeyFrameAnimation(float initialProgress, CompositionPath initialValue, CompositionEasingFunction initialEasingFunction)
            {
                var result = _c.CreatePathKeyFrameAnimation();
                result.Duration = TimeSpan.FromTicks(c_durationTicks);
                result.InsertKeyFrame(initialProgress, initialValue, initialEasingFunction);
                return result;
            }

            ScalarKeyFrameAnimation CreateScalarKeyFrameAnimation(float initialProgress, float initialValue, CompositionEasingFunction initialEasingFunction)
            {
                var result = _c.CreateScalarKeyFrameAnimation();
                result.Duration = TimeSpan.FromTicks(c_durationTicks);
                result.InsertKeyFrame(initialProgress, initialValue, initialEasingFunction);
                return result;
            }

            CompositionSpriteShape CreateSpriteShape(CompositionGeometry geometry, Matrix3x2 transformMatrix, CompositionBrush fillBrush)
            {
                var result = _c.CreateSpriteShape(geometry);
                result.TransformMatrix = transformMatrix;
                result.FillBrush = fillBrush;
                return result;
            }

            AnimationController AnimationController_0()
            {
                if (_animationController_0 != null) { return _animationController_0; }
                var result = _animationController_0 = _c.CreateAnimationController();
                result.Pause();
                BindProperty(_animationController_0, "Progress", "_.Progress", "_", _root);
                return result;
            }

            // - - - - Layer aggregator
            // - - Transforms: arrow-4 Offset:<-96, -96>
            CanvasGeometry Geometry_00()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(3.11400008F, -7.84700012F));
                    builder.AddLine(new Vector2(0.206F, -10.7550001F));
                    builder.AddCubicBezier(new Vector2(-1.88800001F, -7.59399986F), new Vector2(-3.11400008F, -3.80800009F), new Vector2(-3.11400008F, 0.268000007F));
                    builder.AddCubicBezier(new Vector2(-3.11400008F, 3.93600011F), new Vector2(-2.12100005F, 7.37099981F), new Vector2(-0.395000011F, 10.3260002F));
                    builder.AddCubicBezier(new Vector2(-0.101999998F, 10.8280001F), new Vector2(0.598999977F, 10.8990002F), new Vector2(1.00999999F, 10.4870005F));
                    builder.AddLine(new Vector2(2.6500001F, 8.84700012F));
                    builder.AddCubicBezier(new Vector2(2.92499995F, 8.57199955F), new Vector2(2.97600007F, 8.15400028F), new Vector2(2.79200006F, 7.8119998F));
                    builder.AddCubicBezier(new Vector2(1.58299994F, 5.5630002F), new Vector2(0.885999978F, 3F), new Vector2(0.885999978F, 0.268000007F));
                    builder.AddCubicBezier(new Vector2(0.885999978F, -2.69799995F), new Vector2(1.70700002F, -5.46500015F), new Vector2(3.11400008F, -7.84700012F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            CanvasGeometry Geometry_01()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(2.97000003F, -2.39100003F));
                    builder.AddCubicBezier(new Vector2(2.97000003F, -2.39100003F), new Vector2(2.8039999F, 2.44300008F), new Vector2(2.8039999F, 2.44300008F));
                    builder.AddCubicBezier(new Vector2(2.79200006F, 2.78500009F), new Vector2(2.3829999F, 2.95499992F), new Vector2(2.1329999F, 2.72000003F));
                    builder.AddCubicBezier(new Vector2(2.1329999F, 2.72000003F), new Vector2(-2.84299994F, -1.93700004F), new Vector2(-2.84299994F, -1.93700004F));
                    builder.AddCubicBezier(new Vector2(-3.102F, -2.1789999F), new Vector2(-2.94000006F, -2.61299992F), new Vector2(-2.58599997F, -2.62700009F));
                    builder.AddCubicBezier(new Vector2(-2.58599997F, -2.62700009F), new Vector2(2.5309999F, -2.82800007F), new Vector2(2.5309999F, -2.82800007F));
                    builder.AddCubicBezier(new Vector2(2.77699995F, -2.83699989F), new Vector2(2.97799993F, -2.63599992F), new Vector2(2.97000003F, -2.39100003F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            // - - - - - Layer aggregator
            // - - - Transforms: arrow-4 Offset:<-96, -96>
            // - Path
            CanvasGeometry Geometry_02()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(4.43900013F, -4.39099979F));
                    builder.AddCubicBezier(new Vector2(4.43900013F, -4.39099979F), new Vector2(2.023F, 1.81799996F), new Vector2(2.023F, 1.81799996F));
                    builder.AddCubicBezier(new Vector2(2.01099992F, 2.16000009F), new Vector2(1.602F, 2.32999992F), new Vector2(1.352F, 2.09500003F));
                    builder.AddCubicBezier(new Vector2(1.352F, 2.09500003F), new Vector2(-2.24900007F, -1.53100002F), new Vector2(-2.24900007F, -1.53100002F));
                    builder.AddCubicBezier(new Vector2(-2.5079999F, -1.773F), new Vector2(-2.34599996F, -2.20700002F), new Vector2(-1.99199998F, -2.22099996F));
                    builder.AddCubicBezier(new Vector2(-1.99199998F, -2.22099996F), new Vector2(4F, -4.82800007F), new Vector2(4F, -4.82800007F));
                    builder.AddCubicBezier(new Vector2(4.24599981F, -4.83699989F), new Vector2(4.44700003F, -4.63600016F), new Vector2(4.43900013F, -4.39099979F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            // - - - - Layer aggregator
            // - - Transforms: arrow-3 Offset:<-96.00001, -96>
            CanvasGeometry Geometry_03()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(-0.885999978F, -0.268000007F));
                    builder.AddCubicBezier(new Vector2(-0.885999978F, 2.69799995F), new Vector2(-1.70700002F, 5.46500015F), new Vector2(-3.11400008F, 7.84700012F));
                    builder.AddLine(new Vector2(-0.206F, 10.7550001F));
                    builder.AddCubicBezier(new Vector2(1.88800001F, 7.59399986F), new Vector2(3.11400008F, 3.80699992F), new Vector2(3.11400008F, -0.268000007F));
                    builder.AddCubicBezier(new Vector2(3.11400008F, -3.93600011F), new Vector2(2.12100005F, -7.37099981F), new Vector2(0.395000011F, -10.3260002F));
                    builder.AddCubicBezier(new Vector2(0.101999998F, -10.8280001F), new Vector2(-0.598999977F, -10.8979998F), new Vector2(-1.00999999F, -10.4870005F));
                    builder.AddLine(new Vector2(-2.6500001F, -8.84700012F));
                    builder.AddCubicBezier(new Vector2(-2.92499995F, -8.57199955F), new Vector2(-2.97600007F, -8.15400028F), new Vector2(-2.79200006F, -7.8119998F));
                    builder.AddCubicBezier(new Vector2(-1.58299994F, -5.5630002F), new Vector2(-0.885999978F, -3F), new Vector2(-0.885999978F, -0.268000007F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            CanvasGeometry Geometry_04()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(-2.9690001F, 2.39100003F));
                    builder.AddCubicBezier(new Vector2(-2.9690001F, 2.39100003F), new Vector2(-2.80299997F, -2.44300008F), new Vector2(-2.80299997F, -2.44300008F));
                    builder.AddCubicBezier(new Vector2(-2.79099989F, -2.78500009F), new Vector2(-2.38199997F, -2.95499992F), new Vector2(-2.13199997F, -2.72000003F));
                    builder.AddCubicBezier(new Vector2(-2.13199997F, -2.72000003F), new Vector2(2.84299994F, 1.93700004F), new Vector2(2.84299994F, 1.93700004F));
                    builder.AddCubicBezier(new Vector2(3.102F, 2.1789999F), new Vector2(2.94000006F, 2.61299992F), new Vector2(2.58599997F, 2.62700009F));
                    builder.AddCubicBezier(new Vector2(2.58599997F, 2.62700009F), new Vector2(-2.5309999F, 2.82800007F), new Vector2(-2.5309999F, 2.82800007F));
                    builder.AddCubicBezier(new Vector2(-2.77600002F, 2.83699989F), new Vector2(-2.977F, 2.63599992F), new Vector2(-2.9690001F, 2.39100003F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            // - - - - - Layer aggregator
            // - - - Transforms: arrow-3 Offset:<-96.00001, -96>
            // - Path
            CanvasGeometry Geometry_05()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(-4.3130002F, 3.704F));
                    builder.AddCubicBezier(new Vector2(-4.3130002F, 3.704F), new Vector2(-1.92799997F, -1.66100001F), new Vector2(-1.92799997F, -1.66100001F));
                    builder.AddCubicBezier(new Vector2(-1.91600001F, -2.00300002F), new Vector2(-1.50699997F, -2.1730001F), new Vector2(-1.25699997F, -1.93799996F));
                    builder.AddCubicBezier(new Vector2(-1.25699997F, -1.93799996F), new Vector2(2.40499997F, 1.59399998F), new Vector2(2.40499997F, 1.59399998F));
                    builder.AddCubicBezier(new Vector2(2.66400003F, 1.83599997F), new Vector2(2.50200009F, 2.26999998F), new Vector2(2.148F, 2.28399992F));
                    builder.AddCubicBezier(new Vector2(2.148F, 2.28399992F), new Vector2(-3.875F, 4.14099979F), new Vector2(-3.875F, 4.14099979F));
                    builder.AddCubicBezier(new Vector2(-4.11999989F, 4.1500001F), new Vector2(-4.3210001F, 3.94899988F), new Vector2(-4.3130002F, 3.704F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            // - - - - Layer aggregator
            // - - Transforms: arrow-2 Offset:<-96, -96.00001>
            CanvasGeometry Geometry_06()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(8.84700012F, -2.6500001F));
                    builder.AddCubicBezier(new Vector2(8.57199955F, -2.92499995F), new Vector2(8.15400028F, -2.97600007F), new Vector2(7.8119998F, -2.79200006F));
                    builder.AddCubicBezier(new Vector2(5.5630002F, -1.58299994F), new Vector2(3F, -0.885999978F), new Vector2(0.268000007F, -0.885999978F));
                    builder.AddCubicBezier(new Vector2(-2.69799995F, -0.885999978F), new Vector2(-5.46500015F, -1.70700002F), new Vector2(-7.84700012F, -3.11400008F));
                    builder.AddLine(new Vector2(-10.7550001F, -0.206F));
                    builder.AddCubicBezier(new Vector2(-7.59399986F, 1.88800001F), new Vector2(-3.80699992F, 3.11400008F), new Vector2(0.268000007F, 3.11400008F));
                    builder.AddCubicBezier(new Vector2(3.93600011F, 3.11400008F), new Vector2(7.37099981F, 2.12100005F), new Vector2(10.3260002F, 0.395000011F));
                    builder.AddCubicBezier(new Vector2(10.8280001F, 0.101999998F), new Vector2(10.8990002F, -0.598999977F), new Vector2(10.4870005F, -1.00999999F));
                    builder.AddLine(new Vector2(8.84700012F, -2.6500001F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            CanvasGeometry Geometry_07()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(-2.39100003F, -2.9690001F));
                    builder.AddCubicBezier(new Vector2(-2.39100003F, -2.9690001F), new Vector2(2.44300008F, -2.80299997F), new Vector2(2.44300008F, -2.80299997F));
                    builder.AddCubicBezier(new Vector2(2.78500009F, -2.79099989F), new Vector2(2.95499992F, -2.38199997F), new Vector2(2.72000003F, -2.13199997F));
                    builder.AddCubicBezier(new Vector2(2.72000003F, -2.13199997F), new Vector2(-1.93700004F, 2.84299994F), new Vector2(-1.93700004F, 2.84299994F));
                    builder.AddCubicBezier(new Vector2(-2.1789999F, 3.102F), new Vector2(-2.61299992F, 2.94000006F), new Vector2(-2.62700009F, 2.58599997F));
                    builder.AddCubicBezier(new Vector2(-2.62700009F, 2.58599997F), new Vector2(-2.82800007F, -2.5309999F), new Vector2(-2.82800007F, -2.5309999F));
                    builder.AddCubicBezier(new Vector2(-2.83699989F, -2.77600002F), new Vector2(-2.63599992F, -2.977F), new Vector2(-2.39100003F, -2.9690001F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            // - - - - - Layer aggregator
            // - - - Transforms: arrow-2 Offset:<-96, -96.00001>
            // - Path
            CanvasGeometry Geometry_08()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(-3.4849999F, -3.90700006F));
                    builder.AddCubicBezier(new Vector2(-3.4849999F, -3.90700006F), new Vector2(1.63F, -1.89699996F), new Vector2(1.63F, -1.89699996F));
                    builder.AddCubicBezier(new Vector2(1.972F, -1.88499999F), new Vector2(2.14199996F, -1.47599995F), new Vector2(1.90699995F, -1.22599995F));
                    builder.AddCubicBezier(new Vector2(1.90699995F, -1.22599995F), new Vector2(-1.46899998F, 2.15499997F), new Vector2(-1.46899998F, 2.15499997F));
                    builder.AddCubicBezier(new Vector2(-1.71099997F, 2.41400003F), new Vector2(-2.14499998F, 2.25200009F), new Vector2(-2.15899992F, 1.898F));
                    builder.AddCubicBezier(new Vector2(-2.15899992F, 1.898F), new Vector2(-3.92199993F, -3.4690001F), new Vector2(-3.92199993F, -3.4690001F));
                    builder.AddCubicBezier(new Vector2(-3.93099999F, -3.71399999F), new Vector2(-3.73000002F, -3.91499996F), new Vector2(-3.4849999F, -3.90700006F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            // - - - - Layer aggregator
            // - - Transforms: arrow-1 Offset:<-96, -96>
            CanvasGeometry Geometry_09()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(-8.85099983F, 2.6500001F));
                    builder.AddCubicBezier(new Vector2(-8.57600021F, 2.92499995F), new Vector2(-8.15799999F, 2.97600007F), new Vector2(-7.81599998F, 2.79200006F));
                    builder.AddCubicBezier(new Vector2(-5.56699991F, 1.58299994F), new Vector2(-3.00399995F, 0.885999978F), new Vector2(-0.272000015F, 0.885999978F));
                    builder.AddCubicBezier(new Vector2(2.69400001F, 0.885999978F), new Vector2(5.46099997F, 1.70700002F), new Vector2(7.84299994F, 3.11400008F));
                    builder.AddLine(new Vector2(10.7519999F, 0.204999998F));
                    builder.AddCubicBezier(new Vector2(7.59000015F, -1.88800001F), new Vector2(3.8039999F, -3.11400008F), new Vector2(-0.272000015F, -3.11400008F));
                    builder.AddCubicBezier(new Vector2(-3.92199993F, -3.11400008F), new Vector2(-7.34000015F, -2.13100004F), new Vector2(-10.2849998F, -0.421000004F));
                    builder.AddCubicBezier(new Vector2(-10.8059998F, -0.118000001F), new Vector2(-10.9160004F, 0.584999979F), new Vector2(-10.4899998F, 1.01100004F));
                    builder.AddLine(new Vector2(-8.85099983F, 2.6500001F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            CanvasGeometry Geometry_10()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(2.39100003F, 2.9690001F));
                    builder.AddCubicBezier(new Vector2(2.39100003F, 2.9690001F), new Vector2(-2.44300008F, 2.80299997F), new Vector2(-2.44300008F, 2.80299997F));
                    builder.AddCubicBezier(new Vector2(-2.78500009F, 2.79099989F), new Vector2(-2.95499992F, 2.38199997F), new Vector2(-2.72000003F, 2.13199997F));
                    builder.AddCubicBezier(new Vector2(-2.72000003F, 2.13199997F), new Vector2(1.93700004F, -2.84299994F), new Vector2(1.93700004F, -2.84299994F));
                    builder.AddCubicBezier(new Vector2(2.1789999F, -3.102F), new Vector2(2.61299992F, -2.94000006F), new Vector2(2.62700009F, -2.58599997F));
                    builder.AddCubicBezier(new Vector2(2.62700009F, -2.58599997F), new Vector2(2.82800007F, 2.5309999F), new Vector2(2.82800007F, 2.5309999F));
                    builder.AddCubicBezier(new Vector2(2.83699989F, 2.77600002F), new Vector2(2.63599992F, 2.977F), new Vector2(2.39100003F, 2.9690001F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            // - - - - - Layer aggregator
            // - - - Transforms: arrow-1 Offset:<-96, -96>
            // - Path
            CanvasGeometry Geometry_11()
            {
                CanvasGeometry result;
                using (var builder = new CanvasPathBuilder(null))
                {
                    builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
                    builder.BeginFigure(new Vector2(3.4849999F, 3.78200006F));
                    builder.AddCubicBezier(new Vector2(3.4849999F, 3.78200006F), new Vector2(-1.755F, 1.89699996F), new Vector2(-1.755F, 1.89699996F));
                    builder.AddCubicBezier(new Vector2(-2.09699988F, 1.88499999F), new Vector2(-2.26699996F, 1.47599995F), new Vector2(-2.03200006F, 1.22599995F));
                    builder.AddCubicBezier(new Vector2(-2.03200006F, 1.22599995F), new Vector2(1.43700004F, -2.27999997F), new Vector2(1.43700004F, -2.27999997F));
                    builder.AddCubicBezier(new Vector2(1.67900002F, -2.53900003F), new Vector2(2.11299992F, -2.37700009F), new Vector2(2.12700009F, -2.023F));
                    builder.AddCubicBezier(new Vector2(2.12700009F, -2.023F), new Vector2(3.92199993F, 3.3440001F), new Vector2(3.92199993F, 3.3440001F));
                    builder.AddCubicBezier(new Vector2(3.93099999F, 3.58899999F), new Vector2(3.73000002F, 3.78999996F), new Vector2(3.4849999F, 3.78200006F));
                    builder.EndFigure(CanvasFigureLoop.Closed);
                    result = CanvasGeometry.CreatePath(builder);
                }
                return result;
            }

            CompositionColorBrush ColorBrush_AlmostDodgerBlue_FF0078D4()
            {
                return (_colorBrush_AlmostDodgerBlue_FF0078D4 == null)
                    ? _colorBrush_AlmostDodgerBlue_FF0078D4 = _c.CreateColorBrush(Color.FromArgb(0xFF, 0x00, 0x78, 0xD4))
                    : _colorBrush_AlmostDodgerBlue_FF0078D4;
            }

            CompositionColorBrush ColorBrush_AlmostDodgerBlue_FF199BE2()
            {
                return (_colorBrush_AlmostDodgerBlue_FF199BE2 == null)
                    ? _colorBrush_AlmostDodgerBlue_FF199BE2 = _c.CreateColorBrush(Color.FromArgb(0xFF, 0x19, 0x9B, 0xE2))
                    : _colorBrush_AlmostDodgerBlue_FF199BE2;
            }

            CompositionColorBrush ColorBrush_AlmostMediumTurquoise_FF35C1F1()
            {
                return (_colorBrush_AlmostMediumTurquoise_FF35C1F1 == null)
                    ? _colorBrush_AlmostMediumTurquoise_FF35C1F1 = _c.CreateColorBrush(Color.FromArgb(0xFF, 0x35, 0xC1, 0xF1))
                    : _colorBrush_AlmostMediumTurquoise_FF35C1F1;
            }

            CompositionColorBrush ColorBrush_AlmostTurquoise_FF50E6FF()
            {
                return (_colorBrush_AlmostTurquoise_FF50E6FF == null)
                    ? _colorBrush_AlmostTurquoise_FF50E6FF = _c.CreateColorBrush(Color.FromArgb(0xFF, 0x50, 0xE6, 0xFF))
                    : _colorBrush_AlmostTurquoise_FF50E6FF;
            }

            // Layer aggregator
            CompositionContainerShape ContainerShape()
            {
                if (_containerShape != null) { return _containerShape; }
                var result = _containerShape = _c.CreateContainerShape();
                result.Offset = new Vector2(96F, 96F);
                var shapes = result.Shapes;
                // Transforms: arrow-4 Offset:<-96, -96>
                shapes.Add(SpriteShape_0());
                // Transforms: arrow-4 Offset:<-96, -96>
                shapes.Add(SpriteShape_1());
                // Transforms: arrow-3 Offset:<-96.00001, -96>
                shapes.Add(SpriteShape_2());
                // Transforms: arrow-3 Offset:<-96.00001, -96>
                shapes.Add(SpriteShape_3());
                // Transforms: arrow-2 Offset:<-96, -96.00001>
                shapes.Add(SpriteShape_4());
                // Transforms: arrow-2 Offset:<-96, -96.00001>
                shapes.Add(SpriteShape_5());
                // Transforms: arrow-1 Offset:<-96, -96>
                shapes.Add(SpriteShape_6());
                // Transforms: arrow-1 Offset:<-96, -96>
                shapes.Add(SpriteShape_7());
                return result;
            }

            CompositionPath Path_0()
            {
                if (_path_0 != null) { return _path_0; }
                var result = _path_0 = new CompositionPath(Geometry_01());
                return result;
            }

            CompositionPath Path_1()
            {
                if (_path_1 != null) { return _path_1; }
                var result = _path_1 = new CompositionPath(Geometry_04());
                return result;
            }

            CompositionPath Path_2()
            {
                if (_path_2 != null) { return _path_2; }
                var result = _path_2 = new CompositionPath(Geometry_07());
                return result;
            }

            CompositionPath Path_3()
            {
                if (_path_3 != null) { return _path_3; }
                var result = _path_3 = new CompositionPath(Geometry_10());
                return result;
            }

            // - - Layer aggregator
            // Transforms: arrow-4 Offset:<-96, -96>
            CompositionPathGeometry PathGeometry_0()
            {
                return _c.CreatePathGeometry(new CompositionPath(Geometry_00()));
            }

            // - - Layer aggregator
            // Transforms: arrow-4 Offset:<-96, -96>
            CompositionPathGeometry PathGeometry_1()
            {
                if (_pathGeometry_1 != null) { return _pathGeometry_1; }
                var result = _pathGeometry_1 = _c.CreatePathGeometry();
                return result;
            }

            // - - Layer aggregator
            // Transforms: arrow-3 Offset:<-96.00001, -96>
            CompositionPathGeometry PathGeometry_2()
            {
                return _c.CreatePathGeometry(new CompositionPath(Geometry_03()));
            }

            // - - Layer aggregator
            // Transforms: arrow-3 Offset:<-96.00001, -96>
            CompositionPathGeometry PathGeometry_3()
            {
                if (_pathGeometry_3 != null) { return _pathGeometry_3; }
                var result = _pathGeometry_3 = _c.CreatePathGeometry();
                return result;
            }

            // - - Layer aggregator
            // Transforms: arrow-2 Offset:<-96, -96.00001>
            CompositionPathGeometry PathGeometry_4()
            {
                return _c.CreatePathGeometry(new CompositionPath(Geometry_06()));
            }

            // - - Layer aggregator
            // Transforms: arrow-2 Offset:<-96, -96.00001>
            CompositionPathGeometry PathGeometry_5()
            {
                if (_pathGeometry_5 != null) { return _pathGeometry_5; }
                var result = _pathGeometry_5 = _c.CreatePathGeometry();
                return result;
            }

            // - - Layer aggregator
            // Transforms: arrow-1 Offset:<-96, -96>
            CompositionPathGeometry PathGeometry_6()
            {
                return _c.CreatePathGeometry(new CompositionPath(Geometry_09()));
            }

            // - - Layer aggregator
            // Transforms: arrow-1 Offset:<-96, -96>
            CompositionPathGeometry PathGeometry_7()
            {
                if (_pathGeometry_7 != null) { return _pathGeometry_7; }
                var result = _pathGeometry_7 = _c.CreatePathGeometry();
                return result;
            }

            // - Layer aggregator
            // Path 1
            CompositionSpriteShape SpriteShape_0()
            {
                // Offset:<-67.544, -1.0719986>, Scale:<4, 4>
                var geometry = PathGeometry_0();
                var result = CreateSpriteShape(geometry, new Matrix3x2(4F, 0F, 0F, 4F, -67.5439987F, -1.0719986F), ColorBrush_AlmostTurquoise_FF50E6FF()); ;
                return result;
            }

            // - Layer aggregator
            // Path 1
            CompositionSpriteShape SpriteShape_1()
            {
                // Offset:<-59.58, -38.171>, Scale:<4, 4>
                var geometry = PathGeometry_1();
                var result = CreateSpriteShape(geometry, new Matrix3x2(4F, 0F, 0F, 4F, -59.5800018F, -38.1710014F), ColorBrush_AlmostTurquoise_FF50E6FF()); ;
                return result;
            }

            // - Layer aggregator
            // Path 1
            CompositionSpriteShape SpriteShape_2()
            {
                // Offset:<67.544, 1.072998>, Scale:<4, 4>
                var geometry = PathGeometry_2();
                var result = CreateSpriteShape(geometry, new Matrix3x2(4F, 0F, 0F, 4F, 67.5439987F, 1.07299805F), ColorBrush_AlmostDodgerBlue_FF199BE2()); ;
                return result;
            }

            // - Layer aggregator
            // Path 1
            CompositionSpriteShape SpriteShape_3()
            {
                // Offset:<59.577995, 38.171005>, Scale:<4, 4>
                var geometry = PathGeometry_3();
                var result = CreateSpriteShape(geometry, new Matrix3x2(4F, 0F, 0F, 4F, 59.5779953F, 38.1710052F), ColorBrush_AlmostDodgerBlue_FF199BE2()); ;
                return result;
            }

            // - Layer aggregator
            // Path 1
            CompositionSpriteShape SpriteShape_4()
            {
                // Offset:<-1.0719986, 67.544>, Scale:<4, 4>
                var geometry = PathGeometry_4();
                var result = CreateSpriteShape(geometry, new Matrix3x2(4F, 0F, 0F, 4F, -1.0719986F, 67.5439987F), ColorBrush_AlmostDodgerBlue_FF0078D4()); ;
                return result;
            }

            // - Layer aggregator
            // Path 1
            CompositionSpriteShape SpriteShape_5()
            {
                // Offset:<-38.171, 59.577995>, Scale:<4, 4>
                var geometry = PathGeometry_5();
                var result = CreateSpriteShape(geometry, new Matrix3x2(4F, 0F, 0F, 4F, -38.1710014F, 59.5779953F), ColorBrush_AlmostDodgerBlue_FF0078D4()); ;
                return result;
            }

            // - Layer aggregator
            // Path 1
            CompositionSpriteShape SpriteShape_6()
            {
                // Offset:<1.086998, -67.544>, Scale:<4, 4>
                var geometry = PathGeometry_6();
                var result = CreateSpriteShape(geometry, new Matrix3x2(4F, 0F, 0F, 4F, 1.08699799F, -67.5439987F), ColorBrush_AlmostMediumTurquoise_FF35C1F1()); ;
                return result;
            }

            // - Layer aggregator
            // Path 1
            CompositionSpriteShape SpriteShape_7()
            {
                // Offset:<38.171005, -59.578>, Scale:<4, 4>
                var geometry = PathGeometry_7();
                var result = CreateSpriteShape(geometry, new Matrix3x2(4F, 0F, 0F, 4F, 38.1710052F, -59.5779991F), ColorBrush_AlmostMediumTurquoise_FF35C1F1()); ;
                return result;
            }

            // The root of the composition.
            ContainerVisual Root()
            {
                if (_root != null) { return _root; }
                var result = _root = _c.CreateContainerVisual();
                var propertySet = result.Properties;
                propertySet.InsertScalar("Progress", 0F);
                // Layer aggregator
                result.Children.InsertAtTop(ShapeVisual_0());
                return result;
            }

            CubicBezierEasingFunction CubicBezierEasingFunction_0()
            {
                return (_cubicBezierEasingFunction_0 == null)
                    ? _cubicBezierEasingFunction_0 = _c.CreateCubicBezierEasingFunction(new Vector2(0.333000004F, 0F), new Vector2(0.666999996F, 1F))
                    : _cubicBezierEasingFunction_0;
            }

            // - - - Layer aggregator
            // - Transforms: arrow-4 Offset:<-96, -96>
            // Path
            PathKeyFrameAnimation PathKeyFrameAnimation_0()
            {
                // Frame 0.
                var result = CreatePathKeyFrameAnimation(0F, Path_0(), HoldThenStepEasingFunction());
                // Frame 9.
                result.InsertKeyFrame(0.321428567F, new CompositionPath(Geometry_02()), CubicBezierEasingFunction_0());
                // Frame 18.
                result.InsertKeyFrame(0.642857134F, Path_0(), CubicBezierEasingFunction_0());
                return result;
            }

            // - - - Layer aggregator
            // - Transforms: arrow-3 Offset:<-96.00001, -96>
            // Path
            PathKeyFrameAnimation PathKeyFrameAnimation_1()
            {
                // Frame 0.
                var result = CreatePathKeyFrameAnimation(0F, Path_1(), HoldThenStepEasingFunction());
                // Frame 9.
                result.InsertKeyFrame(0.321428567F, new CompositionPath(Geometry_05()), CubicBezierEasingFunction_0());
                // Frame 18.
                result.InsertKeyFrame(0.642857134F, Path_1(), CubicBezierEasingFunction_0());
                return result;
            }

            // - - - Layer aggregator
            // - Transforms: arrow-2 Offset:<-96, -96.00001>
            // Path
            PathKeyFrameAnimation PathKeyFrameAnimation_2()
            {
                // Frame 0.
                var result = CreatePathKeyFrameAnimation(0F, Path_2(), HoldThenStepEasingFunction());
                // Frame 9.
                result.InsertKeyFrame(0.321428567F, new CompositionPath(Geometry_08()), CubicBezierEasingFunction_0());
                // Frame 18.
                result.InsertKeyFrame(0.642857134F, Path_2(), CubicBezierEasingFunction_0());
                return result;
            }

            // - - - Layer aggregator
            // - Transforms: arrow-1 Offset:<-96, -96>
            // Path
            PathKeyFrameAnimation PathKeyFrameAnimation_3()
            {
                // Frame 0.
                var result = CreatePathKeyFrameAnimation(0F, Path_3(), HoldThenStepEasingFunction());
                // Frame 9.
                result.InsertKeyFrame(0.321428567F, new CompositionPath(Geometry_11()), CubicBezierEasingFunction_0());
                // Frame 18.
                result.InsertKeyFrame(0.642857134F, Path_3(), CubicBezierEasingFunction_0());
                return result;
            }

            // - Layer aggregator
            // Rotation
            ScalarKeyFrameAnimation RotationAngleInDegreesScalarAnimation_0_to_360()
            {
                // Frame 0.
                var result = CreateScalarKeyFrameAnimation(0F, 0F, HoldThenStepEasingFunction());
                // Frame 18.
                result.InsertKeyFrame(0.642857134F, 385F, CubicBezierEasingFunction_0());
                // Frame 22.
                result.InsertKeyFrame(0.785714269F, 360F, CubicBezierEasingFunction_0());
                return result;
            }

            // Layer aggregator
            ShapeVisual ShapeVisual_0()
            {
                var result = _c.CreateShapeVisual();
                result.Size = new Vector2(192F, 192F);
                result.Shapes.Add(ContainerShape());
                return result;
            }

            StepEasingFunction HoldThenStepEasingFunction()
            {
                if (_holdThenStepEasingFunction != null) { return _holdThenStepEasingFunction; }
                var result = _holdThenStepEasingFunction = _c.CreateStepEasingFunction();
                result.IsFinalStepSingleFrame = true;
                return result;
            }

            internal Refresh_AnimatedVisual(
                Compositor compositor
                )
            {
                _c = compositor;
                _reusableExpressionAnimation = compositor.CreateExpressionAnimation();
                Root();
            }

            public Visual RootVisual => _root;
            public TimeSpan Duration => TimeSpan.FromTicks(c_durationTicks);
            public Vector2 Size => new Vector2(192F, 192F);
            void IDisposable.Dispose() => _root?.Dispose();

            public void CreateAnimations()
            {
                _containerShape.StartAnimation("RotationAngleInDegrees", RotationAngleInDegreesScalarAnimation_0_to_360(), AnimationController_0());
                _pathGeometry_1.StartAnimation("Path", PathKeyFrameAnimation_0(), AnimationController_0());
                _pathGeometry_3.StartAnimation("Path", PathKeyFrameAnimation_1(), AnimationController_0());
                _pathGeometry_5.StartAnimation("Path", PathKeyFrameAnimation_2(), AnimationController_0());
                _pathGeometry_7.StartAnimation("Path", PathKeyFrameAnimation_3(), AnimationController_0());
            }

            public void DestroyAnimations()
            {
                _containerShape.StopAnimation("RotationAngleInDegrees");
                _pathGeometry_1.StopAnimation("Path");
                _pathGeometry_3.StopAnimation("Path");
                _pathGeometry_5.StopAnimation("Path");
                _pathGeometry_7.StopAnimation("Path");
            }

        }
    }
}
