diff --git a/examples/resources/lottie/expressions/intelia_logo_animation.json b/examples/resources/lottie/expressions/intelia_logo_animation.json new file mode 100644 index 00000000..a82c26a5 --- /dev/null +++ b/examples/resources/lottie/expressions/intelia_logo_animation.json @@ -0,0 +1 @@ +{"v":"5.1.3","fr":24,"ip":0,"op":207,"w":850,"h":850,"nm":"Comp 1","ddd":0,"assets":[{"id":"comp_25","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 7","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":10,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":12.372,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":36.085,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":92.997,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":116.71,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":130.938,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":152.281,"s":[0],"e":[100]},{"t":175.994140625}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[-45],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":10,"s":[0],"e":[360]},{"t":175.994140625}],"ix":10},"p":{"a":0,"k":[580.426,1041.493,0],"ix":2},"a":{"a":0,"k":[-356.047,-391.199,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[156.703,156.703],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-194.047,-395.199],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":582,"st":0,"bm":3},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 5","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":10,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":19.484,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":43.199,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":55.056,"s":[0],"e":[67]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":78.77,"s":[67],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":102.482,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":152.281,"s":[0],"e":[100]},{"t":175.994140625}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-468.047,-441.199,0],"ix":2},"a":{"a":0,"k":[-194.047,-395.199,0],"ix":1},"s":{"a":0,"k":[53,53,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[156.703,156.703],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-194.047,-395.199],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":582,"st":0,"bm":3}]},{"id":"comp_26","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":35.253,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":71.7,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":127.79,"s":[100],"e":[0]},{"t":165.1826171875}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[742.953,606.801,0],"e":[448.953,366.801,0],"to":[-49,-40,0],"ti":[49,40,0]},{"t":166.0048828125}],"ix":2},"a":{"a":0,"k":[-194.047,-395.199,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[156.703,156.703],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-194.047,-395.199],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":582,"st":0,"bm":3},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 4","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":10,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":93.365,"s":[100],"e":[0]},{"t":166.0048828125}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-426.047,-547.199,0],"ix":2},"a":{"a":0,"k":[-194.047,-395.199,0],"ix":1},"s":{"a":0,"k":[39,39,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[156.703,156.703],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-194.047,-395.199],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":582,"st":0,"bm":3},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 3","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":10,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":23.598,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":93.365,"s":[100],"e":[0]},{"t":166.0048828125}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-267.047,-558.199,0],"ix":2},"a":{"a":0,"k":[-194.047,-395.199,0],"ix":1},"s":{"a":0,"k":[78,78,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[156.703,156.703],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-194.047,-395.199],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":582,"st":0,"bm":3}]},{"id":"comp_27","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Combined Shape 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"t":10}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[25.525,25.765,0],"ix":2},"a":{"a":0,"k":[38.73,33.425,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[20,0],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[21.5,1.5],"ix":2},"a":{"a":0,"k":[21.5,1.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[14,5],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[15.5,6.5],"ix":2},"a":{"a":0,"k":[15.5,6.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 2","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[10,10],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[11.5,11.5],"ix":2},"a":{"a":0,"k":[11.5,11.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 4","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[5,15],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[6.5,16.5],"ix":2},"a":{"a":0,"k":[6.5,16.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 6","np":1,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[0,20],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[1.5,21.5],"ix":2},"a":{"a":0,"k":[1.5,21.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 8","np":1,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[26,6],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[27.5,7.5],"ix":2},"a":{"a":0,"k":[27.5,7.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy","np":1,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[20,11],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[21.5,12.5],"ix":2},"a":{"a":0,"k":[21.5,12.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 3","np":1,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[16,16],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[17.5,17.5],"ix":2},"a":{"a":0,"k":[17.5,17.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 5","np":1,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[11,21],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[12.5,22.5],"ix":2},"a":{"a":0,"k":[12.5,22.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 7","np":1,"cix":2,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[6,26],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[7.5,27.5],"ix":2},"a":{"a":0,"k":[7.5,27.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 9","np":1,"cix":2,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.479,8.174],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[174.15,174.15],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Combined Shape","np":11,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":582,"st":0,"bm":3},{"ddd":0,"ind":2,"ty":4,"nm":"Combined Shape","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"t":10}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[25.525,25.765,0],"ix":2},"a":{"a":0,"k":[38.73,33.425,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[20,0],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[21.5,1.5],"ix":2},"a":{"a":0,"k":[21.5,1.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[14,5],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[15.5,6.5],"ix":2},"a":{"a":0,"k":[15.5,6.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 2","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[10,10],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[11.5,11.5],"ix":2},"a":{"a":0,"k":[11.5,11.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 4","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[5,15],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[6.5,16.5],"ix":2},"a":{"a":0,"k":[6.5,16.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 6","np":1,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[0,20],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[1.5,21.5],"ix":2},"a":{"a":0,"k":[1.5,21.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 8","np":1,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[26,6],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[27.5,7.5],"ix":2},"a":{"a":0,"k":[27.5,7.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy","np":1,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[20,11],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[21.5,12.5],"ix":2},"a":{"a":0,"k":[21.5,12.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 3","np":1,"cix":2,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[16,16],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[17.5,17.5],"ix":2},"a":{"a":0,"k":[17.5,17.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 5","np":1,"cix":2,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[11,21],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[12.5,22.5],"ix":2},"a":{"a":0,"k":[12.5,22.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 7","np":1,"cix":2,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3,3],"ix":2},"p":{"a":0,"k":[6,26],"ix":3,"x":"var $bm_rt;\n$bm_rt = sum(div(thisProperty.propertyGroup(1)(2), 2), value);"},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tr","p":{"a":0,"k":[7.5,27.5],"ix":2},"a":{"a":0,"k":[7.5,27.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval Copy 9","np":1,"cix":2,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.479,8.174],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[174.15,174.15],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Combined Shape","np":11,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":582,"st":0,"bm":3}]},{"id":"comp_28","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"top gradient 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[676.793,592.214,0],"ix":2},"a":{"a":0,"k":[161.771,185.625,0],"ix":1},"s":{"a":0,"k":[167.414,156.485,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-32.615,36.219],[38.821,39.666],[0,0],[30.168,-34.428],[-34.643,-35.416]],"o":[[0,0],[35.421,36.573],[33.486,-37.186],[0,0],[-34.643,-35.408],[-32.698,37.315],[0,0]],"v":[[145.847,276.337],[188.716,320.16],[308.833,322.591],[302.799,191.193],[166.892,47.089],[45.018,50.252],[50.711,177.105]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":2,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.918,0.078,0.482,0.5,0.488,0.41,0.645,1,0.059,0.741,0.808],"ix":8}},"s":{"a":0,"k":[20.389,22.001],"ix":4},"e":{"a":0,"k":[333.534,351.158],"ix":5},"t":1,"lc":2,"lj":2,"d":[{"n":"d","nm":"dash","v":{"a":0,"k":0,"ix":1}},{"n":"g","nm":"gap","v":{"a":0,"k":6,"ix":2}},{"n":"o","nm":"offset","v":{"a":0,"k":0,"ix":7}}],"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0.016,0.071],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":0,"s":[0],"e":[100]},{"t":40}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[360]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":40,"s":[360],"e":[432]},{"t":206}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":582,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"bottom gradient 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[704.229,761.465,0],"ix":2},"a":{"a":0,"k":[178.51,145.63,0],"ix":1},"s":{"a":0,"k":[166.241,155.588,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-31.766,-33.004],[-34.481,35.437],[0,0],[32.662,35.352],[34.489,-35.437]],"o":[[0,0],[-34.481,35.437],[32.568,33.837],[0,0],[34.481,-35.429],[-32.658,-35.348],[0,0]],"v":[[122.383,118.689],[50.12,195.537],[46.83,323.705],[168.402,323.543],[307.278,175.855],[309.169,47.695],[188.989,47.857]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":2,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.918,0.078,0.482,0.5,0.488,0.41,0.645,1,0.059,0.741,0.808],"ix":8}},"s":{"a":0,"k":[20.389,22.001],"ix":4},"e":{"a":0,"k":[333.534,351.158],"ix":5},"t":1,"lc":2,"lj":2,"d":[{"n":"d","nm":"dash","v":{"a":0,"k":0,"ix":1}},{"n":"g","nm":"gap","v":{"a":0,"k":6,"ix":2}},{"n":"o","nm":"offset","v":{"a":0,"k":0,"ix":7}}],"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":0,"s":[0],"e":[100]},{"t":40}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[360]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":40,"s":[360],"e":[432]},{"t":206}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":582,"st":0,"bm":0}]},{"id":"comp_29","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"top gradient 2","sr":1,"ks":{"o":{"a":0,"k":10,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[630.311,697.664,0],"ix":2},"a":{"a":0,"k":[129.266,259.367,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-32.615,36.219],[38.821,39.666],[0,0],[30.168,-34.428],[-34.643,-35.416]],"o":[[0,0],[35.421,36.573],[33.486,-37.186],[0,0],[-34.643,-35.408],[-32.698,37.315],[0,0]],"v":[[145.847,276.337],[188.716,320.16],[308.833,322.591],[302.799,191.193],[166.892,47.089],[45.018,50.252],[50.711,177.105]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":51,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.918,0.078,0.482,0.5,0.488,0.41,0.645,1,0.059,0.741,0.808],"ix":8}},"s":{"a":0,"k":[20.389,22.001],"ix":4},"e":{"a":0,"k":[333.534,351.158],"ix":5},"t":1,"lc":2,"lj":2,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0.016,0.071],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":582,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"bottom gradient 2","parent":1,"sr":1,"ks":{"o":{"a":0,"k":10,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,151.01,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-31.766,-33.004],[-34.481,35.437],[0,0],[32.662,35.352],[34.489,-35.437]],"o":[[0,0],[-34.481,35.437],[32.568,33.837],[0,0],[34.481,-35.429],[-32.658,-35.348],[0,0]],"v":[[122.383,118.689],[50.12,195.537],[46.83,323.705],[168.402,323.543],[307.278,175.855],[309.169,47.695],[188.989,47.857]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":51,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.918,0.078,0.482,0.5,0.488,0.41,0.645,1,0.059,0.741,0.808],"ix":8}},"s":{"a":0,"k":[23.323,352.344],"ix":4},"e":{"a":0,"k":[333.867,22.766],"ix":5},"t":1,"lc":2,"lj":2,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":582,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"bottom left","refId":"comp_25","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[425,425,0],"ix":2},"a":{"a":0,"k":[700,700,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[19.3,-20.909],[-77.841,-87.143],[-26.626,37],[0,0],[0,0],[3.979,-3.943],[21.354,-8.993],[33.25,31.25],[-10.06,22.855],[0,0],[0,0],[0,0],[0,0]],"o":[[-18,19.501],[79.5,89],[4.366,-6.067],[0,0],[0,0],[-27.626,27.375],[-21.341,8.987],[-35.098,-32.987],[10.863,-24.679],[0,0],[0,0],[0,0],[0,0]],"v":[[478,811.999],[484,1028.5],[710.626,1031.25],[906.174,825.585],[828.745,800.692],[708.251,928.75],[636.146,997.493],[543.5,985],[522.637,879.679],[549.5,841.499],[726.796,651.11],[671.014,605.492],[511.727,774.458]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":1400,"h":1400,"ip":30,"op":207,"st":30,"bm":3},{"ddd":0,"ind":2,"ty":0,"nm":"Shape Layer 2 Comp 1","refId":"comp_26","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[425,425,0],"ix":2},"a":{"a":0,"k":[700,700,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[60.5,-58.625],[0,0],[-29.176,-33.894],[0,0],[0,0],[2.138,9.397],[-42.42,36.582],[-11.955,-11.937],[0,0],[0,0],[10.352,8.203]],"o":[[0,0],[-61.774,59.859],[0,0],[15.824,18.981],[0,0],[0,0],[-15.362,-24.603],[39.578,-34.132],[9.545,1.063],[0,0],[0,0],[-24.898,-22.047]],"v":[[627.3,325.45],[491.5,365.625],[442.454,504.046],[478.176,589.519],[603.472,718.436],[649.702,663.18],[528.362,535.103],[543.17,417.168],[643.955,408.437],[868.819,643.157],[915.114,587.104],[693.648,354.297]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":1400,"h":1400,"ip":40,"op":207,"st":40,"bm":3},{"ddd":0,"ind":3,"ty":0,"nm":"dot dot","refId":"comp_27","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":87.39,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":111.085,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":134.78,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":182.17,"s":[100],"e":[0]},{"t":205.865234375}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[356,425,0],"ix":2},"a":{"a":0,"k":[25.5,26,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":51,"h":52,"ip":40,"op":207,"st":40,"bm":3},{"ddd":0,"ind":4,"ty":0,"nm":"dot dot 3","refId":"comp_27","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":132.41,"s":[100],"e":[0]},{"t":156.10546875}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":49.478,"s":[97],"e":[103]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":54.217,"s":[103],"e":[151]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":66.064,"s":[151],"e":[205]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":82.651,"s":[205],"e":[254]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":103.977,"s":[254],"e":[267]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":118.193,"s":[267],"e":[273]},{"t":156.10546875}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.171,"y":0.523},"o":{"x":0.202,"y":0},"n":"0p171_0p523_0p202_0","t":40,"s":[478.5,197,0],"e":[605.211,514.635,0],"to":[190.990447998047,160.949462890625,0],"ti":[57.1761779785156,-54.6577949523926,0]},{"i":{"x":0.46,"y":1},"o":{"x":0.166,"y":0.528},"n":"0p46_1_0p166_0p528","t":75.542,"s":[605.211,514.635,0],"e":[391,454,0],"to":[-53.2955093383789,50.9480514526367,0],"ti":[55.3542785644531,99.6731643676758,0]},{"t":205.865234375}],"ix":2},"a":{"a":0,"k":[25.5,26,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":51,"h":52,"ip":40,"op":207,"st":40,"bm":3},{"ddd":0,"ind":5,"ty":4,"nm":"circle 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[408.811,344.164,0],"ix":2},"a":{"a":0,"k":[178.217,185.94,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[141.106,206.717],[110.43,239.196],[145.39,275.784],[176.591,242.256]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":85,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":40,"s":[185.289,276.851],"e":[108.695,204.332],"to":[-12.7656526565552,-12.0863838195801],"ti":[12.7656526565552,12.0863838195801]},{"t":158.474609375}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[34.114,34.114],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":40,"s":[0],"e":[100]},{"t":63.6953125}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":40,"op":207,"st":40,"bm":3},{"ddd":0,"ind":6,"ty":4,"nm":"bottom intersect","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[170.46,267.714,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[124.626,32.564],[39.976,108.706],[124.626,184.848],[209.277,108.706]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-31.766,-33.004],[-34.481,35.437],[0,0],[32.662,35.352],[34.489,-35.437]],"o":[[0,0],[-34.481,35.437],[32.568,33.837],[0,0],[34.481,-35.429],[-32.658,-35.348],[0,0]],"v":[[122.383,118.689],[50.12,195.537],[46.83,323.705],[168.402,323.543],[307.278,175.855],[310.568,47.695],[188.989,47.857]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":51,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.918,0.078,0.482,0.5,0.488,0.41,0.645,1,0.059,0.741,0.808],"ix":8}},"s":{"a":0,"k":[23.323,352.344],"ix":4},"e":{"a":0,"k":[333.867,22.766],"ix":5},"t":1,"lc":2,"lj":2,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[100]},{"t":40}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[360]},{"t":40}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":5,"op":207,"st":5,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"circle","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[425.311,317.664,0],"ix":2},"a":{"a":0,"k":[178.217,185.94,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[110.862,203.395],[71.706,235.962],[161.474,328.756],[199.493,295.053]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":85,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":87.39,"s":[125.589,217.812],"e":[100.818,262.368],"to":[-4.1284236907959,7.42597246170044],"ti":[4.1284236907959,-7.42597246170044]},{"t":205.865234375}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[34.114,34.114],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":87.39,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":111.085,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":182.17,"s":[100],"e":[0]},{"t":205.865234375}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":40,"op":207,"st":40,"bm":3},{"ddd":0,"ind":8,"ty":0,"nm":"dot dot 2","refId":"comp_27","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":96.868,"s":[100],"e":[0]},{"t":108.7158203125}],"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.21,"y":1},"o":{"x":0.996,"y":0},"n":"0p21_1_0p996_0","t":63.695,"s":[438.5,506,0],"e":[354.5,426,0],"to":[-14,-13.3333330154419,0],"ti":[14,13.3333330154419,0]},{"t":134.7802734375}],"ix":2},"a":{"a":0,"k":[25.5,26,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":51,"h":52,"ip":50,"op":207,"st":50,"bm":3},{"ddd":0,"ind":9,"ty":4,"nm":"top intersect","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[0],"e":[50]},{"t":30}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[425.311,317.664,0],"ix":2},"a":{"a":0,"k":[178.217,185.94,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[91.194,150.86],[25.552,210.787],[167.942,347.812],[223.269,294.703]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-32.615,36.219],[38.821,39.666],[0,0],[30.168,-34.428],[-34.643,-35.416]],"o":[[0,0],[35.421,36.573],[33.486,-37.186],[0,0],[-34.643,-35.408],[-32.698,37.315],[0,0]],"v":[[144.798,275.288],[192.388,323.656],[308.833,322.591],[302.799,191.193],[166.892,47.089],[45.018,50.252],[50.711,177.105]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":51,"ix":10},"g":{"p":7,"k":{"a":0,"k":[0,0.639,0.294,0.588,0.177,0.32,0.147,0.369,0.354,0,0,0.149,0.528,0,0,0.149,0.701,0,0,0.149,0.85,0.139,0.286,0.437,0.999,0.278,0.573,0.725],"ix":8}},"s":{"a":0,"k":[62.14,189.033],"ix":4},"e":{"a":0,"k":[193.065,322.973],"ix":5},"t":1,"lc":2,"lj":2,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0.016,0.071],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[100]},{"t":45}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[360]},{"t":45}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[177.755,185.625],"ix":2},"a":{"a":0,"k":[177.755,185.625],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"path animation","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":5,"op":207,"st":5,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"top gradient","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[425.311,317.664,0],"ix":2},"a":{"a":0,"k":[178.217,185.94,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-32.615,36.219],[38.821,39.666],[0,0],[30.168,-34.428],[-34.643,-35.416]],"o":[[0,0],[35.421,36.573],[33.486,-37.186],[0,0],[-34.643,-35.408],[-32.698,37.315],[0,0]],"v":[[145.847,276.337],[188.716,320.16],[308.833,322.591],[302.799,191.193],[166.892,47.089],[45.018,50.252],[50.711,177.105]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":51,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.918,0.078,0.482,0.5,0.488,0.41,0.645,1,0.059,0.741,0.808],"ix":8}},"s":{"a":0,"k":[20.389,22.001],"ix":4},"e":{"a":0,"k":[333.534,351.158],"ix":5},"t":1,"lc":2,"lj":2,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0.016,0.071],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[100]},{"t":45}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[360]},{"t":45}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":5,"op":207,"st":5,"bm":0},{"ddd":0,"ind":11,"ty":0,"nm":"dot dot 4","refId":"comp_27","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0,"y":0},"n":"0_1_0_0","t":40,"s":[484,655,0],"e":[455,682.5,0],"to":[-4.83333349227905,4.58333349227905,0],"ti":[-18.1666660308838,18.25,0]},{"i":{"x":0,"y":1},"o":{"x":0.013,"y":0},"n":"0_1_0p013_0","t":87.39,"s":[455,682.5,0],"e":[593,545.5,0],"to":[18.1666660308838,-18.25,0],"ti":[-23,22.8333339691162,0]},{"t":111.0849609375}],"ix":2},"a":{"a":0,"k":[25.5,26,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":51,"h":52,"ip":40,"op":207,"st":40,"bm":3},{"ddd":0,"ind":12,"ty":4,"nm":"botto center shadow","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":22,"s":[0],"e":[50]},{"t":32}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[170.46,267.714,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[222.668,-8.017],[147.58,16.983],[253,122.403],[292.86,67.857]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-31.766,-33.004],[-34.481,35.437],[0,0],[32.662,35.352],[34.489,-35.437]],"o":[[0,0],[-34.481,35.437],[32.568,33.837],[0,0],[34.481,-35.429],[-32.658,-35.348],[0,0]],"v":[[122.383,118.689],[50.12,195.537],[46.83,323.705],[168.402,323.543],[307.278,175.855],[309.169,47.695],[188.989,47.857]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":51,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0,0,0.149,0.5,0.149,0.278,0.433,1,0.298,0.557,0.718],"ix":8}},"s":{"a":0,"k":[252.962,23.148],"ix":4},"e":{"a":0,"k":[186.511,57.098],"ix":5},"t":1,"lc":2,"lj":2,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[100]},{"t":45}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[360]},{"t":45}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":5,"op":207,"st":5,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"bottom right shadow","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":23,"s":[0],"e":[50]},{"t":33}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[170.46,267.714,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[27.966,-20.988]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[-43.954,32.986]],"v":[[229.381,220.652],[163.13,232.882],[245.771,315.523],[345.496,189.019],[355.903,137.559],[314.719,201.432]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-31.766,-33.004],[-34.481,35.437],[0,0],[32.662,35.352],[34.489,-35.437]],"o":[[0,0],[-34.481,35.437],[32.568,33.837],[0,0],[34.481,-35.429],[-32.658,-35.348],[0,0]],"v":[[122.383,118.689],[50.12,195.537],[46.83,323.705],[168.402,323.543],[307.278,175.855],[309.169,47.695],[188.989,47.857]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":51,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.576,0.341,0.612,0.5,0.288,0.171,0.38,1,0,0,0.149],"ix":8}},"s":{"a":0,"k":[209.954,279.226],"ix":4},"e":{"a":0,"k":[289.12,209.59],"ix":5},"t":1,"lc":2,"lj":2,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[100]},{"t":45}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[360]},{"t":45}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":5,"op":207,"st":5,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"bottom gradient","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[170.46,267.714,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-31.766,-33.004],[-34.481,35.437],[0,0],[32.662,35.352],[34.489,-35.437]],"o":[[0,0],[-34.481,35.437],[32.568,33.837],[0,0],[34.481,-35.429],[-32.658,-35.348],[0,0]],"v":[[122.383,118.689],[50.12,195.537],[46.83,323.705],[168.402,323.543],[307.278,175.855],[309.169,47.695],[188.989,47.857]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":51,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.918,0.078,0.482,0.5,0.488,0.41,0.645,1,0.059,0.741,0.808],"ix":8}},"s":{"a":0,"k":[23.323,352.344],"ix":4},"e":{"a":0,"k":[333.867,22.766],"ix":5},"t":1,"lc":2,"lj":2,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[100]},{"t":45}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":5,"s":[0],"e":[360]},{"t":45}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":5,"op":207,"st":5,"bm":0},{"ddd":0,"ind":15,"ty":0,"nm":"Ub=nder Lines Tones","refId":"comp_28","sr":1,"ks":{"o":{"a":0,"k":70,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.31],"y":[0]},"n":["0_1_0p31_0"],"t":20,"s":[0],"e":[-27]},{"t":40}],"ix":10},"p":{"a":0,"k":[435,415,0],"ix":2},"a":{"a":0,"k":[700,700,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1400,"h":1400,"ip":0,"op":207,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":0,"nm":"underTone","refId":"comp_29","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[0],"e":[50]},{"t":30}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0],"y":[0]},"o":{"x":[0.32],"y":[0]},"n":["0_0_0p32_0"],"t":20,"s":[0],"e":[-30]},{"t":40}],"ix":10},"p":{"a":0,"k":[357,421,0],"ix":2},"a":{"a":0,"k":[632,696,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1400,"h":1400,"ip":5,"op":207,"st":5,"bm":0},{"ddd":0,"ind":17,"ty":0,"nm":"underTone","refId":"comp_29","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[0],"e":[100]},{"t":30}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0],"y":[0]},"o":{"x":[0.32],"y":[0]},"n":["0_0_0p32_0"],"t":20,"s":[0],"e":[-12]},{"t":40}],"ix":10},"p":{"a":0,"k":[357,421,0],"ix":2},"a":{"a":0,"k":[632,696,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1400,"h":1400,"ip":5,"op":207,"st":5,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"pre-top 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[425.311,317.664,0],"ix":2},"a":{"a":0,"k":[178.217,185.94,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[30.168,-34.428],[-34.643,-35.416],[0,0],[0,0],[-32.615,36.219],[38.821,39.666]],"o":[[-34.643,-35.408],[-32.698,37.315],[0,0],[0,0],[35.421,36.573],[33.486,-37.186],[0,0]],"v":[[166.892,47.089],[45.018,50.252],[50.711,177.105],[145.148,276.687],[188.716,320.16],[308.833,322.591],[302.799,191.193]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.226922487745,0.270561427696,0.314200367647,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":51,"ix":5},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0.016,0.071],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":0,"s":[0],"e":[30]},{"t":40}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":0,"s":[0],"e":[360]},{"t":40}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":41,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"pre-top","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[425.311,317.664,0],"ix":2},"a":{"a":0,"k":[178.217,185.94,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-32.615,36.219],[38.821,39.666],[0,0],[30.168,-34.428],[-34.643,-35.416],[0,0],[0,0]],"o":[[33.486,-37.186],[0,0],[-34.643,-35.408],[-32.698,37.315],[0,0],[0,0],[35.421,36.573]],"v":[[308.833,322.591],[302.799,191.193],[166.892,47.089],[45.018,50.252],[50.711,177.105],[145.148,276.687],[188.716,320.16]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.226922487745,0.270561427696,0.314200367647,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":51,"ix":5},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0.016,0.071],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":0,"s":[0],"e":[30]},{"t":40}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":0,"s":[0],"e":[360]},{"t":40}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":41,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"pre-bottom 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[170.46,267.714,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-34.481,35.437],[0,0],[32.662,35.352],[34.489,-35.437],[0,0],[0,0],[-31.766,-33.004]],"o":[[0,0],[34.481,-35.429],[-32.658,-35.348],[0,0],[0,0],[-34.481,35.437],[32.568,33.837]],"v":[[168.402,323.543],[307.278,175.855],[310.568,47.695],[188.989,47.857],[122.383,118.689],[50.12,195.537],[46.83,323.705]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.226922487745,0.270561427696,0.314200367647,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":51,"ix":5},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":0,"s":[0],"e":[30]},{"t":40}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":0,"s":[0],"e":[360]},{"t":40}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":41,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"pre-bottom","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[170.46,267.714,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[143,143,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-31.766,-33.004],[-34.481,35.437],[0,0],[32.662,35.352],[34.489,-35.437]],"o":[[0,0],[-34.481,35.437],[32.568,33.837],[0,0],[34.481,-35.429],[-32.658,-35.348],[0,0]],"v":[[122.383,118.689],[50.12,195.537],[46.83,323.705],[168.402,323.543],[307.278,175.855],[310.568,47.695],[188.989,47.857]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.226922487745,0.270561427696,0.314200367647,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":51,"ix":5},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":0,"s":[0],"e":[30]},{"t":40}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.13],"y":[1]},"o":{"x":[0.437],"y":[0]},"n":["0p13_1_0p437_0"],"t":0,"s":[0],"e":[360]},{"t":40}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":41,"st":0,"bm":0}],"markers":[{"tm":0.06944444444444,"cm":"1","dr":0}]} \ No newline at end of file diff --git a/src/loaders/lottie/tvgLottieExpressions.cpp b/src/loaders/lottie/tvgLottieExpressions.cpp index 93477fc0..b5489be9 100644 --- a/src/loaders/lottie/tvgLottieExpressions.cpp +++ b/src/loaders/lottie/tvgLottieExpressions.cpp @@ -100,12 +100,56 @@ static unsigned long _idByName(jerry_value_t args) static jerry_value_t _toComp(const jerry_call_info_t* info, const jerry_value_t args[], const jerry_length_t argsCnt) { - TVGERR("LOTTIE", "toComp is not supported in expressions!"); + TVGLOG("LOTTIE", "toComp is not supported in expressions!"); return jerry_undefined(); } +static jerry_value_t _value(float frameNo, LottieProperty* property) +{ + switch (property->type) { + case LottieProperty::Type::Point: { + auto value = jerry_object(); + auto pos = (*static_cast(property))(frameNo); + auto val1 = jerry_number(pos.x); + auto val2 = jerry_number(pos.y); + jerry_object_set_index(value, 0, val1); + jerry_object_set_index(value, 1, val2); + jerry_value_free(val1); + jerry_value_free(val2); + return value; + } + case LottieProperty::Type::Float: { + return jerry_number((*static_cast(property))(frameNo)); + } + case LottieProperty::Type::Opacity: { + return jerry_number((*static_cast(property))(frameNo)); + } + case LottieProperty::Type::PathSet: { + auto value = jerry_object(); + jerry_object_set_native_ptr(value, nullptr, property); + return value; + } + case LottieProperty::Type::Position: { + auto value = jerry_object(); + auto pos = (*static_cast(property))(frameNo); + auto val1 = jerry_number(pos.x); + auto val2 = jerry_number(pos.y); + jerry_object_set_index(value, 0, val1); + jerry_object_set_index(value, 1, val2); + jerry_value_free(val1); + jerry_value_free(val2); + return value; + } + default: { + TVGERR("LOTTIE", "Non supported type for value? = %d", (int) property->type); + } + } + return jerry_undefined(); +} + + static void _buildTransform(jerry_value_t context, float frameNo, LottieTransform* transform) { if (!transform) return; @@ -113,50 +157,23 @@ static void _buildTransform(jerry_value_t context, float frameNo, LottieTransfor auto obj = jerry_object(); jerry_object_set_sz(context, "transform", obj); - { - auto anchorPoint = jerry_object(); - auto value = transform->anchor(frameNo); - auto val1 = jerry_number(value.x); - auto val2 = jerry_number(value.y); - jerry_object_set_index(anchorPoint, 0, val1); - jerry_object_set_index(anchorPoint, 1, val2); - jerry_object_set_sz(obj, "anchorPoint", anchorPoint); - jerry_value_free(val1); - jerry_value_free(val2); - jerry_value_free(anchorPoint); - } + auto anchorPoint = _value(frameNo, &transform->anchor); + jerry_object_set_sz(obj, "anchorPoint", anchorPoint); + jerry_value_free(anchorPoint); - { - auto position = jerry_object(); - auto value = transform->position(frameNo); - auto val1 = jerry_number(value.x); - auto val2 = jerry_number(value.y); - jerry_object_set_index(position, 0, val1); - jerry_object_set_index(position, 1, val2); - jerry_object_set_sz(obj, "position", position); - jerry_value_free(val1); - jerry_value_free(val2); - jerry_value_free(position); - } + auto position = _value(frameNo, &transform->position); + jerry_object_set_sz(obj, "position", position); + jerry_value_free(position); - { - auto scale = jerry_object(); - auto value = transform->scale(frameNo); - auto val1 = jerry_number(value.x); - auto val2 = jerry_number(value.y); - jerry_object_set_index(scale, 0, val1); - jerry_object_set_index(scale, 1, val2); - jerry_object_set_sz(obj, "scale", scale); - jerry_value_free(val1); - jerry_value_free(val2); - jerry_value_free(scale); - } + auto scale = _value(frameNo, &transform->scale); + jerry_object_set_sz(obj, "scale", scale); + jerry_value_free(scale); - auto rotation = jerry_number(transform->rotation(frameNo)); + auto rotation = _value(frameNo, &transform->rotation); jerry_object_set_sz(obj, "rotation", rotation); jerry_value_free(rotation); - auto opacity = jerry_number(transform->opacity(frameNo)); + auto opacity = _value(frameNo, &transform->opacity); jerry_object_set_sz(obj, "opacity", opacity); jerry_value_free(opacity); @@ -315,50 +332,6 @@ static void _buildLayer(jerry_value_t context, float frameNo, LottieLayer* layer } -static jerry_value_t _value(float frameNo, LottieExpression* exp) -{ - switch (exp->property->type) { - case LottieProperty::Type::Point: { - auto value = jerry_object(); - auto pos = (*static_cast(exp->property))(frameNo); - auto val1 = jerry_number(pos.x); - auto val2 = jerry_number(pos.y); - jerry_object_set_index(value, 0, val1); - jerry_object_set_index(value, 1, val2); - jerry_value_free(val1); - jerry_value_free(val2); - return value; - } - case LottieProperty::Type::Float: { - return jerry_number((*static_cast(exp->property))(frameNo)); - } - case LottieProperty::Type::Opacity: { - return jerry_number((*static_cast(exp->property))(frameNo)); - } - case LottieProperty::Type::PathSet: { - auto value = jerry_object(); - jerry_object_set_native_ptr(value, nullptr, exp->property); - return value; - } - case LottieProperty::Type::Position: { - auto value = jerry_object(); - auto pos = (*static_cast(exp->property))(frameNo); - auto val1 = jerry_number(pos.x); - auto val2 = jerry_number(pos.y); - jerry_object_set_index(value, 0, val1); - jerry_object_set_index(value, 1, val2); - jerry_value_free(val1); - jerry_value_free(val2); - return value; - } - default: { - TVGERR("LOTTIE", "Non supported type for value? = %d", (int) exp->property->type); - } - } - return jerry_undefined(); -} - - static jerry_value_t _addsub(const jerry_value_t args[], float addsub) { //1d @@ -634,7 +607,7 @@ static jerry_value_t _rad2deg(const jerry_call_info_t* info, const jerry_value_t static jerry_value_t _effect(const jerry_call_info_t* info, const jerry_value_t args[], const jerry_length_t argsCnt) { - TVGERR("LOTTIE", "effect is not supported in expressions!"); + TVGLOG("LOTTIE", "effect is not supported in expressions!"); return jerry_undefined(); } @@ -642,7 +615,7 @@ static jerry_value_t _effect(const jerry_call_info_t* info, const jerry_value_t static jerry_value_t _fromCompToSurface(const jerry_call_info_t* info, const jerry_value_t args[], const jerry_length_t argsCnt) { - TVGERR("LOTTIE", "fromCompToSurface is not supported in expressions!"); + TVGLOG("LOTTIE", "fromCompToSurface is not supported in expressions!"); return jerry_undefined(); } @@ -712,13 +685,40 @@ static jerry_value_t _nearestKey(const jerry_call_info_t* info, const jerry_valu return obj; } +static jerry_value_t _property(const jerry_call_info_t* info, const jerry_value_t args[], const jerry_length_t argsCnt) +{ + auto data = static_cast(jerry_object_get_native_ptr(info->function, &freeCb)); + auto property = data->obj->property(jerry_value_as_int32(args[0])); + if (!property) return jerry_undefined(); + return _value(data->frameNo, property); +} + + +static jerry_value_t _propertyGroup(const jerry_call_info_t* info, const jerry_value_t args[], const jerry_length_t argsCnt) +{ + auto data = static_cast(jerry_object_get_native_ptr(info->function, &freeCb)); + auto level = jerry_value_as_int32(args[0]); + + //intermediate group + if (level == 1) { + auto group = jerry_function_external(_property); + jerry_object_set_native_ptr(group, &freeCb, _expcontent(data->exp, data->frameNo, data->obj)); + jerry_object_set_sz(group, "", group); + return group; + } + + TVGLOG("LOTTIE", "propertyGroup(%d)?", level); + + return jerry_undefined(); +} + static jerry_value_t _valueAtTime(const jerry_call_info_t* info, const jerry_value_t args[], const jerry_length_t argsCnt) { auto exp = static_cast(jerry_object_get_native_ptr(info->function, nullptr)); auto time = jerry_value_as_number(args[0]); auto frameNo = exp->comp->frameAtTime(time); - return _value(frameNo, exp); + return _value(frameNo, exp->property); } @@ -747,7 +747,7 @@ static jerry_value_t _velocityAtTime(const jerry_call_info_t* info, const jerry_ break; } default: { - TVGERR("LOTTIE", "Non supported type for velocityAtTime?"); + TVGLOG("LOTTIE", "Non supported type for velocityAtTime?"); return jerry_undefined(); } } @@ -791,7 +791,7 @@ static jerry_value_t _speedAtTime(const jerry_call_info_t* info, const jerry_val break; } default: { - TVGERR("LOTTIE", "Non supported type for speedAtTime?"); + TVGLOG("LOTTIE", "Non supported type for speedAtTime?"); return jerry_undefined(); } } @@ -816,7 +816,7 @@ static bool _loopOutCommon(LottieExpression* exp, const jerry_value_t args[], co } if (exp->loop.mode != LottieExpression::LoopMode::OutCycle && exp->loop.mode != LottieExpression::LoopMode::OutPingPong) { - TVGERR("LOTTIE", "Not supported loopOut type = %d", exp->loop.mode); + TVGLOG("LOTTIE", "Not supported loopOut type = %d", exp->loop.mode); return false; } @@ -868,7 +868,7 @@ static bool _loopInCommon(LottieExpression* exp, const jerry_value_t args[], con } if (exp->loop.mode != LottieExpression::LoopMode::InCycle && exp->loop.mode != LottieExpression::LoopMode::InPingPong) { - TVGERR("LOTTIE", "Not supported loopIn type = %d", exp->loop.mode); + TVGLOG("LOTTIE", "Not supported loopIn type = %d", exp->loop.mode); return false; } @@ -911,7 +911,7 @@ static jerry_value_t _key(const jerry_call_info_t* info, const jerry_value_t arg auto key = jerry_value_as_int32(args[0]); auto frameNo = exp->property->frameNo(key); auto time = jerry_number(exp->comp->timeAtFrame(frameNo)); - auto value = _value(frameNo, exp); + auto value = _value(frameNo, exp->property); auto obj = jerry_object(); jerry_object_set_sz(obj, EXP_TIME, time); @@ -991,7 +991,7 @@ static void _buildPath(jerry_value_t context, LottieExpression* exp) static void _buildProperty(float frameNo, jerry_value_t context, LottieExpression* exp) { - auto value = _value(frameNo, exp); + auto value = _value(frameNo, exp->property); jerry_object_set_sz(context, EXP_VALUE, value); jerry_value_free(value); @@ -1058,8 +1058,13 @@ static void _buildProperty(float frameNo, jerry_value_t context, LottieExpressio jerry_object_set_sz(context, "numKeys", numKeys); jerry_value_free(numKeys); - //propertyGroup(countUp = 1) + auto propertyGroup = jerry_function_external(_propertyGroup); + jerry_object_set_native_ptr(propertyGroup, &freeCb, _expcontent(exp, frameNo, exp->object)); + jerry_object_set_sz(context, "propertyGroup", propertyGroup); + jerry_value_free(propertyGroup); + //propertyIndex + //name //content("name"), #look for the named property from a layer @@ -1067,6 +1072,9 @@ static void _buildProperty(float frameNo, jerry_value_t context, LottieExpressio jerry_object_set_sz(context, EXP_CONTENT, content); jerry_object_set_native_ptr(content, &freeCb, _expcontent(exp, frameNo, exp->layer)); jerry_value_free(content); + + //expansions per types + if (exp->property->type == LottieProperty::Type::PathSet) _buildPath(context, exp); } @@ -1301,13 +1309,17 @@ jerry_value_t LottieExpressions::evaluate(float frameNo, LottieExpression* exp) buildComp(thisComp, frameNo, exp->layer->comp, exp); //update global context values + _buildProperty(frameNo, global, exp); + + //this layer jerry_object_set_native_ptr(thisLayer, nullptr, exp->layer); _buildLayer(thisLayer, frameNo, exp->layer, exp->comp->root, exp); + //this property jerry_object_set_native_ptr(thisProperty, nullptr, exp->property); - _buildProperty(frameNo, global, exp); + _buildProperty(frameNo, thisProperty, exp); - if (exp->property->type == LottieProperty::Type::PathSet) _buildPath(thisProperty, exp); + //expansions per object type if (exp->object->type == LottieObject::Transform) _buildTransform(global, frameNo, static_cast(exp->object)); //evaluate the code diff --git a/src/loaders/lottie/tvgLottieModel.h b/src/loaders/lottie/tvgLottieModel.h index 0e19daf5..34945fc3 100644 --- a/src/loaders/lottie/tvgLottieModel.h +++ b/src/loaders/lottie/tvgLottieModel.h @@ -119,6 +119,7 @@ struct LottieObject } virtual bool mergeable() { return false; } + virtual LottieProperty* property(uint16_t ix) { return nullptr; } unsigned long id = 0; Type type; @@ -345,6 +346,13 @@ struct LottieEllipse : LottieShape LottieShape::prepare(LottieObject::Ellipse); } + LottieProperty* property(uint16_t ix) override + { + if (position.ix == ix) return &position; + if (size.ix == ix) return &size; + return nullptr; + } + LottiePosition position = Point{0.0f, 0.0f}; LottiePoint size = Point{0.0f, 0.0f}; }; diff --git a/src/loaders/lottie/tvgLottieParser.cpp b/src/loaders/lottie/tvgLottieParser.cpp index 9a9fb2be..f12cd5c6 100644 --- a/src/loaders/lottie/tvgLottieParser.cpp +++ b/src/loaders/lottie/tvgLottieParser.cpp @@ -513,6 +513,8 @@ void LottieParser::parseProperty(T& prop, LottieObject* obj) comp->slots.push(new LottieSlot(sid, obj, type)); } else if (KEY_AS("x")) { prop.exp = _expression(getStringCopy(), comp, context.layer, context.parent, &prop); + } else if (KEY_AS("ix")) { + prop.ix = getInt(); } else skip(key); } prop.type = type; diff --git a/src/loaders/lottie/tvgLottieProperty.h b/src/loaders/lottie/tvgLottieProperty.h index 137c46b0..ca022c29 100644 --- a/src/loaders/lottie/tvgLottieProperty.h +++ b/src/loaders/lottie/tvgLottieProperty.h @@ -179,10 +179,10 @@ struct LottieProperty LottieExpression* exp = nullptr; Type type; - - virtual ~LottieProperty() {} + uint8_t ix; //property index //TODO: Apply common bodies? + virtual ~LottieProperty() {} virtual uint32_t frameCnt() = 0; virtual uint32_t nearest(float time) = 0; virtual float frameNo(int32_t key) = 0; @@ -206,7 +206,7 @@ struct LottieExpression float in = FLT_MAX; //looping duration in frame number LoopMode mode = None; } loop; -; + ~LottieExpression() { free(code);