{"v":"4.6.3","fr":60,"ip":0,"op":61,"w":800,"h":600,"nm":"Elelphant trunk","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"pupilL","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":90},"p":{"s":true,"x":{"a":0,"k":362.5,"x":"var $bm_rt;\n$bm_rt = sum(div(thisComp.layer('Trunk Fill::End').transform.position[0], 25), 335);"},"y":{"a":0,"k":207.5}},"a":{"a":0,"k":[-48.5,-92.5,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[20,20]},"p":{"a":0,"k":[16,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"fl","c":{"a":0,"k":[0.5411765,0.5411765,0.5411765,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-48.5,-92.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":1800,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"pupilR","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":90},"p":{"s":true,"x":{"a":0,"k":462.5,"x":"var $bm_rt;\n$bm_rt = sum(div(thisComp.layer('Trunk Fill::End').transform.position[0], 25), 435);"},"y":{"a":0,"k":207.5}},"a":{"a":0,"k":[-48.5,-92.5,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[20,20]},"p":{"a":0,"k":[16,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"fl","c":{"a":0,"k":[0.5411765,0.5411765,0.5411765,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-48.5,-92.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":1800,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"eyeR","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":90},"p":{"a":0,"k":[452.5,207.5,0]},"a":{"a":0,"k":[-48.5,-92.5,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[61,61]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"st","c":{"a":0,"k":[0.5411765,0.5411765,0.5411765,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":18},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[-48.5,-92.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":1800,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":4,"ty":4,"nm":"eyeL","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":90},"p":{"a":0,"k":[351.5,207.5,0]},"a":{"a":0,"k":[-48.5,-92.5,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[61,61]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"st","c":{"a":0,"k":[0.5411765,0.5411765,0.5411765,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":18},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[-48.5,-92.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":1800,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":5,"ty":4,"nm":"Trunk Fill TIP::End","parent":13,"hd":true,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":96.434,"x":"var $bm_rt;\ntry {\n    var parentRot = hasParent ? parentTotal() : 0;\n    var rotCalc = sub(thisLayer('ADBE Root Vectors Group')('Admin')('Transform')('Rotation'), parentRot);\n    $bm_rt = sum(rotCalc, value);\n} catch (err) {\n    $bm_rt = value;\n}\n;\nfunction parentTotal() {\n    var parentVal = 0;\n    var layerChain = 'thisLayer';\n    while (eval([layerChain][0]).hasParent) {\n        layerChain += '.parent';\n        parentVal += eval([layerChain][0]).rotation;\n    }\n    return parentVal;\n}"},"p":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100],"x":"var $bm_rt;\n$bm_rt = [\n    100,\n    100\n];"}},"ao":0,"ef":[{"ty":5,"nm":"RubberHose 2","mn":"Pseudo/3bf5uID/RubberHose_2","ix":1,"en":1,"ef":[{"ty":0,"nm":"Hose Length","mn":"Pseudo/3bf5uID/RubberHose_2-0001","ix":1,"v":{"a":0,"k":700}},{"ty":0,"nm":"Bend Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0002","ix":2,"v":{"a":0,"k":100}},{"ty":0,"nm":"Realism","mn":"Pseudo/3bf5uID/RubberHose_2-0003","ix":3,"v":{"a":0,"k":0}},{"ty":0,"nm":"Bend Direction","mn":"Pseudo/3bf5uID/RubberHose_2-0004","ix":4,"v":{"a":0,"k":-12}},{"ty":7,"nm":"Auto Rotate Start","mn":"Pseudo/3bf5uID/RubberHose_2-0005","ix":5,"v":{"a":0,"k":0}},{"ty":7,"nm":"Auto Rotate End","mn":"Pseudo/3bf5uID/RubberHose_2-0006","ix":6,"v":{"a":0,"k":1}},{"ty":6,"nm":"Math Stuff","mn":"Pseudo/3bf5uID/RubberHose_2-0007","ix":7,"v":0},{"ty":3,"nm":"A","mn":"Pseudo/3bf5uID/RubberHose_2-0008","ix":8,"v":{"a":0,"k":[36,43],"x":"var $bm_rt;\n$bm_rt = thisLayer.toComp([\n    0,\n    0,\n    0\n]);"}},{"ty":3,"nm":"B","mn":"Pseudo/3bf5uID/RubberHose_2-0009","ix":9,"v":{"a":0,"k":[0,0],"x":"var $bm_rt;\ntry {\n    var b = thisLayer(2)('Admin')(2)('B')(2)(1)._name;\n    $bm_rt = thisComp.layer(b).toComp([\n        0,\n        0,\n        0\n    ]);\n} catch (err) {\n    $bm_rt = value;\n}"}},{"ty":0,"nm":"Outer Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0010","ix":10,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar a = thisLayer(4)('RubberHose 2')('A');\nvar b = thisLayer(4)('RubberHose 2')('B');\nvar s = length(a, b);\n$bm_rt = mul(Math.sin(0.78539816339), s);"}},{"ty":0,"nm":"Inner Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0011","ix":11,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar eff = thisLayer(4)('RubberHose 2');\nvar bendRad = eff('Bend Radius');\nvar hoseLength = div(eff('Hose Length'), 2);\nvar realism = eff('Realism');\nvar bendDir = div(eff('Bend Direction'), 100);\nvar sFac = eff('Parent Scale');\nvar straight = eff('Straight');\nvar autoFlop = eff('AutoFlop');\nvar roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\nvar innerRad;\nif (hoseLength > straight) {\n    innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n    innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n    innerRad = linear(Math.abs(bendDir), straight, innerRad);\n} else {\n    innerRad = straight;\n}\ninnerRad *= Math.abs(sFac);\ninnerRad = linear(Math.abs(autoFlop), mul(straight, Math.max(Math.abs(sFac), 0.001)), innerRad);\n$bm_rt = innerRad;"}},{"ty":0,"nm":"Straight","mn":"Pseudo/3bf5uID/RubberHose_2-0012","ix":12,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar sFac = thisLayer(4)('RubberHose 2')('Parent Scale');\nvar outerRad = div(thisLayer(4)('RubberHose 2')('Outer Radius'), Math.max(Math.abs(sFac), 0.001));\n;\n$bm_rt = div(mul(1.4142135623731, outerRad), 2);"}},{"ty":0,"nm":"Base Rotation","mn":"Pseudo/3bf5uID/RubberHose_2-0013","ix":13,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar a = thisLayer(4)('RubberHose 2')('A');\nvar b = thisLayer(4)('RubberHose 2')('B');\n$bm_rt = radiansToDegrees(Math.atan2(sub(a[1], b[1]), sub(a[0], b[0])));"}},{"ty":0,"nm":"AutoFlop","mn":"Pseudo/3bf5uID/RubberHose_2-0014","ix":14,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar hasAF = false, isEnabled = false, output;\ntry {\n    var lyrAF = thisComp.layer(sum(thisLayer._name.split('::')[0], '::AutoFlop'));\n    isEnabled = lyrAF(4)('Enable')(1);\n    var falloffAngle = lyrAF(4)('Falloff')(1);\n    hasAF = true;\n    var a = thisLayer.toComp([\n            0,\n            0,\n            0\n        ]);\n    var b = thisLayer(4)('RubberHose 2')('B');\n} catch (e) {\n}\nif (hasAF && isEnabled == 1) {\n    var threshRot = lyrAF('ADBE Transform Group')('ADBE Rotate Z');\n    threshRot %= 360;\n    var ctrlAngle = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n    var offsetAngle = sub(threshRot, ctrlAngle);\n    offsetAngle %= 360;\n    var sign = offsetAngle > 0 && offsetAngle < 180 || offsetAngle < -180 ? -1 : 1;\n    var absAngle = Math.abs(offsetAngle);\n    if (absAngle > 90) {\n        absAngle = Math.abs(sub(absAngle, 180));\n    }\n    if (absAngle > 90) {\n        absAngle = Math.abs(sub(absAngle, 180));\n    }\n    output = linear(absAngle, 0, falloffAngle, 0, 1);\n    output *= sign;\n} else {\n    output = 1;\n}\n$bm_rt = output;\nfunction parentTotal() {\n    var parentVal = 0;\n    var layerChain = 'thisLayer';\n    while (eval([layerChain][0]).hasParent) {\n        layerChain += '.parent';\n        parentVal += eval([layerChain][0]).rotation;\n    }\n    return parentVal;\n}"}},{"ty":0,"nm":"Parent Scale","mn":"Pseudo/3bf5uID/RubberHose_2-0015","ix":15,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar sFactor = 1;\nvar scaleNorm = 0;\nvar layerChain = 'thisLayer';\nwhile (eval([layerChain][0]).hasParent) {\n    layerChain += '.parent';\n    scaleNorm = div(eval(layerChain)('ADBE Transform Group')('ADBE Scale')[0], 100);\n    sFactor = mul(sFactor, scaleNorm);\n}\n$bm_rt = sFactor;"}},{"ty":6,"nm":"","mn":"Pseudo/3bf5uID/RubberHose_2-0016","ix":16,"v":0}]}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Fill TIP::End","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Fill TIP::Start","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.03","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","cl":"03"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"x":"var $bm_rt;\nvar eff = thisLayer(4)('RubberHose 2');\nvar autoRotate = eff('Auto Rotate End');\nif (autoRotate == 1) {\n    var a = thisLayer.toComp([\n            0,\n            0,\n            0\n        ]);\n    var b = eff('B');\n    var s = length(a, b);\n    var sFac = eff('Parent Scale');\n    var autoFlop = 1;\n    var realism = eff('Realism');\n    var bendDir = div(eff('Bend Direction'), 100);\n    var hoseLength = div(eff('Hose Length'), 2);\n    var bendRad = eff('Bend Radius');\n    var autoFlop = eff('AutoFlop');\n    var baseRot = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n    var outerRad = mul(Math.sin(0.78539816339), s);\n    var straight = div(mul(1.4142135623731, outerRad), 2);\n    straight /= Math.max(Math.abs(sFac), 0.001);\n    var roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\n    var innerRad;\n    if (hoseLength > straight) {\n        innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n        innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n        innerRad = linear(Math.abs(bendDir), straight, innerRad);\n    } else {\n        innerRad = straight;\n    }\n    innerRad = linear(Math.abs(autoFlop), straight, innerRad);\n    var flopDir = 1;\n    if (bendDir < 0) {\n        flopDir = -1;\n    }\n    flopDir *= autoFlop;\n    var opp = mul(sub(innerRad, straight), flopDir);\n    var theta = Math.atan(div(opp, Math.max(straight, 0.001)));\n    var bendAngle = radiansToDegrees(theta);\n    if (sFac < 0) {\n        baseRot *= -1;\n    }\n    bendRad *= div(div(theta, $bm_neg(Math.PI)), linear(s, hoseLength, 0, 2, 0.9));\n    var rotCalc = sub(sum(baseRot, bendAngle), bendRad);\n    $bm_rt = rotCalc;\n} else {\n    $bm_rt = value;\n}\n;","ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"nm":"Circle","mn":"ADBE Vector Shape - Ellipse"},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-75,0],[75,0]],"c":false}},"nm":"01","mn":"ADBE Vector Shape - Group"},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-30],[0,30]],"c":false}},"nm":"02","mn":"ADBE Vector Shape - Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[30,30],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ControlShape","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"st","c":{"a":0,"k":[1,0.56,0,1],"x":"var $bm_rt;\nif (thisLayer.active) {\n    try {\n        var eff = thisLayer(4)('RubberHose 2');\n        var a = thisLayer.toComp([\n                0,\n                0,\n                0\n            ]);\n        var b = eff('B');\n        var straight = eff('Straight');\n        var hoseLength = div(eff('Hose Length'), 2);\n        if (straight > hoseLength) {\n            $bm_rt = [\n                0.51,\n                0.83,\n                0.98,\n                1\n            ];\n        } else {\n            $bm_rt = value;\n        }\n    } catch (err) {\n        $bm_rt = value;\n    }\n} else {\n    $bm_rt = value;\n}"},"o":{"a":0,"k":100},"w":{"a":0,"k":3},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];","ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"x":"var $bm_rt;\n$bm_rt = [\n    100,\n    100\n];","ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Control Point","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group"}],"ip":0,"op":1800,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":6,"ty":4,"nm":"Trunk Fill TIP::Start","parent":14,"hd":true,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0,"x":"var $bm_rt;\ntry {\n    var parentRot = hasParent ? parentTotal() : 0;\n    var rotCalc = sub(thisLayer('ADBE Root Vectors Group')('Admin')('Transform')('Rotation'), parentRot);\n    $bm_rt = sum(rotCalc, value);\n} catch (err) {\n    $bm_rt = value;\n}\n;\nfunction parentTotal() {\n    var parentVal = 0;\n    var layerChain = 'thisLayer';\n    while (eval([layerChain][0]).hasParent) {\n        layerChain += '.parent';\n        parentVal += eval([layerChain][0]).rotation;\n    }\n    return parentVal;\n}"},"p":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100],"x":"var $bm_rt;\n$bm_rt = [\n    100,\n    100\n];"}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Fill TIP::End","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Fill TIP::Start","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.03","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","cl":"03"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"x":"var $bm_rt;\ntry {\n    var eff = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    var autoRotate = eff('Auto Rotate Start');\n    if (autoRotate == 1) {\n        var a = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name).toComp([\n                0,\n                0,\n                0\n            ]);\n        var b = thisLayer.toComp([\n                0,\n                0,\n                0\n            ]);\n        var s = length(a, b);\n        var sFac = eff('Parent Scale');\n        var autoFlop = 1;\n        var realism = eff('Realism');\n        var bendDir = div(eff('Bend Direction'), 100);\n        var hoseLength = div(eff('Hose Length'), 2);\n        var bendRad = eff('Bend Radius');\n        var autoFlop = eff('AutoFlop');\n        var baseRot = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n        var outerRad = mul(Math.sin(0.78539816339), s);\n        var straight = div(mul(1.4142135623731, outerRad), 2);\n        straight /= Math.max(Math.abs(sFac), 0.001);\n        var roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\n        var innerRad;\n        if (straight <= hoseLength) {\n            innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n            innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n            innerRad = linear(Math.abs(bendDir), straight, innerRad);\n        } else {\n            innerRad = straight;\n        }\n        innerRad = linear(Math.abs(autoFlop), straight, innerRad);\n        var flopDir = 1;\n        if (bendDir < 0) {\n            flopDir = -1;\n        }\n        flopDir *= autoFlop;\n        var opp = mul(sub(innerRad, straight), flopDir);\n        var theta = Math.atan(div(opp, Math.max(straight, 0.001)));\n        var bendAngle = radiansToDegrees(theta);\n        if (sFac < 0) {\n            baseRot *= -1;\n        }\n        bendRad *= div(div(theta, $bm_neg(Math.PI)), linear(s, hoseLength, 0, 2, 0.9));\n        var rotCalc = sum(sub(baseRot, bendAngle), bendRad);\n        $bm_rt = rotCalc;\n    } else {\n        $bm_rt = 0;\n    }\n    ;\n} catch (err) {\n    $bm_rt = value;\n}\n;","ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"nm":"Circle","mn":"ADBE Vector Shape - Ellipse"},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-75,0],[75,0]],"c":false}},"nm":"01","mn":"ADBE Vector Shape - Group"},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-30],[0,30]],"c":false}},"nm":"02","mn":"ADBE Vector Shape - Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[30,30],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ControlShape","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"st","c":{"a":0,"k":[1,0.56,0,1],"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name);\n    $bm_rt = ctrl(2)('Control Point')(2)('Stroke 1')('Color');\n} catch (e) {\n    $bm_rt = value;\n}"},"o":{"a":0,"k":100},"w":{"a":0,"k":3},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];","ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"x":"var $bm_rt;\n$bm_rt = [\n    100,\n    100\n];","ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Control Point","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group"}],"ip":0,"op":1800,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":7,"ty":4,"nm":"Trunk Fill TIP::AutoFlop","hd":true,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[-518,404,0],"x":"var $bm_rt;\nvar p = [\n        0,\n        0\n    ];\ntry {\n    if (thisLayer.hasParent) {\n        p = parent.fromComp([\n            0,\n            0,\n            0\n        ]);\n    }\n    p;\n} catch (err) {\n}\nvar b = thisComp.layer(thisLayer(2)('Admin')(2)('B')(2)(1)._name).toComp([\n        0,\n        0,\n        0\n    ]);\n$bm_rt = sum(b, p);"},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ef":[{"ty":5,"nm":"Enable","mn":"ADBE Checkbox Control","ix":1,"en":1,"ef":[{"ty":7,"nm":"Checkbox","mn":"ADBE Checkbox Control-0001","ix":1,"v":{"a":0,"k":1}}]},{"ty":5,"nm":"Falloff","mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":25}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[4000,4000]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[2000,2000]},"p":{"a":0,"k":[1000,1000]},"r":{"a":0,"k":0},"nm":"Mask01","mn":"ADBE Vector Shape - Rect"},{"ty":"rc","d":1,"s":{"a":0,"k":[2000,2000]},"p":{"a":0,"k":[-1000,-1000]},"r":{"a":0,"k":0},"nm":"Mask02","mn":"ADBE Vector Shape - Rect"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-89.6,"x":"var $bm_rt;\nvar f = effect('Falloff')('ADBE Slider Control-0001');\nf = Math.max(0, f);\nf = Math.min(f, 88);\n$bm_rt = sum(f, 90);","ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"DynMask","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[2000,2000]},"p":{"a":0,"k":[1000,1000]},"r":{"a":0,"k":0},"nm":"Mask01","mn":"ADBE Vector Shape - Rect"},{"ty":"rc","d":1,"s":{"a":0,"k":[2000,2000]},"p":{"a":0,"k":[-1000,-1000]},"r":{"a":0,"k":0},"nm":"Mask02","mn":"ADBE Vector Shape - Rect"},{"ty":"tr","p":{"a":0,"k":[1000,1000],"ix":2},"a":{"a":0,"k":[1000,1000],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"StaticMask","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group"},{"ty":"mm","mm":3,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge"},{"ty":"fl","c":{"a":0,"k":[0.6499234,0.841822,1,1]},"o":{"a":0,"k":30},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"rp","c":{"a":0,"k":2,"ix":1},"o":{"a":0,"k":0,"ix":2},"ix":6,"tr":{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[-100,100],"ix":3},"r":{"a":0,"k":0,"ix":4},"so":{"a":0,"k":100,"ix":5},"eo":{"a":0,"k":100,"ix":6},"nm":"Transform"},"nm":"Mirror","mn":"ADBE Vector Filter - Repeater"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Falloff","np":6,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[0,4000]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"nm":"Line","mn":"ADBE Vector Shape - Rect"},{"ty":"st","c":{"a":0,"k":[0.1702206,0.669461,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":4,"x":"var $bm_rt;\n$bm_rt = 4;"},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Threshold","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Fill TIP::End","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Fill TIP::Start","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.03","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","cl":"03"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":3,"mn":"ADBE Vector Group"}],"ip":0,"op":1800,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":8,"ty":4,"nm":"Trunk Fill TIP","ks":{"o":{"a":0,"k":100,"x":"var $bm_rt;\n$bm_rt = 100;"},"r":{"a":0,"k":58,"x":"var $bm_rt;\nvar r = 0;\nif (thisLayer.hasParent) {\n    r = $bm_neg(parentTotal());\n}\n$bm_rt = r;\nfunction parentTotal() {\n    var parentVal = 0;\n    var layerChain = 'thisLayer';\n    while (eval([layerChain][0]).hasParent) {\n        layerChain += '.parent';\n        parentVal += eval([layerChain][0]).rotation;\n    }\n    return parentVal;\n}"},"p":{"a":0,"k":[393,306,0],"x":"var $bm_rt;\nvar p = [\n        0,\n        0\n    ];\ntry {\n    if (thisLayer.hasParent) {\n        p = parent.fromComp([\n            0,\n            0,\n            0\n        ]);\n    }\n    $bm_rt = p;\n} catch (err) {\n    $bm_rt = p;\n}"},"a":{"a":0,"k":[0,0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];"},"s":{"a":0,"k":[100,103.552,100],"x":"var $bm_rt;\nvar s = [\n        100,\n        100\n    ];\nif (hasParent) {\n    var sFactor = parentTotal();\n    s = [\n        s[0] * sFactor[0],\n        s[1] * sFactor[1]\n    ];\n}\n$bm_rt = s;\nfunction parentTotal() {\n    var sFactor = [\n            1,\n            1\n        ];\n    var scaleNorm = [\n            0,\n            0\n        ];\n    var layerChain = 'thisLayer';\n    while (eval([layerChain][0]).hasParent) {\n        layerChain += '.parent';\n        scaleNorm = eval([layerChain][0]).scale;\n        if (scaleNorm[0] != 0 && scaleNorm[1] != 0) {\n            scaleNorm = [\n                100 / scaleNorm[0],\n                100 / scaleNorm[1]\n            ];\n        }\n        sFactor = [\n            sFactor[0] * scaleNorm[0],\n            sFactor[1] * scaleNorm[1]\n        ];\n    }\n    return sFactor;\n}"}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"x":"var $bm_rt;\n$bm_rt = 4;","ix":3},"p":{"a":0,"k":[0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];","ix":4},"r":{"a":0,"k":0,"x":"var $bm_rt;\n$bm_rt = 0;","ix":5},"ir":{"a":0,"k":500,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":6},"is":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":8},"or":{"a":0,"k":113,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":7},"os":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":9},"ix":1,"nm":"LineForCurve","mn":"ADBE Vector Shape - Star"},{"ty":"tm","s":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":1},"e":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":2},"o":{"a":0,"k":-90,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":3},"m":1,"ix":2,"nm":"Line Halfer","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":2},"a":{"a":0,"k":[0,0],"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":1},"s":{"a":0,"k":[100,100],"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":3},"r":{"a":0,"k":45,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":6},"o":{"a":0,"k":100,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":7},"sk":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":4},"sa":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":5},"nm":"Transform"}],"nm":"Arc","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":1,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 2","mn":"ADBE Vector Filter - Trim"},{"ty":"st","c":{"a":0,"k":[1,0.9882354,0.9764706,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":31,"x":"var $bm_rt;\nvar sFac = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2')('Parent Scale');\n$bm_rt = mul(value, sFac);"},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    $bm_rt = ctrl('A');\n} catch (err) {\n    $bm_rt = value;\n}","ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"BaseHose","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Style","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Fill TIP::End","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[200,200],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Fill TIP::Start","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.03","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","cl":"03"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"x":"var $bm_rt;\n$bm_rt = 4;","ix":3},"p":{"a":0,"k":[0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];","ix":4},"r":{"a":0,"k":90,"x":"var $bm_rt;\n$bm_rt = 0;","ix":5},"ir":{"a":0,"k":200,"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    $bm_rt = ctrl('Inner Radius');\n} catch (err) {\n    $bm_rt = value;\n}","ix":6},"is":{"a":0,"k":100,"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    $bm_rt = ctrl('Bend Radius');\n} catch (err) {\n    $bm_rt = value;\n}","ix":8},"or":{"a":0,"k":200,"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    $bm_rt = ctrl('Outer Radius');\n} catch (err) {\n    $bm_rt = value;\n}","ix":7},"os":{"a":0,"k":0,"x":"var $bm_rt;\n$bm_rt = 0;","ix":9},"ix":1,"nm":"LineForCurve","mn":"ADBE Vector Shape - Star"},{"ty":"tm","s":{"a":0,"k":0.01,"x":"var $bm_rt;\n$bm_rt = 0.01;","ix":1},"e":{"a":0,"k":24.99,"x":"var $bm_rt;\n$bm_rt = 24.99;","ix":2},"o":{"a":0,"k":-90,"x":"var $bm_rt;\n$bm_rt = -90;","ix":3},"m":1,"ix":2,"nm":"Line Halfer","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];","ix":2},"a":{"a":0,"k":[0,0],"x":"var $bm_rt;\nvar s = thisProperty.propertyGroup(2)(2)(1)(7);\n$bm_rt = [\n    -s,\n    0\n];","ix":1},"s":{"a":0,"k":[100,100],"x":"var $bm_rt;\nvar flop;\ntry {\n    var eff = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    var bendDir = eff('Bend Direction');\n    var autoFlop = eff('AutoFlop');\n    flop = bendDir > 0 ? 1 : -1;\n    autoFlop > 0 ? 0 : flop *= -1;\n    var s = flop == 1 ? [\n            -100,\n            100\n        ] : [\n            100,\n            100\n        ];\n    if (eff('Parent Scale') < 0) {\n        s = [\n            -s[0],\n            s[1]\n        ];\n    }\n    $bm_rt = s;\n} catch (err) {\n    $bm_rt = value;\n}\n;","ix":3},"r":{"a":0,"k":45,"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    var baseRot = ctrl('Base Rotation');\n    var flop = content('Admin').content('ArcMath').transform.scale[0];\n    var rotOffset = flop < 0 ? -45 : 225;\n    $bm_rt = sum(baseRot, rotOffset);\n} catch (err) {\n    $bm_rt = value;\n}","ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ArcMath","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    $bm_rt = ctrl('A');\n} catch (err) {\n    $bm_rt = value;\n}","ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group"}],"ip":0,"op":1800,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":9,"ty":4,"nm":"Trunk Outline TIP::End","parent":13,"hd":true,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":-90.311,"x":"var $bm_rt;\ntry {\n    var parentRot = hasParent ? parentTotal() : 0;\n    var rotCalc = sub(thisLayer('ADBE Root Vectors Group')('Admin')('Transform')('Rotation'), parentRot);\n    $bm_rt = sum(rotCalc, value);\n} catch (err) {\n    $bm_rt = value;\n}\n;\nfunction parentTotal() {\n    var parentVal = 0;\n    var layerChain = 'thisLayer';\n    while (eval([layerChain][0]).hasParent) {\n        layerChain += '.parent';\n        parentVal += eval([layerChain][0]).rotation;\n    }\n    return parentVal;\n}"},"p":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100],"x":"var $bm_rt;\n$bm_rt = [\n    100,\n    100\n];"}},"ao":0,"ef":[{"ty":5,"nm":"RubberHose 2","mn":"Pseudo/3bf5uID/RubberHose_2","ix":1,"en":1,"ef":[{"ty":0,"nm":"Hose Length","mn":"Pseudo/3bf5uID/RubberHose_2-0001","ix":1,"v":{"a":0,"k":700}},{"ty":0,"nm":"Bend Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0002","ix":2,"v":{"a":0,"k":100}},{"ty":0,"nm":"Realism","mn":"Pseudo/3bf5uID/RubberHose_2-0003","ix":3,"v":{"a":0,"k":0}},{"ty":0,"nm":"Bend Direction","mn":"Pseudo/3bf5uID/RubberHose_2-0004","ix":4,"v":{"a":0,"k":-12}},{"ty":7,"nm":"Auto Rotate Start","mn":"Pseudo/3bf5uID/RubberHose_2-0005","ix":5,"v":{"a":0,"k":0}},{"ty":7,"nm":"Auto Rotate End","mn":"Pseudo/3bf5uID/RubberHose_2-0006","ix":6,"v":{"a":0,"k":1}},{"ty":6,"nm":"Math Stuff","mn":"Pseudo/3bf5uID/RubberHose_2-0007","ix":7,"v":0},{"ty":3,"nm":"A","mn":"Pseudo/3bf5uID/RubberHose_2-0008","ix":8,"v":{"a":0,"k":[36,43],"x":"var $bm_rt;\n$bm_rt = thisLayer.toComp([\n    0,\n    0,\n    0\n]);"}},{"ty":3,"nm":"B","mn":"Pseudo/3bf5uID/RubberHose_2-0009","ix":9,"v":{"a":0,"k":[0,0],"x":"var $bm_rt;\ntry {\n    var b = thisLayer(2)('Admin')(2)('B')(2)(1)._name;\n    $bm_rt = thisComp.layer(b).toComp([\n        0,\n        0,\n        0\n    ]);\n} catch (err) {\n    $bm_rt = value;\n}"}},{"ty":0,"nm":"Outer Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0010","ix":10,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar a = thisLayer(4)('RubberHose 2')('A');\nvar b = thisLayer(4)('RubberHose 2')('B');\nvar s = length(a, b);\n$bm_rt = mul(Math.sin(0.78539816339), s);"}},{"ty":0,"nm":"Inner Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0011","ix":11,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar eff = thisLayer(4)('RubberHose 2');\nvar bendRad = eff('Bend Radius');\nvar hoseLength = div(eff('Hose Length'), 2);\nvar realism = eff('Realism');\nvar bendDir = div(eff('Bend Direction'), 100);\nvar sFac = eff('Parent Scale');\nvar straight = eff('Straight');\nvar autoFlop = eff('AutoFlop');\nvar roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\nvar innerRad;\nif (hoseLength > straight) {\n    innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n    innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n    innerRad = linear(Math.abs(bendDir), straight, innerRad);\n} else {\n    innerRad = straight;\n}\ninnerRad *= Math.abs(sFac);\ninnerRad = linear(Math.abs(autoFlop), mul(straight, Math.max(Math.abs(sFac), 0.001)), innerRad);\n$bm_rt = innerRad;"}},{"ty":0,"nm":"Straight","mn":"Pseudo/3bf5uID/RubberHose_2-0012","ix":12,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar sFac = thisLayer(4)('RubberHose 2')('Parent Scale');\nvar outerRad = div(thisLayer(4)('RubberHose 2')('Outer Radius'), Math.max(Math.abs(sFac), 0.001));\n;\n$bm_rt = div(mul(1.4142135623731, outerRad), 2);"}},{"ty":0,"nm":"Base Rotation","mn":"Pseudo/3bf5uID/RubberHose_2-0013","ix":13,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar a = thisLayer(4)('RubberHose 2')('A');\nvar b = thisLayer(4)('RubberHose 2')('B');\n$bm_rt = radiansToDegrees(Math.atan2(sub(a[1], b[1]), sub(a[0], b[0])));"}},{"ty":0,"nm":"AutoFlop","mn":"Pseudo/3bf5uID/RubberHose_2-0014","ix":14,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar hasAF = false, isEnabled = false, output;\ntry {\n    var lyrAF = thisComp.layer(sum(thisLayer._name.split('::')[0], '::AutoFlop'));\n    isEnabled = lyrAF(4)('Enable')(1);\n    var falloffAngle = lyrAF(4)('Falloff')(1);\n    hasAF = true;\n    var a = thisLayer.toComp([\n            0,\n            0,\n            0\n        ]);\n    var b = thisLayer(4)('RubberHose 2')('B');\n} catch (e) {\n}\nif (hasAF && isEnabled == 1) {\n    var threshRot = lyrAF('ADBE Transform Group')('ADBE Rotate Z');\n    threshRot %= 360;\n    var ctrlAngle = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n    var offsetAngle = sub(threshRot, ctrlAngle);\n    offsetAngle %= 360;\n    var sign = offsetAngle > 0 && offsetAngle < 180 || offsetAngle < -180 ? -1 : 1;\n    var absAngle = Math.abs(offsetAngle);\n    if (absAngle > 90) {\n        absAngle = Math.abs(sub(absAngle, 180));\n    }\n    if (absAngle > 90) {\n        absAngle = Math.abs(sub(absAngle, 180));\n    }\n    output = linear(absAngle, 0, falloffAngle, 0, 1);\n    output *= sign;\n} else {\n    output = 1;\n}\n$bm_rt = output;\nfunction parentTotal() {\n    var parentVal = 0;\n    var layerChain = 'thisLayer';\n    while (eval([layerChain][0]).hasParent) {\n        layerChain += '.parent';\n        parentVal += eval([layerChain][0]).rotation;\n    }\n    return parentVal;\n}"}},{"ty":0,"nm":"Parent Scale","mn":"Pseudo/3bf5uID/RubberHose_2-0015","ix":15,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar sFactor = 1;\nvar scaleNorm = 0;\nvar layerChain = 'thisLayer';\nwhile (eval([layerChain][0]).hasParent) {\n    layerChain += '.parent';\n    scaleNorm = div(eval(layerChain)('ADBE Transform Group')('ADBE Scale')[0], 100);\n    sFactor = mul(sFactor, scaleNorm);\n}\n$bm_rt = sFactor;"}},{"ty":6,"nm":"","mn":"Pseudo/3bf5uID/RubberHose_2-0016","ix":16,"v":0}]}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Outline TIP::End","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Outline TIP::Start","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.03","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","cl":"03"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"x":"var $bm_rt;\nvar eff = thisLayer(4)('RubberHose 2');\nvar autoRotate = eff('Auto Rotate End');\nif (autoRotate == 1) {\n    var a = thisLayer.toComp([\n            0,\n            0,\n            0\n        ]);\n    var b = eff('B');\n    var s = length(a, b);\n    var sFac = eff('Parent Scale');\n    var autoFlop = 1;\n    var realism = eff('Realism');\n    var bendDir = div(eff('Bend Direction'), 100);\n    var hoseLength = div(eff('Hose Length'), 2);\n    var bendRad = eff('Bend Radius');\n    var autoFlop = eff('AutoFlop');\n    var baseRot = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n    var outerRad = mul(Math.sin(0.78539816339), s);\n    var straight = div(mul(1.4142135623731, outerRad), 2);\n    straight /= Math.max(Math.abs(sFac), 0.001);\n    var roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\n    var innerRad;\n    if (hoseLength > straight) {\n        innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n        innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n        innerRad = linear(Math.abs(bendDir), straight, innerRad);\n    } else {\n        innerRad = straight;\n    }\n    innerRad = linear(Math.abs(autoFlop), straight, innerRad);\n    var flopDir = 1;\n    if (bendDir < 0) {\n        flopDir = -1;\n    }\n    flopDir *= autoFlop;\n    var opp = mul(sub(innerRad, straight), flopDir);\n    var theta = Math.atan(div(opp, Math.max(straight, 0.001)));\n    var bendAngle = radiansToDegrees(theta);\n    if (sFac < 0) {\n        baseRot *= -1;\n    }\n    bendRad *= div(div(theta, $bm_neg(Math.PI)), linear(s, hoseLength, 0, 2, 0.9));\n    var rotCalc = sub(sum(baseRot, bendAngle), bendRad);\n    $bm_rt = rotCalc;\n} else {\n    $bm_rt = value;\n}\n;","ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"nm":"Circle","mn":"ADBE Vector Shape - Ellipse"},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-75,0],[75,0]],"c":false}},"nm":"01","mn":"ADBE Vector Shape - Group"},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-30],[0,30]],"c":false}},"nm":"02","mn":"ADBE Vector Shape - Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[30,30],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ControlShape","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"st","c":{"a":0,"k":[1,0.56,0,1],"x":"var $bm_rt;\nif (thisLayer.active) {\n    try {\n        var eff = thisLayer(4)('RubberHose 2');\n        var a = thisLayer.toComp([\n                0,\n                0,\n                0\n            ]);\n        var b = eff('B');\n        var straight = eff('Straight');\n        var hoseLength = div(eff('Hose Length'), 2);\n        if (straight > hoseLength) {\n            $bm_rt = [\n                0.51,\n                0.83,\n                0.98,\n                1\n            ];\n        } else {\n            $bm_rt = value;\n        }\n    } catch (err) {\n        $bm_rt = value;\n    }\n} else {\n    $bm_rt = value;\n}"},"o":{"a":0,"k":100},"w":{"a":0,"k":3},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];","ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"x":"var $bm_rt;\n$bm_rt = [\n    100,\n    100\n];","ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Control Point","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group"}],"ip":0,"op":1800,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":10,"ty":4,"nm":"Trunk Outline TIP::Start","parent":14,"hd":true,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0,"x":"var $bm_rt;\ntry {\n    var parentRot = hasParent ? parentTotal() : 0;\n    var rotCalc = sub(thisLayer('ADBE Root Vectors Group')('Admin')('Transform')('Rotation'), parentRot);\n    $bm_rt = sum(rotCalc, value);\n} catch (err) {\n    $bm_rt = value;\n}\n;\nfunction parentTotal() {\n    var parentVal = 0;\n    var layerChain = 'thisLayer';\n    while (eval([layerChain][0]).hasParent) {\n        layerChain += '.parent';\n        parentVal += eval([layerChain][0]).rotation;\n    }\n    return parentVal;\n}"},"p":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100],"x":"var $bm_rt;\n$bm_rt = [\n    100,\n    100\n];"}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Outline TIP::End","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Outline TIP::Start","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.03","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","cl":"03"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"x":"var $bm_rt;\ntry {\n    var eff = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    var autoRotate = eff('Auto Rotate Start');\n    if (autoRotate == 1) {\n        var a = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name).toComp([\n                0,\n                0,\n                0\n            ]);\n        var b = thisLayer.toComp([\n                0,\n                0,\n                0\n            ]);\n        var s = length(a, b);\n        var sFac = eff('Parent Scale');\n        var autoFlop = 1;\n        var realism = eff('Realism');\n        var bendDir = div(eff('Bend Direction'), 100);\n        var hoseLength = div(eff('Hose Length'), 2);\n        var bendRad = eff('Bend Radius');\n        var autoFlop = eff('AutoFlop');\n        var baseRot = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n        var outerRad = mul(Math.sin(0.78539816339), s);\n        var straight = div(mul(1.4142135623731, outerRad), 2);\n        straight /= Math.max(Math.abs(sFac), 0.001);\n        var roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\n        var innerRad;\n        if (straight <= hoseLength) {\n            innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n            innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n            innerRad = linear(Math.abs(bendDir), straight, innerRad);\n        } else {\n            innerRad = straight;\n        }\n        innerRad = linear(Math.abs(autoFlop), straight, innerRad);\n        var flopDir = 1;\n        if (bendDir < 0) {\n            flopDir = -1;\n        }\n        flopDir *= autoFlop;\n        var opp = mul(sub(innerRad, straight), flopDir);\n        var theta = Math.atan(div(opp, Math.max(straight, 0.001)));\n        var bendAngle = radiansToDegrees(theta);\n        if (sFac < 0) {\n            baseRot *= -1;\n        }\n        bendRad *= div(div(theta, $bm_neg(Math.PI)), linear(s, hoseLength, 0, 2, 0.9));\n        var rotCalc = sum(sub(baseRot, bendAngle), bendRad);\n        $bm_rt = rotCalc;\n    } else {\n        $bm_rt = 0;\n    }\n    ;\n} catch (err) {\n    $bm_rt = value;\n}\n;","ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"nm":"Circle","mn":"ADBE Vector Shape - Ellipse"},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-75,0],[75,0]],"c":false}},"nm":"01","mn":"ADBE Vector Shape - Group"},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-30],[0,30]],"c":false}},"nm":"02","mn":"ADBE Vector Shape - Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[30,30],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ControlShape","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"st","c":{"a":0,"k":[1,0.56,0,1],"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name);\n    $bm_rt = ctrl(2)('Control Point')(2)('Stroke 1')('Color');\n} catch (e) {\n    $bm_rt = value;\n}"},"o":{"a":0,"k":100},"w":{"a":0,"k":3},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];","ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"x":"var $bm_rt;\n$bm_rt = [\n    100,\n    100\n];","ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Control Point","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group"}],"ip":0,"op":1800,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":11,"ty":4,"nm":"Trunk Outline TIP::AutoFlop","hd":true,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[-518,404,0],"x":"var $bm_rt;\nvar p = [\n        0,\n        0\n    ];\ntry {\n    if (thisLayer.hasParent) {\n        p = parent.fromComp([\n            0,\n            0,\n            0\n        ]);\n    }\n    p;\n} catch (err) {\n}\nvar b = thisComp.layer(thisLayer(2)('Admin')(2)('B')(2)(1)._name).toComp([\n        0,\n        0,\n        0\n    ]);\n$bm_rt = sum(b, p);"},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ef":[{"ty":5,"nm":"Enable","mn":"ADBE Checkbox Control","ix":1,"en":1,"ef":[{"ty":7,"nm":"Checkbox","mn":"ADBE Checkbox Control-0001","ix":1,"v":{"a":0,"k":1}}]},{"ty":5,"nm":"Falloff","mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":25}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[4000,4000]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[2000,2000]},"p":{"a":0,"k":[1000,1000]},"r":{"a":0,"k":0},"nm":"Mask01","mn":"ADBE Vector Shape - Rect"},{"ty":"rc","d":1,"s":{"a":0,"k":[2000,2000]},"p":{"a":0,"k":[-1000,-1000]},"r":{"a":0,"k":0},"nm":"Mask02","mn":"ADBE Vector Shape - Rect"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-89.6,"x":"var $bm_rt;\nvar f = effect('Falloff')('ADBE Slider Control-0001');\nf = Math.max(0, f);\nf = Math.min(f, 88);\n$bm_rt = sum(f, 90);","ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"DynMask","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[2000,2000]},"p":{"a":0,"k":[1000,1000]},"r":{"a":0,"k":0},"nm":"Mask01","mn":"ADBE Vector Shape - Rect"},{"ty":"rc","d":1,"s":{"a":0,"k":[2000,2000]},"p":{"a":0,"k":[-1000,-1000]},"r":{"a":0,"k":0},"nm":"Mask02","mn":"ADBE Vector Shape - Rect"},{"ty":"tr","p":{"a":0,"k":[1000,1000],"ix":2},"a":{"a":0,"k":[1000,1000],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"StaticMask","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group"},{"ty":"mm","mm":3,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge"},{"ty":"fl","c":{"a":0,"k":[0.6499234,0.841822,1,1]},"o":{"a":0,"k":30},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"rp","c":{"a":0,"k":2,"ix":1},"o":{"a":0,"k":0,"ix":2},"ix":6,"tr":{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[-100,100],"ix":3},"r":{"a":0,"k":0,"ix":4},"so":{"a":0,"k":100,"ix":5},"eo":{"a":0,"k":100,"ix":6},"nm":"Transform"},"nm":"Mirror","mn":"ADBE Vector Filter - Repeater"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Falloff","np":6,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[0,4000]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"nm":"Line","mn":"ADBE Vector Shape - Rect"},{"ty":"st","c":{"a":0,"k":[0.1702206,0.669461,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":4,"x":"var $bm_rt;\n$bm_rt = 4;"},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Threshold","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Outline TIP::End","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Outline TIP::Start","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.03","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","cl":"03"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":3,"mn":"ADBE Vector Group"}],"ip":0,"op":1800,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":12,"ty":4,"nm":"Trunk Outline TIP","ks":{"o":{"a":0,"k":100,"x":"var $bm_rt;\n$bm_rt = 100;"},"r":{"a":0,"k":58,"x":"var $bm_rt;\nvar r = 0;\nif (thisLayer.hasParent) {\n    r = $bm_neg(parentTotal());\n}\n$bm_rt = r;\nfunction parentTotal() {\n    var parentVal = 0;\n    var layerChain = 'thisLayer';\n    while (eval([layerChain][0]).hasParent) {\n        layerChain += '.parent';\n        parentVal += eval([layerChain][0]).rotation;\n    }\n    return parentVal;\n}"},"p":{"a":0,"k":[393,306,0],"x":"var $bm_rt;\nvar p = [\n        0,\n        0\n    ];\ntry {\n    if (thisLayer.hasParent) {\n        p = parent.fromComp([\n            0,\n            0,\n            0\n        ]);\n    }\n    $bm_rt = p;\n} catch (err) {\n    $bm_rt = p;\n}"},"a":{"a":0,"k":[0,0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];"},"s":{"a":0,"k":[100,103.552,100],"x":"var $bm_rt;\nvar s = [\n        100,\n        100\n    ];\nif (hasParent) {\n    var sFactor = parentTotal();\n    s = [\n        s[0] * sFactor[0],\n        s[1] * sFactor[1]\n    ];\n}\n$bm_rt = s;\nfunction parentTotal() {\n    var sFactor = [\n            1,\n            1\n        ];\n    var scaleNorm = [\n            0,\n            0\n        ];\n    var layerChain = 'thisLayer';\n    while (eval([layerChain][0]).hasParent) {\n        layerChain += '.parent';\n        scaleNorm = eval([layerChain][0]).scale;\n        if (scaleNorm[0] != 0 && scaleNorm[1] != 0) {\n            scaleNorm = [\n                100 / scaleNorm[0],\n                100 / scaleNorm[1]\n            ];\n        }\n        sFactor = [\n            sFactor[0] * scaleNorm[0],\n            sFactor[1] * scaleNorm[1]\n        ];\n    }\n    return sFactor;\n}"}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"x":"var $bm_rt;\n$bm_rt = 4;","ix":3},"p":{"a":0,"k":[0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];","ix":4},"r":{"a":0,"k":0,"x":"var $bm_rt;\n$bm_rt = 0;","ix":5},"ir":{"a":0,"k":500,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":6},"is":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":8},"or":{"a":0,"k":113,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":7},"os":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":9},"ix":1,"nm":"LineForCurve","mn":"ADBE Vector Shape - Star"},{"ty":"tm","s":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":1},"e":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":2},"o":{"a":0,"k":-90,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":3},"m":1,"ix":2,"nm":"Line Halfer","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":2},"a":{"a":0,"k":[0,0],"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":1},"s":{"a":0,"k":[100,100],"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":3},"r":{"a":0,"k":45,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":6},"o":{"a":0,"k":100,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":7},"sk":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":4},"sa":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":5},"nm":"Transform"}],"nm":"Arc","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":1,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"st","c":{"a":0,"k":[0.5411765,0.5411765,0.5411765,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":63,"x":"var $bm_rt;\nvar sFac = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2')('Parent Scale');\n$bm_rt = mul(value, sFac);"},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    $bm_rt = ctrl('A');\n} catch (err) {\n    $bm_rt = value;\n}","ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"BaseHose","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Style","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Outline TIP::End","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[200,200],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Outline TIP::Start","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.03","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","cl":"03"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"x":"var $bm_rt;\n$bm_rt = 4;","ix":3},"p":{"a":0,"k":[0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];","ix":4},"r":{"a":0,"k":90,"x":"var $bm_rt;\n$bm_rt = 0;","ix":5},"ir":{"a":0,"k":200,"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    $bm_rt = ctrl('Inner Radius');\n} catch (err) {\n    $bm_rt = value;\n}","ix":6},"is":{"a":0,"k":100,"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    $bm_rt = ctrl('Bend Radius');\n} catch (err) {\n    $bm_rt = value;\n}","ix":8},"or":{"a":0,"k":200,"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    $bm_rt = ctrl('Outer Radius');\n} catch (err) {\n    $bm_rt = value;\n}","ix":7},"os":{"a":0,"k":0,"x":"var $bm_rt;\n$bm_rt = 0;","ix":9},"ix":1,"nm":"LineForCurve","mn":"ADBE Vector Shape - Star"},{"ty":"tm","s":{"a":0,"k":0.01,"x":"var $bm_rt;\n$bm_rt = 0.01;","ix":1},"e":{"a":0,"k":24.99,"x":"var $bm_rt;\n$bm_rt = 24.99;","ix":2},"o":{"a":0,"k":-90,"x":"var $bm_rt;\n$bm_rt = -90;","ix":3},"m":1,"ix":2,"nm":"Line Halfer","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];","ix":2},"a":{"a":0,"k":[0,0],"x":"var $bm_rt;\nvar s = thisProperty.propertyGroup(2)(2)(1)(7);\n$bm_rt = [\n    -s,\n    0\n];","ix":1},"s":{"a":0,"k":[100,100],"x":"var $bm_rt;\nvar flop;\ntry {\n    var eff = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    var bendDir = eff('Bend Direction');\n    var autoFlop = eff('AutoFlop');\n    flop = bendDir > 0 ? 1 : -1;\n    autoFlop > 0 ? 0 : flop *= -1;\n    var s = flop == 1 ? [\n            -100,\n            100\n        ] : [\n            100,\n            100\n        ];\n    if (eff('Parent Scale') < 0) {\n        s = [\n            -s[0],\n            s[1]\n        ];\n    }\n    $bm_rt = s;\n} catch (err) {\n    $bm_rt = value;\n}\n;","ix":3},"r":{"a":0,"k":45,"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    var baseRot = ctrl('Base Rotation');\n    var flop = content('Admin').content('ArcMath').transform.scale[0];\n    var rotOffset = flop < 0 ? -45 : 225;\n    $bm_rt = sum(baseRot, rotOffset);\n} catch (err) {\n    $bm_rt = value;\n}","ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ArcMath","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    $bm_rt = ctrl('A');\n} catch (err) {\n    $bm_rt = value;\n}","ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group"}],"ip":0,"op":1800,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":13,"ty":4,"nm":"Trunk Fill::End","hd":true,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0,"x":"var $bm_rt;\ntry {\n    var parentRot = hasParent ? parentTotal() : 0;\n    var rotCalc = sub(thisLayer('ADBE Root Vectors Group')('Admin')('Transform')('Rotation'), parentRot);\n    $bm_rt = sum(rotCalc, value);\n} catch (err) {\n    $bm_rt = value;\n}\n;\nfunction parentTotal() {\n    var parentVal = 0;\n    var layerChain = 'thisLayer';\n    while (eval([layerChain][0]).hasParent) {\n        layerChain += '.parent';\n        parentVal += eval([layerChain][0]).rotation;\n    }\n    return parentVal;\n}"},"p":{"a":1,"k":[{"i":{"x":0.38,"y":1},"o":{"x":0.62,"y":0},"n":"0p38_1_0p62_0","t":0,"s":[572,351,0],"e":[222,370,0],"to":[-38.3333320617676,137,0],"ti":[85.3333358764648,175,0]},{"i":{"x":0.38,"y":1},"o":{"x":0.62,"y":0},"n":"0p38_1_0p62_0","t":30,"s":[222,370,0],"e":[572,352,0],"to":[85.6247482299805,179.214935302734,0],"ti":[-37.4489440917969,134.704650878906,0]},{"t":60}]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100],"x":"var $bm_rt;\n$bm_rt = [\n    100,\n    100\n];"}},"ao":0,"ef":[{"ty":5,"nm":"RubberHose 2","mn":"Pseudo/3bf5uID/RubberHose_2","ix":1,"en":1,"ef":[{"ty":0,"nm":"Hose Length","mn":"Pseudo/3bf5uID/RubberHose_2-0001","ix":1,"v":{"a":0,"k":700}},{"ty":0,"nm":"Bend Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0002","ix":2,"v":{"a":0,"k":100}},{"ty":0,"nm":"Realism","mn":"Pseudo/3bf5uID/RubberHose_2-0003","ix":3,"v":{"a":0,"k":0}},{"ty":0,"nm":"Bend Direction","mn":"Pseudo/3bf5uID/RubberHose_2-0004","ix":4,"v":{"a":0,"k":-12}},{"ty":7,"nm":"Auto Rotate Start","mn":"Pseudo/3bf5uID/RubberHose_2-0005","ix":5,"v":{"a":0,"k":0}},{"ty":7,"nm":"Auto Rotate End","mn":"Pseudo/3bf5uID/RubberHose_2-0006","ix":6,"v":{"a":0,"k":1}},{"ty":6,"nm":"Math Stuff","mn":"Pseudo/3bf5uID/RubberHose_2-0007","ix":7,"v":0},{"ty":3,"nm":"A","mn":"Pseudo/3bf5uID/RubberHose_2-0008","ix":8,"v":{"a":0,"k":[36,43],"x":"var $bm_rt;\n$bm_rt = thisLayer.toComp([\n    0,\n    0,\n    0\n]);"}},{"ty":3,"nm":"B","mn":"Pseudo/3bf5uID/RubberHose_2-0009","ix":9,"v":{"a":0,"k":[0,0],"x":"var $bm_rt;\ntry {\n    var b = thisLayer(2)('Admin')(2)('B')(2)(1)._name;\n    $bm_rt = thisComp.layer(b).toComp([\n        0,\n        0,\n        0\n    ]);\n} catch (err) {\n    $bm_rt = value;\n}"}},{"ty":0,"nm":"Outer Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0010","ix":10,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar a = thisLayer(4)('RubberHose 2')('A');\nvar b = thisLayer(4)('RubberHose 2')('B');\nvar s = length(a, b);\n$bm_rt = mul(Math.sin(0.78539816339), s);"}},{"ty":0,"nm":"Inner Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0011","ix":11,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar eff = thisLayer(4)('RubberHose 2');\nvar bendRad = eff('Bend Radius');\nvar hoseLength = div(eff('Hose Length'), 2);\nvar realism = eff('Realism');\nvar bendDir = div(eff('Bend Direction'), 100);\nvar sFac = eff('Parent Scale');\nvar straight = eff('Straight');\nvar autoFlop = eff('AutoFlop');\nvar roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\nvar innerRad;\nif (hoseLength > straight) {\n    innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n    innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n    innerRad = linear(Math.abs(bendDir), straight, innerRad);\n} else {\n    innerRad = straight;\n}\ninnerRad *= Math.abs(sFac);\ninnerRad = linear(Math.abs(autoFlop), mul(straight, Math.max(Math.abs(sFac), 0.001)), innerRad);\n$bm_rt = innerRad;"}},{"ty":0,"nm":"Straight","mn":"Pseudo/3bf5uID/RubberHose_2-0012","ix":12,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar sFac = thisLayer(4)('RubberHose 2')('Parent Scale');\nvar outerRad = div(thisLayer(4)('RubberHose 2')('Outer Radius'), Math.max(Math.abs(sFac), 0.001));\n;\n$bm_rt = div(mul(1.4142135623731, outerRad), 2);"}},{"ty":0,"nm":"Base Rotation","mn":"Pseudo/3bf5uID/RubberHose_2-0013","ix":13,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar a = thisLayer(4)('RubberHose 2')('A');\nvar b = thisLayer(4)('RubberHose 2')('B');\n$bm_rt = radiansToDegrees(Math.atan2(sub(a[1], b[1]), sub(a[0], b[0])));"}},{"ty":0,"nm":"AutoFlop","mn":"Pseudo/3bf5uID/RubberHose_2-0014","ix":14,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar hasAF = false, isEnabled = false, output;\ntry {\n    var lyrAF = thisComp.layer(sum(thisLayer._name.split('::')[0], '::AutoFlop'));\n    isEnabled = lyrAF(4)('Enable')(1);\n    var falloffAngle = lyrAF(4)('Falloff')(1);\n    hasAF = true;\n    var a = thisLayer.toComp([\n            0,\n            0,\n            0\n        ]);\n    var b = thisLayer(4)('RubberHose 2')('B');\n} catch (e) {\n}\nif (hasAF && isEnabled == 1) {\n    var threshRot = lyrAF('ADBE Transform Group')('ADBE Rotate Z');\n    threshRot %= 360;\n    var ctrlAngle = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n    var offsetAngle = sub(threshRot, ctrlAngle);\n    offsetAngle %= 360;\n    var sign = offsetAngle > 0 && offsetAngle < 180 || offsetAngle < -180 ? -1 : 1;\n    var absAngle = Math.abs(offsetAngle);\n    if (absAngle > 90) {\n        absAngle = Math.abs(sub(absAngle, 180));\n    }\n    if (absAngle > 90) {\n        absAngle = Math.abs(sub(absAngle, 180));\n    }\n    output = linear(absAngle, 0, falloffAngle, 0, 1);\n    output *= sign;\n} else {\n    output = 1;\n}\n$bm_rt = output;\nfunction parentTotal() {\n    var parentVal = 0;\n    var layerChain = 'thisLayer';\n    while (eval([layerChain][0]).hasParent) {\n        layerChain += '.parent';\n        parentVal += eval([layerChain][0]).rotation;\n    }\n    return parentVal;\n}"}},{"ty":0,"nm":"Parent Scale","mn":"Pseudo/3bf5uID/RubberHose_2-0015","ix":15,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar sFactor = 1;\nvar scaleNorm = 0;\nvar layerChain = 'thisLayer';\nwhile (eval([layerChain][0]).hasParent) {\n    layerChain += '.parent';\n    scaleNorm = div(eval(layerChain)('ADBE Transform Group')('ADBE Scale')[0], 100);\n    sFactor = mul(sFactor, scaleNorm);\n}\n$bm_rt = sFactor;"}},{"ty":6,"nm":"","mn":"Pseudo/3bf5uID/RubberHose_2-0016","ix":16,"v":0}]}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Fill::End","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Fill::Start","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.03","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","cl":"03"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"x":"var $bm_rt;\nvar eff = thisLayer(4)('RubberHose 2');\nvar autoRotate = eff('Auto Rotate End');\nif (autoRotate == 1) {\n    var a = thisLayer.toComp([\n            0,\n            0,\n            0\n        ]);\n    var b = eff('B');\n    var s = length(a, b);\n    var sFac = eff('Parent Scale');\n    var autoFlop = 1;\n    var realism = eff('Realism');\n    var bendDir = div(eff('Bend Direction'), 100);\n    var hoseLength = div(eff('Hose Length'), 2);\n    var bendRad = eff('Bend Radius');\n    var autoFlop = eff('AutoFlop');\n    var baseRot = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n    var outerRad = mul(Math.sin(0.78539816339), s);\n    var straight = div(mul(1.4142135623731, outerRad), 2);\n    straight /= Math.max(Math.abs(sFac), 0.001);\n    var roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\n    var innerRad;\n    if (hoseLength > straight) {\n        innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n        innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n        innerRad = linear(Math.abs(bendDir), straight, innerRad);\n    } else {\n        innerRad = straight;\n    }\n    innerRad = linear(Math.abs(autoFlop), straight, innerRad);\n    var flopDir = 1;\n    if (bendDir < 0) {\n        flopDir = -1;\n    }\n    flopDir *= autoFlop;\n    var opp = mul(sub(innerRad, straight), flopDir);\n    var theta = Math.atan(div(opp, Math.max(straight, 0.001)));\n    var bendAngle = radiansToDegrees(theta);\n    if (sFac < 0) {\n        baseRot *= -1;\n    }\n    bendRad *= div(div(theta, $bm_neg(Math.PI)), linear(s, hoseLength, 0, 2, 0.9));\n    var rotCalc = sub(sum(baseRot, bendAngle), bendRad);\n    $bm_rt = rotCalc;\n} else {\n    $bm_rt = value;\n}\n;","ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"nm":"Circle","mn":"ADBE Vector Shape - Ellipse"},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-75,0],[75,0]],"c":false}},"nm":"01","mn":"ADBE Vector Shape - Group"},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-30],[0,30]],"c":false}},"nm":"02","mn":"ADBE Vector Shape - Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[30,30],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ControlShape","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"st","c":{"a":0,"k":[1,0.56,0,1],"x":"var $bm_rt;\nif (thisLayer.active) {\n    try {\n        var eff = thisLayer(4)('RubberHose 2');\n        var a = thisLayer.toComp([\n                0,\n                0,\n                0\n            ]);\n        var b = eff('B');\n        var straight = eff('Straight');\n        var hoseLength = div(eff('Hose Length'), 2);\n        if (straight > hoseLength) {\n            $bm_rt = [\n                0.51,\n                0.83,\n                0.98,\n                1\n            ];\n        } else {\n            $bm_rt = value;\n        }\n    } catch (err) {\n        $bm_rt = value;\n    }\n} else {\n    $bm_rt = value;\n}"},"o":{"a":0,"k":100},"w":{"a":0,"k":3},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];","ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"x":"var $bm_rt;\n$bm_rt = [\n    100,\n    100\n];","ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Control Point","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group"}],"ip":0,"op":1800,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":14,"ty":4,"nm":"Trunk Fill::Start","hd":true,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0,"x":"var $bm_rt;\ntry {\n    var parentRot = hasParent ? parentTotal() : 0;\n    var rotCalc = sub(thisLayer('ADBE Root Vectors Group')('Admin')('Transform')('Rotation'), parentRot);\n    $bm_rt = sum(rotCalc, value);\n} catch (err) {\n    $bm_rt = value;\n}\n;\nfunction parentTotal() {\n    var parentVal = 0;\n    var layerChain = 'thisLayer';\n    while (eval([layerChain][0]).hasParent) {\n        layerChain += '.parent';\n        parentVal += eval([layerChain][0]).rotation;\n    }\n    return parentVal;\n}"},"p":{"a":0,"k":[400,270,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100],"x":"var $bm_rt;\n$bm_rt = [\n    100,\n    100\n];"}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Fill::End","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Fill::Start","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.03","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","cl":"03"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"x":"var $bm_rt;\ntry {\n    var eff = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    var autoRotate = eff('Auto Rotate Start');\n    if (autoRotate == 1) {\n        var a = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name).toComp([\n                0,\n                0,\n                0\n            ]);\n        var b = thisLayer.toComp([\n                0,\n                0,\n                0\n            ]);\n        var s = length(a, b);\n        var sFac = eff('Parent Scale');\n        var autoFlop = 1;\n        var realism = eff('Realism');\n        var bendDir = div(eff('Bend Direction'), 100);\n        var hoseLength = div(eff('Hose Length'), 2);\n        var bendRad = eff('Bend Radius');\n        var autoFlop = eff('AutoFlop');\n        var baseRot = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n        var outerRad = mul(Math.sin(0.78539816339), s);\n        var straight = div(mul(1.4142135623731, outerRad), 2);\n        straight /= Math.max(Math.abs(sFac), 0.001);\n        var roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\n        var innerRad;\n        if (straight <= hoseLength) {\n            innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n            innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n            innerRad = linear(Math.abs(bendDir), straight, innerRad);\n        } else {\n            innerRad = straight;\n        }\n        innerRad = linear(Math.abs(autoFlop), straight, innerRad);\n        var flopDir = 1;\n        if (bendDir < 0) {\n            flopDir = -1;\n        }\n        flopDir *= autoFlop;\n        var opp = mul(sub(innerRad, straight), flopDir);\n        var theta = Math.atan(div(opp, Math.max(straight, 0.001)));\n        var bendAngle = radiansToDegrees(theta);\n        if (sFac < 0) {\n            baseRot *= -1;\n        }\n        bendRad *= div(div(theta, $bm_neg(Math.PI)), linear(s, hoseLength, 0, 2, 0.9));\n        var rotCalc = sum(sub(baseRot, bendAngle), bendRad);\n        $bm_rt = rotCalc;\n    } else {\n        $bm_rt = 0;\n    }\n    ;\n} catch (err) {\n    $bm_rt = value;\n}\n;","ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"nm":"Circle","mn":"ADBE Vector Shape - Ellipse"},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-75,0],[75,0]],"c":false}},"nm":"01","mn":"ADBE Vector Shape - Group"},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-30],[0,30]],"c":false}},"nm":"02","mn":"ADBE Vector Shape - Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[30,30],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ControlShape","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"st","c":{"a":0,"k":[1,0.56,0,1],"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name);\n    $bm_rt = ctrl(2)('Control Point')(2)('Stroke 1')('Color');\n} catch (e) {\n    $bm_rt = value;\n}"},"o":{"a":0,"k":100},"w":{"a":0,"k":3},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];","ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"x":"var $bm_rt;\n$bm_rt = [\n    100,\n    100\n];","ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Control Point","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group"}],"ip":0,"op":1800,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":15,"ty":4,"nm":"Trunk Fill::AutoFlop","hd":true,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[-518,404,0],"x":"var $bm_rt;\nvar p = [\n        0,\n        0\n    ];\ntry {\n    if (thisLayer.hasParent) {\n        p = parent.fromComp([\n            0,\n            0,\n            0\n        ]);\n    }\n    p;\n} catch (err) {\n}\nvar b = thisComp.layer(thisLayer(2)('Admin')(2)('B')(2)(1)._name).toComp([\n        0,\n        0,\n        0\n    ]);\n$bm_rt = sum(b, p);"},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ef":[{"ty":5,"nm":"Enable","mn":"ADBE Checkbox Control","ix":1,"en":1,"ef":[{"ty":7,"nm":"Checkbox","mn":"ADBE Checkbox Control-0001","ix":1,"v":{"a":0,"k":1}}]},{"ty":5,"nm":"Falloff","mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":25}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[4000,4000]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[2000,2000]},"p":{"a":0,"k":[1000,1000]},"r":{"a":0,"k":0},"nm":"Mask01","mn":"ADBE Vector Shape - Rect"},{"ty":"rc","d":1,"s":{"a":0,"k":[2000,2000]},"p":{"a":0,"k":[-1000,-1000]},"r":{"a":0,"k":0},"nm":"Mask02","mn":"ADBE Vector Shape - Rect"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-89.6,"x":"var $bm_rt;\nvar f = effect('Falloff')('ADBE Slider Control-0001');\nf = Math.max(0, f);\nf = Math.min(f, 88);\n$bm_rt = sum(f, 90);","ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"DynMask","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[2000,2000]},"p":{"a":0,"k":[1000,1000]},"r":{"a":0,"k":0},"nm":"Mask01","mn":"ADBE Vector Shape - Rect"},{"ty":"rc","d":1,"s":{"a":0,"k":[2000,2000]},"p":{"a":0,"k":[-1000,-1000]},"r":{"a":0,"k":0},"nm":"Mask02","mn":"ADBE Vector Shape - Rect"},{"ty":"tr","p":{"a":0,"k":[1000,1000],"ix":2},"a":{"a":0,"k":[1000,1000],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"StaticMask","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group"},{"ty":"mm","mm":3,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge"},{"ty":"fl","c":{"a":0,"k":[0.6499234,0.841822,1,1]},"o":{"a":0,"k":30},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"rp","c":{"a":0,"k":2,"ix":1},"o":{"a":0,"k":0,"ix":2},"ix":6,"tr":{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[-100,100],"ix":3},"r":{"a":0,"k":0,"ix":4},"so":{"a":0,"k":100,"ix":5},"eo":{"a":0,"k":100,"ix":6},"nm":"Transform"},"nm":"Mirror","mn":"ADBE Vector Filter - Repeater"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Falloff","np":6,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[0,4000]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"nm":"Line","mn":"ADBE Vector Shape - Rect"},{"ty":"st","c":{"a":0,"k":[0.1702206,0.669461,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":4,"x":"var $bm_rt;\n$bm_rt = 4;"},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Threshold","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Fill::End","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Fill::Start","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.03","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","cl":"03"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":3,"mn":"ADBE Vector Group"}],"ip":0,"op":1800,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":16,"ty":4,"nm":"Trunk Fill","ks":{"o":{"a":0,"k":100,"x":"var $bm_rt;\n$bm_rt = 100;"},"r":{"a":0,"k":58,"x":"var $bm_rt;\nvar r = 0;\nif (thisLayer.hasParent) {\n    r = $bm_neg(parentTotal());\n}\n$bm_rt = r;\nfunction parentTotal() {\n    var parentVal = 0;\n    var layerChain = 'thisLayer';\n    while (eval([layerChain][0]).hasParent) {\n        layerChain += '.parent';\n        parentVal += eval([layerChain][0]).rotation;\n    }\n    return parentVal;\n}"},"p":{"a":0,"k":[393,306,0],"x":"var $bm_rt;\nvar p = [\n        0,\n        0\n    ];\ntry {\n    if (thisLayer.hasParent) {\n        p = parent.fromComp([\n            0,\n            0,\n            0\n        ]);\n    }\n    $bm_rt = p;\n} catch (err) {\n    $bm_rt = p;\n}"},"a":{"a":0,"k":[0,0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];"},"s":{"a":0,"k":[100,103.552,100],"x":"var $bm_rt;\nvar s = [\n        100,\n        100\n    ];\nif (hasParent) {\n    var sFactor = parentTotal();\n    s = [\n        s[0] * sFactor[0],\n        s[1] * sFactor[1]\n    ];\n}\n$bm_rt = s;\nfunction parentTotal() {\n    var sFactor = [\n            1,\n            1\n        ];\n    var scaleNorm = [\n            0,\n            0\n        ];\n    var layerChain = 'thisLayer';\n    while (eval([layerChain][0]).hasParent) {\n        layerChain += '.parent';\n        scaleNorm = eval([layerChain][0]).scale;\n        if (scaleNorm[0] != 0 && scaleNorm[1] != 0) {\n            scaleNorm = [\n                100 / scaleNorm[0],\n                100 / scaleNorm[1]\n            ];\n        }\n        sFactor = [\n            sFactor[0] * scaleNorm[0],\n            sFactor[1] * scaleNorm[1]\n        ];\n    }\n    return sFactor;\n}"}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"x":"var $bm_rt;\n$bm_rt = 4;","ix":3},"p":{"a":0,"k":[0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];","ix":4},"r":{"a":0,"k":0,"x":"var $bm_rt;\n$bm_rt = 0;","ix":5},"ir":{"a":0,"k":500,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":6},"is":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":8},"or":{"a":0,"k":113,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":7},"os":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":9},"ix":1,"nm":"LineForCurve","mn":"ADBE Vector Shape - Star"},{"ty":"tm","s":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":1},"e":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":2},"o":{"a":0,"k":-90,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":3},"m":1,"ix":2,"nm":"Line Halfer","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":2},"a":{"a":0,"k":[0,0],"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":1},"s":{"a":0,"k":[100,100],"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":3},"r":{"a":0,"k":45,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":6},"o":{"a":0,"k":100,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":7},"sk":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":4},"sa":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":5},"nm":"Transform"}],"nm":"Arc","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim"},{"ty":"st","c":{"a":0,"k":[1,0.9882354,0.9764706,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":31,"x":"var $bm_rt;\nvar sFac = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2')('Parent Scale');\n$bm_rt = mul(value, sFac);"},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    $bm_rt = ctrl('A');\n} catch (err) {\n    $bm_rt = value;\n}","ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"BaseHose","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Style","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Fill::End","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[200,200],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Fill::Start","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.03","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","cl":"03"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"x":"var $bm_rt;\n$bm_rt = 4;","ix":3},"p":{"a":0,"k":[0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];","ix":4},"r":{"a":0,"k":90,"x":"var $bm_rt;\n$bm_rt = 0;","ix":5},"ir":{"a":0,"k":200,"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    $bm_rt = ctrl('Inner Radius');\n} catch (err) {\n    $bm_rt = value;\n}","ix":6},"is":{"a":0,"k":100,"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    $bm_rt = ctrl('Bend Radius');\n} catch (err) {\n    $bm_rt = value;\n}","ix":8},"or":{"a":0,"k":200,"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    $bm_rt = ctrl('Outer Radius');\n} catch (err) {\n    $bm_rt = value;\n}","ix":7},"os":{"a":0,"k":0,"x":"var $bm_rt;\n$bm_rt = 0;","ix":9},"ix":1,"nm":"LineForCurve","mn":"ADBE Vector Shape - Star"},{"ty":"tm","s":{"a":0,"k":0.01,"x":"var $bm_rt;\n$bm_rt = 0.01;","ix":1},"e":{"a":0,"k":24.99,"x":"var $bm_rt;\n$bm_rt = 24.99;","ix":2},"o":{"a":0,"k":-90,"x":"var $bm_rt;\n$bm_rt = -90;","ix":3},"m":1,"ix":2,"nm":"Line Halfer","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];","ix":2},"a":{"a":0,"k":[0,0],"x":"var $bm_rt;\nvar s = thisProperty.propertyGroup(2)(2)(1)(7);\n$bm_rt = [\n    -s,\n    0\n];","ix":1},"s":{"a":0,"k":[100,100],"x":"var $bm_rt;\nvar flop;\ntry {\n    var eff = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    var bendDir = eff('Bend Direction');\n    var autoFlop = eff('AutoFlop');\n    flop = bendDir > 0 ? 1 : -1;\n    autoFlop > 0 ? 0 : flop *= -1;\n    var s = flop == 1 ? [\n            -100,\n            100\n        ] : [\n            100,\n            100\n        ];\n    if (eff('Parent Scale') < 0) {\n        s = [\n            -s[0],\n            s[1]\n        ];\n    }\n    $bm_rt = s;\n} catch (err) {\n    $bm_rt = value;\n}\n;","ix":3},"r":{"a":0,"k":45,"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    var baseRot = ctrl('Base Rotation');\n    var flop = content('Admin').content('ArcMath').transform.scale[0];\n    var rotOffset = flop < 0 ? -45 : 225;\n    $bm_rt = sum(baseRot, rotOffset);\n} catch (err) {\n    $bm_rt = value;\n}","ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ArcMath","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    $bm_rt = ctrl('A');\n} catch (err) {\n    $bm_rt = value;\n}","ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group"}],"ip":0,"op":1800,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":17,"ty":4,"nm":"Trunk Outline::End","parent":13,"hd":true,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":-90.311,"x":"var $bm_rt;\ntry {\n    var parentRot = hasParent ? parentTotal() : 0;\n    var rotCalc = sub(thisLayer('ADBE Root Vectors Group')('Admin')('Transform')('Rotation'), parentRot);\n    $bm_rt = sum(rotCalc, value);\n} catch (err) {\n    $bm_rt = value;\n}\n;\nfunction parentTotal() {\n    var parentVal = 0;\n    var layerChain = 'thisLayer';\n    while (eval([layerChain][0]).hasParent) {\n        layerChain += '.parent';\n        parentVal += eval([layerChain][0]).rotation;\n    }\n    return parentVal;\n}"},"p":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100],"x":"var $bm_rt;\n$bm_rt = [\n    100,\n    100\n];"}},"ao":0,"ef":[{"ty":5,"nm":"RubberHose 2","mn":"Pseudo/3bf5uID/RubberHose_2","ix":1,"en":1,"ef":[{"ty":0,"nm":"Hose Length","mn":"Pseudo/3bf5uID/RubberHose_2-0001","ix":1,"v":{"a":0,"k":700}},{"ty":0,"nm":"Bend Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0002","ix":2,"v":{"a":0,"k":100}},{"ty":0,"nm":"Realism","mn":"Pseudo/3bf5uID/RubberHose_2-0003","ix":3,"v":{"a":0,"k":0}},{"ty":0,"nm":"Bend Direction","mn":"Pseudo/3bf5uID/RubberHose_2-0004","ix":4,"v":{"a":0,"k":-12}},{"ty":7,"nm":"Auto Rotate Start","mn":"Pseudo/3bf5uID/RubberHose_2-0005","ix":5,"v":{"a":0,"k":0}},{"ty":7,"nm":"Auto Rotate End","mn":"Pseudo/3bf5uID/RubberHose_2-0006","ix":6,"v":{"a":0,"k":1}},{"ty":6,"nm":"Math Stuff","mn":"Pseudo/3bf5uID/RubberHose_2-0007","ix":7,"v":0},{"ty":3,"nm":"A","mn":"Pseudo/3bf5uID/RubberHose_2-0008","ix":8,"v":{"a":0,"k":[36,43],"x":"var $bm_rt;\n$bm_rt = thisLayer.toComp([\n    0,\n    0,\n    0\n]);"}},{"ty":3,"nm":"B","mn":"Pseudo/3bf5uID/RubberHose_2-0009","ix":9,"v":{"a":0,"k":[0,0],"x":"var $bm_rt;\ntry {\n    var b = thisLayer(2)('Admin')(2)('B')(2)(1)._name;\n    $bm_rt = thisComp.layer(b).toComp([\n        0,\n        0,\n        0\n    ]);\n} catch (err) {\n    $bm_rt = value;\n}"}},{"ty":0,"nm":"Outer Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0010","ix":10,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar a = thisLayer(4)('RubberHose 2')('A');\nvar b = thisLayer(4)('RubberHose 2')('B');\nvar s = length(a, b);\n$bm_rt = mul(Math.sin(0.78539816339), s);"}},{"ty":0,"nm":"Inner Radius","mn":"Pseudo/3bf5uID/RubberHose_2-0011","ix":11,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar eff = thisLayer(4)('RubberHose 2');\nvar bendRad = eff('Bend Radius');\nvar hoseLength = div(eff('Hose Length'), 2);\nvar realism = eff('Realism');\nvar bendDir = div(eff('Bend Direction'), 100);\nvar sFac = eff('Parent Scale');\nvar straight = eff('Straight');\nvar autoFlop = eff('AutoFlop');\nvar roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\nvar innerRad;\nif (hoseLength > straight) {\n    innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n    innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n    innerRad = linear(Math.abs(bendDir), straight, innerRad);\n} else {\n    innerRad = straight;\n}\ninnerRad *= Math.abs(sFac);\ninnerRad = linear(Math.abs(autoFlop), mul(straight, Math.max(Math.abs(sFac), 0.001)), innerRad);\n$bm_rt = innerRad;"}},{"ty":0,"nm":"Straight","mn":"Pseudo/3bf5uID/RubberHose_2-0012","ix":12,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar sFac = thisLayer(4)('RubberHose 2')('Parent Scale');\nvar outerRad = div(thisLayer(4)('RubberHose 2')('Outer Radius'), Math.max(Math.abs(sFac), 0.001));\n;\n$bm_rt = div(mul(1.4142135623731, outerRad), 2);"}},{"ty":0,"nm":"Base Rotation","mn":"Pseudo/3bf5uID/RubberHose_2-0013","ix":13,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar a = thisLayer(4)('RubberHose 2')('A');\nvar b = thisLayer(4)('RubberHose 2')('B');\n$bm_rt = radiansToDegrees(Math.atan2(sub(a[1], b[1]), sub(a[0], b[0])));"}},{"ty":0,"nm":"AutoFlop","mn":"Pseudo/3bf5uID/RubberHose_2-0014","ix":14,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar hasAF = false, isEnabled = false, output;\ntry {\n    var lyrAF = thisComp.layer(sum(thisLayer._name.split('::')[0], '::AutoFlop'));\n    isEnabled = lyrAF(4)('Enable')(1);\n    var falloffAngle = lyrAF(4)('Falloff')(1);\n    hasAF = true;\n    var a = thisLayer.toComp([\n            0,\n            0,\n            0\n        ]);\n    var b = thisLayer(4)('RubberHose 2')('B');\n} catch (e) {\n}\nif (hasAF && isEnabled == 1) {\n    var threshRot = lyrAF('ADBE Transform Group')('ADBE Rotate Z');\n    threshRot %= 360;\n    var ctrlAngle = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n    var offsetAngle = sub(threshRot, ctrlAngle);\n    offsetAngle %= 360;\n    var sign = offsetAngle > 0 && offsetAngle < 180 || offsetAngle < -180 ? -1 : 1;\n    var absAngle = Math.abs(offsetAngle);\n    if (absAngle > 90) {\n        absAngle = Math.abs(sub(absAngle, 180));\n    }\n    if (absAngle > 90) {\n        absAngle = Math.abs(sub(absAngle, 180));\n    }\n    output = linear(absAngle, 0, falloffAngle, 0, 1);\n    output *= sign;\n} else {\n    output = 1;\n}\n$bm_rt = output;\nfunction parentTotal() {\n    var parentVal = 0;\n    var layerChain = 'thisLayer';\n    while (eval([layerChain][0]).hasParent) {\n        layerChain += '.parent';\n        parentVal += eval([layerChain][0]).rotation;\n    }\n    return parentVal;\n}"}},{"ty":0,"nm":"Parent Scale","mn":"Pseudo/3bf5uID/RubberHose_2-0015","ix":15,"v":{"a":0,"k":0,"x":"var $bm_rt;\nvar sFactor = 1;\nvar scaleNorm = 0;\nvar layerChain = 'thisLayer';\nwhile (eval([layerChain][0]).hasParent) {\n    layerChain += '.parent';\n    scaleNorm = div(eval(layerChain)('ADBE Transform Group')('ADBE Scale')[0], 100);\n    sFactor = mul(sFactor, scaleNorm);\n}\n$bm_rt = sFactor;"}},{"ty":6,"nm":"","mn":"Pseudo/3bf5uID/RubberHose_2-0016","ix":16,"v":0}]}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Outline::End","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Outline::Start","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.03","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","cl":"03"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"x":"var $bm_rt;\nvar eff = thisLayer(4)('RubberHose 2');\nvar autoRotate = eff('Auto Rotate End');\nif (autoRotate == 1) {\n    var a = thisLayer.toComp([\n            0,\n            0,\n            0\n        ]);\n    var b = eff('B');\n    var s = length(a, b);\n    var sFac = eff('Parent Scale');\n    var autoFlop = 1;\n    var realism = eff('Realism');\n    var bendDir = div(eff('Bend Direction'), 100);\n    var hoseLength = div(eff('Hose Length'), 2);\n    var bendRad = eff('Bend Radius');\n    var autoFlop = eff('AutoFlop');\n    var baseRot = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n    var outerRad = mul(Math.sin(0.78539816339), s);\n    var straight = div(mul(1.4142135623731, outerRad), 2);\n    straight /= Math.max(Math.abs(sFac), 0.001);\n    var roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\n    var innerRad;\n    if (hoseLength > straight) {\n        innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n        innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n        innerRad = linear(Math.abs(bendDir), straight, innerRad);\n    } else {\n        innerRad = straight;\n    }\n    innerRad = linear(Math.abs(autoFlop), straight, innerRad);\n    var flopDir = 1;\n    if (bendDir < 0) {\n        flopDir = -1;\n    }\n    flopDir *= autoFlop;\n    var opp = mul(sub(innerRad, straight), flopDir);\n    var theta = Math.atan(div(opp, Math.max(straight, 0.001)));\n    var bendAngle = radiansToDegrees(theta);\n    if (sFac < 0) {\n        baseRot *= -1;\n    }\n    bendRad *= div(div(theta, $bm_neg(Math.PI)), linear(s, hoseLength, 0, 2, 0.9));\n    var rotCalc = sub(sum(baseRot, bendAngle), bendRad);\n    $bm_rt = rotCalc;\n} else {\n    $bm_rt = value;\n}\n;","ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"nm":"Circle","mn":"ADBE Vector Shape - Ellipse"},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-75,0],[75,0]],"c":false}},"nm":"01","mn":"ADBE Vector Shape - Group"},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-30],[0,30]],"c":false}},"nm":"02","mn":"ADBE Vector Shape - Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[30,30],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ControlShape","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"st","c":{"a":0,"k":[1,0.56,0,1],"x":"var $bm_rt;\nif (thisLayer.active) {\n    try {\n        var eff = thisLayer(4)('RubberHose 2');\n        var a = thisLayer.toComp([\n                0,\n                0,\n                0\n            ]);\n        var b = eff('B');\n        var straight = eff('Straight');\n        var hoseLength = div(eff('Hose Length'), 2);\n        if (straight > hoseLength) {\n            $bm_rt = [\n                0.51,\n                0.83,\n                0.98,\n                1\n            ];\n        } else {\n            $bm_rt = value;\n        }\n    } catch (err) {\n        $bm_rt = value;\n    }\n} else {\n    $bm_rt = value;\n}"},"o":{"a":0,"k":100},"w":{"a":0,"k":3},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];","ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"x":"var $bm_rt;\n$bm_rt = [\n    100,\n    100\n];","ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Control Point","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group"}],"ip":0,"op":1800,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":18,"ty":4,"nm":"Trunk Outline::Start","parent":14,"hd":true,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0,"x":"var $bm_rt;\ntry {\n    var parentRot = hasParent ? parentTotal() : 0;\n    var rotCalc = sub(thisLayer('ADBE Root Vectors Group')('Admin')('Transform')('Rotation'), parentRot);\n    $bm_rt = sum(rotCalc, value);\n} catch (err) {\n    $bm_rt = value;\n}\n;\nfunction parentTotal() {\n    var parentVal = 0;\n    var layerChain = 'thisLayer';\n    while (eval([layerChain][0]).hasParent) {\n        layerChain += '.parent';\n        parentVal += eval([layerChain][0]).rotation;\n    }\n    return parentVal;\n}"},"p":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100],"x":"var $bm_rt;\n$bm_rt = [\n    100,\n    100\n];"}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Outline::End","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Outline::Start","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.03","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","cl":"03"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"x":"var $bm_rt;\ntry {\n    var eff = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    var autoRotate = eff('Auto Rotate Start');\n    if (autoRotate == 1) {\n        var a = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name).toComp([\n                0,\n                0,\n                0\n            ]);\n        var b = thisLayer.toComp([\n                0,\n                0,\n                0\n            ]);\n        var s = length(a, b);\n        var sFac = eff('Parent Scale');\n        var autoFlop = 1;\n        var realism = eff('Realism');\n        var bendDir = div(eff('Bend Direction'), 100);\n        var hoseLength = div(eff('Hose Length'), 2);\n        var bendRad = eff('Bend Radius');\n        var autoFlop = eff('AutoFlop');\n        var baseRot = $bm_neg(radiansToDegrees(Math.atan2(sub(b[0], a[0]), sub(b[1], a[1]))));\n        var outerRad = mul(Math.sin(0.78539816339), s);\n        var straight = div(mul(1.4142135623731, outerRad), 2);\n        straight /= Math.max(Math.abs(sFac), 0.001);\n        var roundShrink = linear(Math.abs(bendRad), 0, 100, 1, 0.87);\n        var innerRad;\n        if (straight <= hoseLength) {\n            innerRad = sum(straight, mul(Math.sqrt(sub(Math.pow(hoseLength, 2), Math.pow(straight, 2))), roundShrink));\n            innerRad = linear(realism, 0, 100, hoseLength, innerRad);\n            innerRad = linear(Math.abs(bendDir), straight, innerRad);\n        } else {\n            innerRad = straight;\n        }\n        innerRad = linear(Math.abs(autoFlop), straight, innerRad);\n        var flopDir = 1;\n        if (bendDir < 0) {\n            flopDir = -1;\n        }\n        flopDir *= autoFlop;\n        var opp = mul(sub(innerRad, straight), flopDir);\n        var theta = Math.atan(div(opp, Math.max(straight, 0.001)));\n        var bendAngle = radiansToDegrees(theta);\n        if (sFac < 0) {\n            baseRot *= -1;\n        }\n        bendRad *= div(div(theta, $bm_neg(Math.PI)), linear(s, hoseLength, 0, 2, 0.9));\n        var rotCalc = sum(sub(baseRot, bendAngle), bendRad);\n        $bm_rt = rotCalc;\n    } else {\n        $bm_rt = 0;\n    }\n    ;\n} catch (err) {\n    $bm_rt = value;\n}\n;","ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"nm":"Circle","mn":"ADBE Vector Shape - Ellipse"},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-75,0],[75,0]],"c":false}},"nm":"01","mn":"ADBE Vector Shape - Group"},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-30],[0,30]],"c":false}},"nm":"02","mn":"ADBE Vector Shape - Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[30,30],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ControlShape","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"st","c":{"a":0,"k":[1,0.56,0,1],"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name);\n    $bm_rt = ctrl(2)('Control Point')(2)('Stroke 1')('Color');\n} catch (e) {\n    $bm_rt = value;\n}"},"o":{"a":0,"k":100},"w":{"a":0,"k":3},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];","ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"x":"var $bm_rt;\n$bm_rt = [\n    100,\n    100\n];","ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Control Point","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group"}],"ip":0,"op":1800,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":19,"ty":4,"nm":"Trunk Outline::AutoFlop","hd":true,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[-518,404,0],"x":"var $bm_rt;\nvar p = [\n        0,\n        0\n    ];\ntry {\n    if (thisLayer.hasParent) {\n        p = parent.fromComp([\n            0,\n            0,\n            0\n        ]);\n    }\n    p;\n} catch (err) {\n}\nvar b = thisComp.layer(thisLayer(2)('Admin')(2)('B')(2)(1)._name).toComp([\n        0,\n        0,\n        0\n    ]);\n$bm_rt = sum(b, p);"},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ef":[{"ty":5,"nm":"Enable","mn":"ADBE Checkbox Control","ix":1,"en":1,"ef":[{"ty":7,"nm":"Checkbox","mn":"ADBE Checkbox Control-0001","ix":1,"v":{"a":0,"k":1}}]},{"ty":5,"nm":"Falloff","mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":25}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[4000,4000]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[2000,2000]},"p":{"a":0,"k":[1000,1000]},"r":{"a":0,"k":0},"nm":"Mask01","mn":"ADBE Vector Shape - Rect"},{"ty":"rc","d":1,"s":{"a":0,"k":[2000,2000]},"p":{"a":0,"k":[-1000,-1000]},"r":{"a":0,"k":0},"nm":"Mask02","mn":"ADBE Vector Shape - Rect"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-89.6,"x":"var $bm_rt;\nvar f = effect('Falloff')('ADBE Slider Control-0001');\nf = Math.max(0, f);\nf = Math.min(f, 88);\n$bm_rt = sum(f, 90);","ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"DynMask","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[2000,2000]},"p":{"a":0,"k":[1000,1000]},"r":{"a":0,"k":0},"nm":"Mask01","mn":"ADBE Vector Shape - Rect"},{"ty":"rc","d":1,"s":{"a":0,"k":[2000,2000]},"p":{"a":0,"k":[-1000,-1000]},"r":{"a":0,"k":0},"nm":"Mask02","mn":"ADBE Vector Shape - Rect"},{"ty":"tr","p":{"a":0,"k":[1000,1000],"ix":2},"a":{"a":0,"k":[1000,1000],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"StaticMask","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group"},{"ty":"mm","mm":3,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge"},{"ty":"fl","c":{"a":0,"k":[0.6499234,0.841822,1,1]},"o":{"a":0,"k":30},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"rp","c":{"a":0,"k":2,"ix":1},"o":{"a":0,"k":0,"ix":2},"ix":6,"tr":{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[-100,100],"ix":3},"r":{"a":0,"k":0,"ix":4},"so":{"a":0,"k":100,"ix":5},"eo":{"a":0,"k":100,"ix":6},"nm":"Transform"},"nm":"Mirror","mn":"ADBE Vector Filter - Repeater"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Falloff","np":6,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[0,4000]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"nm":"Line","mn":"ADBE Vector Shape - Rect"},{"ty":"st","c":{"a":0,"k":[0.1702206,0.669461,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":4,"x":"var $bm_rt;\n$bm_rt = 4;"},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Threshold","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Outline::End","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[20,20],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Outline::Start","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.03","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","cl":"03"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":3,"cix":2,"ix":3,"mn":"ADBE Vector Group"}],"ip":0,"op":1800,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":20,"ty":4,"nm":"Trunk Outline","ks":{"o":{"a":0,"k":100,"x":"var $bm_rt;\n$bm_rt = 100;"},"r":{"a":0,"k":58,"x":"var $bm_rt;\nvar r = 0;\nif (thisLayer.hasParent) {\n    r = $bm_neg(parentTotal());\n}\n$bm_rt = r;\nfunction parentTotal() {\n    var parentVal = 0;\n    var layerChain = 'thisLayer';\n    while (eval([layerChain][0]).hasParent) {\n        layerChain += '.parent';\n        parentVal += eval([layerChain][0]).rotation;\n    }\n    return parentVal;\n}"},"p":{"a":0,"k":[393,306,0],"x":"var $bm_rt;\nvar p = [\n        0,\n        0\n    ];\ntry {\n    if (thisLayer.hasParent) {\n        p = parent.fromComp([\n            0,\n            0,\n            0\n        ]);\n    }\n    $bm_rt = p;\n} catch (err) {\n    $bm_rt = p;\n}"},"a":{"a":0,"k":[0,0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];"},"s":{"a":0,"k":[100,103.552,100],"x":"var $bm_rt;\nvar s = [\n        100,\n        100\n    ];\nif (hasParent) {\n    var sFactor = parentTotal();\n    s = [\n        s[0] * sFactor[0],\n        s[1] * sFactor[1]\n    ];\n}\n$bm_rt = s;\nfunction parentTotal() {\n    var sFactor = [\n            1,\n            1\n        ];\n    var scaleNorm = [\n            0,\n            0\n        ];\n    var layerChain = 'thisLayer';\n    while (eval([layerChain][0]).hasParent) {\n        layerChain += '.parent';\n        scaleNorm = eval([layerChain][0]).scale;\n        if (scaleNorm[0] != 0 && scaleNorm[1] != 0) {\n            scaleNorm = [\n                100 / scaleNorm[0],\n                100 / scaleNorm[1]\n            ];\n        }\n        sFactor = [\n            sFactor[0] * scaleNorm[0],\n            sFactor[1] * scaleNorm[1]\n        ];\n    }\n    return sFactor;\n}"}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"x":"var $bm_rt;\n$bm_rt = 4;","ix":3},"p":{"a":0,"k":[0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];","ix":4},"r":{"a":0,"k":0,"x":"var $bm_rt;\n$bm_rt = 0;","ix":5},"ir":{"a":0,"k":500,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":6},"is":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":8},"or":{"a":0,"k":113,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":7},"os":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":9},"ix":1,"nm":"LineForCurve","mn":"ADBE Vector Shape - Star"},{"ty":"tm","s":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":1},"e":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":2},"o":{"a":0,"k":-90,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(1).propertyIndex;\n$bm_rt = thisLayer(2)('Admin')(2)('ArcMath')(2)(grp)(p);","ix":3},"m":1,"ix":2,"nm":"Line Halfer","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":2},"a":{"a":0,"k":[0,0],"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":1},"s":{"a":0,"k":[100,100],"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":3},"r":{"a":0,"k":45,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":6},"o":{"a":0,"k":100,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":7},"sk":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":4},"sa":{"a":0,"k":0,"x":"var $bm_rt;\nvar p = thisProperty.propertyIndex;\nvar grp = thisProperty.propertyGroup(2).propertyIndex;\n$bm_rt = content('Admin').content('ArcMath')('ADBE Vector Transform Group')(p);","ix":5},"nm":"Transform"}],"nm":"Arc","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"st","c":{"a":0,"k":[0.5411765,0.5411765,0.5411765,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":63,"x":"var $bm_rt;\nvar sFac = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2')('Parent Scale');\n$bm_rt = mul(value, sFac);"},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    $bm_rt = ctrl('A');\n} catch (err) {\n    $bm_rt = value;\n}","ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"BaseHose","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Style","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Outline::End","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[135,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[200,200],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Trunk Outline::Start","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"B","np":1,"cix":2,"ix":2,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2.03","np":0,"cix":2,"ix":1,"mn":"ADBE Vector Group","cl":"03"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Version","np":1,"cix":2,"ix":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"x":"var $bm_rt;\n$bm_rt = 4;","ix":3},"p":{"a":0,"k":[0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];","ix":4},"r":{"a":0,"k":90,"x":"var $bm_rt;\n$bm_rt = 0;","ix":5},"ir":{"a":0,"k":200,"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    $bm_rt = ctrl('Inner Radius');\n} catch (err) {\n    $bm_rt = value;\n}","ix":6},"is":{"a":0,"k":100,"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    $bm_rt = ctrl('Bend Radius');\n} catch (err) {\n    $bm_rt = value;\n}","ix":8},"or":{"a":0,"k":200,"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    $bm_rt = ctrl('Outer Radius');\n} catch (err) {\n    $bm_rt = value;\n}","ix":7},"os":{"a":0,"k":0,"x":"var $bm_rt;\n$bm_rt = 0;","ix":9},"ix":1,"nm":"LineForCurve","mn":"ADBE Vector Shape - Star"},{"ty":"tm","s":{"a":0,"k":0.01,"x":"var $bm_rt;\n$bm_rt = 0.01;","ix":1},"e":{"a":0,"k":24.99,"x":"var $bm_rt;\n$bm_rt = 24.99;","ix":2},"o":{"a":0,"k":-90,"x":"var $bm_rt;\n$bm_rt = -90;","ix":3},"m":1,"ix":2,"nm":"Line Halfer","mn":"ADBE Vector Filter - Trim"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\n$bm_rt = [\n    0,\n    0\n];","ix":2},"a":{"a":0,"k":[0,0],"x":"var $bm_rt;\nvar s = thisProperty.propertyGroup(2)(2)(1)(7);\n$bm_rt = [\n    -s,\n    0\n];","ix":1},"s":{"a":0,"k":[100,100],"x":"var $bm_rt;\nvar flop;\ntry {\n    var eff = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    var bendDir = eff('Bend Direction');\n    var autoFlop = eff('AutoFlop');\n    flop = bendDir > 0 ? 1 : -1;\n    autoFlop > 0 ? 0 : flop *= -1;\n    var s = flop == 1 ? [\n            -100,\n            100\n        ] : [\n            100,\n            100\n        ];\n    if (eff('Parent Scale') < 0) {\n        s = [\n            -s[0],\n            s[1]\n        ];\n    }\n    $bm_rt = s;\n} catch (err) {\n    $bm_rt = value;\n}\n;","ix":3},"r":{"a":0,"k":45,"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    var baseRot = ctrl('Base Rotation');\n    var flop = content('Admin').content('ArcMath').transform.scale[0];\n    var rotOffset = flop < 0 ? -45 : 225;\n    $bm_rt = sum(baseRot, rotOffset);\n} catch (err) {\n    $bm_rt = value;\n}","ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ArcMath","np":2,"cix":2,"ix":4,"mn":"ADBE Vector Group"},{"ty":"tr","p":{"a":0,"k":[0,0],"x":"var $bm_rt;\ntry {\n    var ctrl = thisComp.layer(thisLayer(2)('Admin')(2)('A')(2)(1)._name)(4)('RubberHose 2');\n    $bm_rt = ctrl('A');\n} catch (err) {\n    $bm_rt = value;\n}","ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Admin","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group"}],"ip":0,"op":1800,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":21,"ty":4,"nm":"face","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[400,300,0]},"a":{"a":0,"k":[-24,-19,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[250,250]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"a":0,"k":[0.5411765,0.5411765,0.5411765,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":18},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[1,0.9882354,0.9764706,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-24,-100],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":1800,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":22,"ty":4,"nm":"elephant ear Outlines 3","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[490.835,231.5,0]},"a":{"a":0,"k":[328.835,221.5,0]},"s":{"a":0,"k":[-120.5,120.5,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[17.412,0],[0,17.349],[0,0],[0,0],[-33.459,0],[0,-33.459]],"o":[[0,0],[0,17.349],[-17.412,0],[0,0],[0,0],[0,-33.459],[33.459,0],[0,0]],"v":[[2.483,38.487],[2.483,98.358],[-29.176,129.902],[-60.835,98.358],[-60.835,98.864],[-60.835,-85.666],[0,-146.5],[60.835,-85.666]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.541,0.541,0.541,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":14},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[1,0.9879999,0.976,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[328.835,221.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":1800,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":23,"ty":4,"nm":"elephant ear Outlines 2","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[309.835,231.5,0]},"a":{"a":0,"k":[328.835,221.5,0]},"s":{"a":0,"k":[120.478,120.478,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[17.412,0],[0,17.349],[0,0],[0,0],[-33.459,0],[0,-33.459]],"o":[[0,0],[0,17.349],[-17.412,0],[0,0],[0,0],[0,-33.459],[33.459,0],[0,0]],"v":[[2.483,38.487],[2.483,98.355],[-29.176,129.899],[-60.835,98.355],[-60.835,98.861],[-60.835,-85.666],[0,-146.5],[60.835,-85.666]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.541,0.541,0.541,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":14},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[1,0.9879999,0.976,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[328.835,221.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":1800,"st":0,"bm":0,"sr":1}]}