// Generated by Algodoo v2.1.0

inclusive_range = (min, max)=>{
    min > max ? [] : {
        [min] ++ inclusive_range(min + 1, max)
    }
};
SPH -> {
    kernelMultiplier = 0.63499999;
    solveSoftness = 1.0000000;
    incompressible = true;
    influence = 2.7000000;
    dens_constraint = true;
    viscMultiplier = 1.0000000;
    solveConst_dens = 1000000.0;
    unilateral = true;
    lowMassCollisionRadiusFactor = 0.40000001;
    friction = 0.0099999998;
    jitter = 0.00000000;
    sort = false;
    restitution = 0.00000000;
    maxNeighbors = 64;
    geomFieldOffset = 0.50000000;
    spikyKernel = true;
    geomFriction = 0.0010000000;
    surfaceTension = 0.00000000;
    radius = 0.050000001;
    density = 1.0000000;
    solveIters = 15;
    minMassFactor = 3.0000000;
    nonPenetration = true;
    vaporizeTime = +inf;
    pressMultiplier = 1.0000000;
    specialPressure = true;
    directSolver = false;
    bucketSize = 2.0000000;
    geomMassMultiplier = 2.0000000;
    kernelNormalize = false;
    viscosity = 0.00000000;
    soundSpeed = 20.000000;
    velocitySmoothing = false;
    solveT_dens = 0.0099999998;
    geometryFields = true
};
math -> {
    max = (a, b)=>{
        a > b ? a : b
    };
    min = (a, b)=>{
        a < b ? a : b
    };
    vec -> {
        lenSq = (v)=>{
            (v(0)) ^ 2 + (v(1)) ^ 2
        };
        len = (v)=>{
            ((v(0)) ^ 2 + (v(1)) ^ 2) ^ 0.50000000
        };
        distSq = (a, b)=>{
            math.vec.lenSq(a - b)
        };
        dist = (a, b)=>{
            math.vec.len(a - b)
        }
    };
    sum = (v)=>{
        ret = 0;
        for(string.length(v), (i)=>{
            ret = ret + v(i)
        });
        ret
    }
};
Language -> {
    fallbackFontNameFixed = [];
    rightToLeft = false;
    fontScale = 1.0000000;
    forcedFontName = "";
    metaVersion = 47;
    fallbackFontName = ["Verdana", "Tahoma", "Sans"];
    encoding = "UTF-8"
};
Sim -> {
    polygonMeshSize = [128, 128];
    cableLineInternalize = false;
    optimizeContactSet = true;
    separatingContactsBounce = true;
    limitAngVel = 1000000.0;
    cableSafetyDistance = 0;
    airSwitch = true;
    blockedContactSolver3N = true;
    limitVel = 2.9979245e+008;
    gravitySwitch = true;
    sabreSetNumBodies = true;
    solvePenetrationDamping = false;
    solveTCables = 0.050000001;
    airDensity = 0.0099999998;
    nyquistFactor = 4.0000000;
    directSolveIters = 3;
    mlcp_maxIter = 7;
    geomAttraction = true;
    cableMaxImpFactor = +inf;
    maxSpringStrength = 10.000000;
    debugCables = false;
    cableJacobianScale = 1.0000000;
    airFrictionLinear = 0.0099999998;
    direct_lcp = true;
    directContactSolveChains = true;
    airFrictionMultiplier = 1.0000000;
    fastPolyAABB = true;
    solveConstCables = 1.0000000e+008;
    directContactSolveChainsMassRatioLimit = 5.0000000;
    largeOverlapTest = true;
    directSpringSolve = false;
    legacyMode = 0;
    gravityAngleOffset = 0.00000000;
    warmStartProgressiveCutoff = 0.10000000;
    cableMaxMassRation = 2.0000000;
    cableLineSmartChoice = true;
    blockedContactSolver4N = false;
    airFrictionQuadratic = 0.00000000;
    solveConstantAdhesive = 1000000.0;
    warmStartProgressive = false;
    iterativeHingesToo = true;
    pureIterativeFinish = true;
    initialFriction = 0.00000000;
    warmStartProgressiveMax = 1.0000000;
    regularizeBounces = true;
    stepsPerFrame = 0;
    solverSOR = [1.0000000, 1.0000000, 1.0000000];
    solveDistFactor = 1.0000000;
    cableExtrudeContacts = false;
    solveRandomizeConstraints = true;
    running = true;
    limitPos = 1.0000000e+008;
    useSkipLists = true;
    cableMiliatryConstraint = false;
    timeFactor = 1.0000000;
    targetPenetration = 9.9999997e-005;
    blockedContactSolver2NF = false;
    cableBendStrength = 1.0000000;
    solveRegularizationFactor = 1.0000000;
    scriptUpdatesEveryStep = false;
    solveAccFactor = 1.0000000;
    collideCallbacksEveryStep = false;
    solveTcontacts = 0.050000001;
    multipleContactEventPerPair = false;
    projectContacts = false;
    cableMaxSlack = 0.10000000;
    frequency = 100;
    windStrength = 0.00000000;
    warmStartFactor = 0.50000000;
    airFrictionVersion = 3;
    warmStart = true;
    mlcp_tolerance = 1.0000000e-006;
    dsFirst = true;
    debugSolver = false;
    direct_friction = false;
    adHocSolver = false;
    blockedContactSolver = false;
    gravityStrength = 9.8000002;
    iterativeContactsToo = true;
    solveReverseConstraints = false;
    cableLineConstraint = true;
    hingeAutoBend_unilateral = false;
    skipDistance = 0.15000001;
    dsLast = true;
    preApplyForces = true;
    sabreThreads = 1;
    cableAdaptiveSlack = false;
    solveVelFactor = 1.0000000;
    hingeAutoBend_cutoff = 0.34999999;
    windAngle = 0.00000000;
    solveConstant = 1.0000000e+008;
    solveIter = 30;
    directContactSolveAll = false;
    sortBroadPhasePairs = false;
    blockedContactSolver2N = true;
    cables = true;
    solvePreSortConstraints = false;
    solveTconstraints = 0.050000001;
    solveStiffIter = 0;
    cableBendConstraint = false;
    hingeAutoBend = true;
    cableDistanceConstraint = true;
    positionsLast = false;
    rotFrictionLinear = 0.0031399999;
    directDragSolve = true;
    forceContactCalculations = false;
    hingeAngleConstraintType = 0;
    hingeAutoBend_dampingFactor = 0.40000001;
    bruteColliderCutoff = 0;
    hingeAutoBendIsHolonomic = true;
    directHingeSolve = true;
    springForce = 1000.0000;
    impactCutoff = 0.050000001;
    iterativeSpringsToo = true;
    maxPositionCorrection = +inf
};
sin = {math.sin};
EntityPrototype -> {
    attraction = 0.00000000;
    opaqueBorders = true;
    immortal = false;
    drawCake = true;
    texture = "";
    density = 2.0000000;
    restitution = 0.50000000;
    friction = 0.50000000;
    airFrictionMult = 1.0000000;
    materialName = "";
    color = [1.0000000, 1.0000000, 1.0000000, 1.0000000];
    adhesion = 0.00000000;
    attractionType = 2;
    refractiveIndex = 1.5000000;
    killer = false
};
Palette -> {
    opaqueBorders = true;
    drawCircleCakes = true;
    ruler = false;
    showForces = false;
    protractor = false;
    colorRangesHSVA = [];
    showMomentums = false;
    texture = "";
    showVelocities = false;
    drawClouds = false;
    borders = true;
    skyColor = [0.00000000, 0.00000000, 0.00000000, 1.0000000];
    waterColor = [0.10000000, 0.10000000, 1.0000000, 0.69999999]
};
Defaults -> {
    glueToWorld = false
};
if = (c, s)=>{
    c ? {s} : undefined
};
App -> {
    maxBorderArea = 0.20000000;
    drawVertices = false;
    scalePowHingeImpulseBreakLimit = 3.0000000;
    marchingSquaresResolution = 1.0000000;
    language = "Türkçe";
    fadeRotate = 0.00000000;
    showGravityField = false;
    scalePowControllerAcc = 1.0000000;
    waterMaxElongation = 2.0000000;
    GUI -> {
        playMode = false;
        angleColor = [1.0000000, 0.25000000, 1.0000000, 0.50000000];
        allowDrawSelect = true;
        drawHingesWhenRunning = true;
        velFitFactor = 0.20000000;
        geomGen_Tolerance = 1.2000000;
        Forces -> {
            gravity = true;
            gravityText = "mg";
            externalText = "ext";
            hasTorqueScale = false;
            attraction = true;
            angMomScale = 1.0000000;
            airBuoyancyText = "-adg";
            total = false;
            rotation = false;
            frictionProjection = true;
            normalText = "N";
            drawForces = false;
            external = true;
            hasVelScale = false;
            drawMomentums = false;
            springText = "-kx-bv";
            torqueScale = 0.10000000;
            thruster = true;
            drawComponents = false;
            normal = true;
            hasForceScale = false;
            angularMomentumText = "L";
            airFriction = true;
            forceScale = 0.10000000;
            hasAngVelScale = false;
            torque = true;
            friction = true;
            chainText = "C";
            velScale = 1.0000000;
            hingeText = "H";
            drawValues = false;
            frictionText = "T";
            contactCombinationDistance = 1.2000000;
            attractionText = "A";
            maxArrowLength = 0.34999999;
            hasMomScale = false;
            angularMomentum = false;
            thrusterText = "ext";
            spring = true;
            angVelScale = 1.0000000;
            chain = true;
            linearMomentumText = "p";
            velocities = false;
            drawAngles = false;
            hinge = true;
            airBuoyancy = true;
            hasAngMomScale = false;
            momScale = 1;
            airFrictionText = "-fv";
            totalText = "Σ";
            drawNames = true;
            torqueText = "τ"
        };
        panFactor = 2.0000000;
        mouseOverHighlight = false;
        geomGen_RemoveOpaqueHoles = false;
        fixedContextMenu = false;
        arrowKeysMove = true;
        infoUpdateInterval = 0.20000000;
        preScaleBrowserThumbnails = true;
        dragUndo = true;
        dropTexGeomGen = true;
        toolCursorOffset = [12.000000, 16.000000];
        scrollZoomFactor = 0.0020000001;
        useHSL = false;
        sketchMorphTime = 0.50000000;
        blurSpacing = 2.0000000;
        pressAndHoldMenus = false;
        forceFitFactor = 0.16000000;
        geomGen_MinDeltaTolerance = 0.18000001;
        toolGestures = true;
        trapUser = false;
        geomGen_MaxBorderAllowance = 0.050000001;
        drawTouches = false;
        toolSpecificCursors = true;
        autoScaleBoxText = true;
        geomGen_SmartBorderColorChoice = true;
        scrollZoom = true;
        ctrlSelection = true;
        autoFit = true;
        smoothDist = 10.000000;
        rotateBackground = false;
        sketchMorphDelay = 0.50000000;
        geomGen_RecognizeMaterial_Cutoff = 0.035000000;
        selectFactor = 0.80000001;
        geomGen_MinTolerance = 0.18000001;
        canPan = true;
        blurMaxDraw = 16;
        browserThumbnailSize = [128, 128];
        geomGen_Grow = 0.00000000;
        geomGen_MinArea = 9.9999997e-005;
        fastSketchToolPreview = false;
        geomGen_Cutoff = 95.000000;
        geomGen_RecognizeMaterial_VarianceFactor = 0.33000001;
        geomGen_RecognizeMaterial = true;
        instaErase = true;
        toolGestureSensitivity = 1.0000000;
        alikeTolerance = 0;
        momFitFactor = 0.23999999;
        geomGen_Resolution = 512;
        geomGen_GrowOpaque = -0.0049999999;
        fontMenuPreview = true;
        Scene.addWidget {
            widgetID := "Help";
            minimized := false;
            pos := [256.00000, 196.00000];
            size := [502.00000, 366.00000];
            visible := false;
            snappedParentMin := [false, false];
            snappedParentMax := [false, false];
            contents := {
                SketchTutorial := {
                    step := 0;
                    accomplished := []
                };
                ToolsTutorial := {
                    step := 0;
                    accomplished := []
                };
                BeginnerTutorial := {
                    step := 0;
                    accomplished := []
                };
                activeTutorial := ""
            }
        };
        Scene.addWidget {
            widgetID := "MenuBar";
            minimized := false;
            pos := [1.0000000, 1.0000000];
            size := [306.00000, 26.000000];
            visible := true;
            snappedParentMin := [true, true];
            snappedParentMax := [false, false]
        };
        Scene.addWidget {
            widgetID := "SideBar";
            minimized := false;
            pos := [1871.0000, 34.000000];
            size := [38.000000, 126.00000];
            horizontal := false;
            visible := true;
            snappedParentMin := [false, false];
            snappedParentMax := [true, false]
        };
        Scene.addWidget {
            widgetID := "Whiteboard";
            minimized := true;
            pos := [955.00000, 535.00000];
            size := [0.00000000, 0.00000000];
            horizontal := false;
            visible := false;
            snappedParentMin := [false, false];
            snappedParentMax := [false, false]
        };
        Scene.addWidget {
            widgetID := "ToolOptions";
            minimized := false;
            pos := [64.000000, 1043.0000];
            size := [52.000000, 26.000000];
            visible := true;
            snappedParentMin := [false, false];
            snappedParentMax := [false, true]
        };
        Scene.addWidget {
            widgetID := "NetOps";
            minimized := false;
            pos := [848.84143, 474.58524];
            size := [450.00000, 27.000000];
            visible := false;
            snappedParentMin := [false, false];
            snappedParentMax := [false, false]
        };
        Scene.addWidget {
            widgetID := "SceneBar";
            minimized := false;
            pos := [1.0000000, 34.000000];
            size := [38.000000, 252.00000];
            horizontal := false;
            visible := true;
            snappedParentMin := [true, false];
            snappedParentMax := [false, false]
        };
        Scene.addWidget {
            widgetID := "Toolbar";
            minimized := false;
            pos := [1.0000000, 713.00000];
            size := [56.000000, 356.00000];
            horizontal := false;
            visible := true;
            snappedParentMin := [true, false];
            snappedParentMax := [false, true]
        };
        Scene.addWidget {
            widgetID := "SimControl";
            minimized := false;
            pos := [306.00000, 1021.0000];
            size := [430.00000, 48.000000];
            visible := true;
            snappedParentMin := [false, false];
            snappedParentMax := [false, true]
        };
        Scene.addWidget {
            widgetID := "EntityOptions";
            minimized := false;
            pos := [147.00000, 127.00000];
            size := [155.00000, 131.00000];
            visible := false;
            snappedParentMin := [false, false];
            snappedParentMax := [false, false]
        }
    };
    drawBCs = false;
    checkForUpdates = true;
    autosaveTime = 300.00000;
    fadeColor = [0.00000000, 0.00000000, 0.00000000];
    sceneFadeInTime = 1.0000000;
    transformAttribs = true;
    laserFuzziness = 0.69999999;
    enableScriptMenu = true;
    numColorsInRainbow = 12;
    scalePowSpringDamping = 0.00000000;
    waterFanceyFactor = 10.000000;
    maxPlotPoints = 100000;
    waterElongation = 0.050000001;
    waterReflectiveness = 1.0000000;
    currentPalette = "";
    laserWaterBVH = false;
    lastVersion = "v2.1.0";
    waterTracerLightness = 0.75000000;
    chainDensityFactor = 1.0000000;
    alwaysCalculateForces = true;
    polytoolPreviewColor = [1.0000000, 0.50000000, 1.0000000, 0.40000001];
    HQPolygons = false;
    scalePowMotorTorque = 4.0000000;
    laserEvents = true;
    lineWidth = 3.0000000;
    Background -> {
        fadeCloudsOnSimStop = true;
        skyColor = [0.00000000, 0.00000000, 0.00000000, 1.0000000];
        drawClouds = false;
        cloudOpacity = 0.60000002
    };
    fadeScale = [0.94999999, 0.94999999];
    minPointDist = 0.15000001;
    metaCutoff = 0.50000000;
    drawBodyCenters = false;
    fadeAnglePickerTime = 0.50000000;
    maxCogs = 128;
    waterColor = [0.10000000, 0.10000000, 1.0000000, 0.69999999];
    Grid -> {
        base = 4;
        snap = true;
        opacity = 1;
        grid = false;
        topness = 0.50000000;
        numAxes = 2;
        scale = 1
    };
    DPI = 86.000000;
    tracerFuzziness = 0.00000000;
    moveToTrashOnOverwrite = true;
    useLaserFuzzNoShaders = true;
    enableUndoMerge = true;
    waterTracers = 0;
    borderWidth = 0.029999999;
    drawParticleNeighbors = false;
    maxUndo = 15;
    alwaysCalcContacts = false;
    drawParticleCenters = false;
    scalePowThrusterForce = 3.0000000;
    maxSPHSpawn = 2000;
    timeUntilRealTool = 0.50000000;
    drawClipPlanes = false;
    scaleGravityField = false;
    updateInterval = 1;
    waterRefractiveIndex = 1.3300000;
    forceVertexPolygonDrawing = false;
    drawCollisions = false;
    maxPointDist = 0.50000000;
    scalePowSpringStrength = 2.0000000;
    screenshotsWithAlpha = true;
    changeSimWhenVisualizing = true;
    maxTracerLife = 1000;
    laserSuperBoost = 1.0000000;
    pointSize = 3.0000000;
    scalePowMotorSpeed = 0.00000000;
    scalePowAttraction = 1.0000000;
    waterTracerSize = 0.015000000;
    borderSelectedWidthFactor = 5;
    hideWelcomeScreen = false;
    autosaveEnable = true;
    drawMapOBBs = false;
    fadeTranslate = [0.00000000, 0.00000000];
    laserWidth = 0.20000000;
    drawCables = false;
    iceColorMultiplier = [2.0000000, 2.0000000, 2.0000000, 1.0000000];
    tracerOverdraw = false;
    drawScaleIndicator = true;
    laserBroadPhase = true;
    killerPlanes = true;
    maxPolygonBorderFactor = 0.69999999;
    drawSelectionOBB = false;
    drawVelocityFactor = 0.020000000;
    groundPlane = true;
    rainbowSplitMult = 0.33333334;
    laserResolution = 10.000000;
    maxBorderAreaSpecial = 0.40000001;
    drawOBBs = false
};
exit = {
    System.exit
};
Console -> {
    fade = false;
    screenSize = 0.34999999;
    commandHistory = ["ü "];
    maxCharacters = 120;
    delay = 0.30000001;
    scroll = true;
    color = [0.00000000, 0.00000000, 0.00000000, 0.89999998]
};
Tablet -> {
    rightClickOverride = false;
    improveClickTolerance = true;
    overrideMouseEvents = true
};
Resources -> {
    fontHint = 4;
    textures = true;
    maxAnisotropy = 8.0000000;
    fontMetrics = true;
    maxDesiredTextureSizeSide = 2048;
    fontFallbacks = ["Tahoma", "Arial Unicode MS", "Sans"];
    sRGB = false;
    allowNPOT = true;
    fontAASubPixel = "";
    forceGLUBuildMipmaps = false;
    fontAA = true
};
cos = {math.cos};
lerp = (a, b, t)=>{
    (1 - t) * a + t * b
};
Accelerometer -> {
    useAccelerometer = false
};
groovyOn = {
    App.fadeColor = [0.80000001, 0, 0.89999998];
    App.fadeTranslate = {
        [3 * sin(time), 2 * sin(time)]
    };
    App.fadeRotate = {
        sin(System.time * 1.2000000)
    };
    App.Background.skyColor = [0, 0, 0, 0]
};
Scene -> {
    author = "minidude48";
    algoboxID = "53944";
    title = "Ultimate Rube Goldberg";
    description = "This is the first Rube Goldberg that I have made. There will be more coming soon. It is short, but it contains a lot of clever contraptions. To start, press enter.\nIf possible, please rate this scene or leave a comment.";
    Camera -> {
        suspendFollowIfTooling = true;
        trackRotation = false;
        zoom = 420.18695;
        smoothRotation = true;
        frictionConst = [20.000000, 0.00000000, 0.00000000];
        smoothPan = true;
        smoothFactor = 0.89999998;
        rotation = 0.00000000;
        kineticPanning = true;
        pan = [0.12052649, -13.054833];
        smoothZoom = true
    };
    controllAccelerationFollowCamera = false;
    sounds = [];
    gravityRotationOffset = NaN;
    fileDir = "Algodoo/scenes/downloads/";
    textures = []
};
time = {Sim.time};
Threading -> {
    numThreads = 1
};
GUI -> {
    defaultExpandOrder = NaN;
    cursorFPSLimit = 25.000000;
    useBuffering = true;
    Skin -> {
        expandAnimation = 1;
        tutorialEncircleColor = [0.50000000, 1.0000000, 0.50000000, 0.80000001];
        fontSize = 12;
        font = "Verdana";
        tooltipOpacity = 1.0000000;
        fadeTime = 0.20000000;
        iconGrayness = 0.64999998;
        smallSliderWidth = 145.00000;
        toolIconSize = 24;
        fgColor = [0.97500002, 0.97500002, 0.97500002, 1];
        iconLabelDistance = 0.00000000;
        iconButtonGray = [0.50000000, 0.50000000, 0.50000000, 0.50000000];
        tinyIconSize = 8;
        yesColor = [0.80000001, 1, 0.80000001, 1];
        studentScale = 2;
        fontShadow = false;
        scale = 1;
        dangerColor = [1, 0.69999999, 0.60000002, 1];
        noColor = [1, 0.69999999, 0.60000002, 1];
        textureDirs = ["default"];
        windowSnappedSpacing = 1.0000000;
        fontFixed = "Courier new";
        coveredColor = [0.75000000, 0.75000000, 0.75000000, 1.0000000];
        Borders -> {
            Button -> {
                padding = [-3.0000000, -3.0000000, -3.0000000, -3.0000000];
                textureScale = 0.50000000;
                margin = [0.00000000, 0.00000000, 0.00000000, 0.00000000];
                width = [8.0000000, 8.0000000, 8.0000000, 8.0000000];
                border = "empty";
                texture = "";
                color = [1.0000000, 1.0000000, 1.0000000, 1.0000000];
                overrideColor = 0.00000000
            };
            DragHoriz -> {
                padding = -4;
                textureScale = 0.50000000;
                margin = [0.00000000, 0.00000000, 0.00000000, 0.00000000];
                width = 0;
                border = "white_white";
                texture = "drag_horiz_wrapped_dotted";
                color = [1.0000000, 1.0000000, 1.0000000, 1.0000000];
                overrideColor = 0.00000000
            };
            Tiny -> {
                padding = [-3, -2, -3, -2];
                textureScale = 0.50000000;
                margin = [0, 2, 0, 2];
                width = 8;
                border = "gray_white";
                texture = "";
                color = [0.25000000, 0.66000003, 0.95999998, 0.75000000];
                overrideColor = 0.89999998
            };
            TabButtonUnselectedVert -> {
                padding = [2, 0, 1, 0];
                textureScale = 0.50000000;
                margin = [0, 0, 4, 0];
                width = [8.0000000, 8.0000000, 8.0000000, 8.0000000];
                border = "tab_button_unselected_white";
                texture = "";
                color = [0.44999999, 0.50000000, 0.55000001, 1];
                overrideColor = 0.50000000
            };
            SidePanelButtonSelected -> {
                padding = [-3, -3, -3, -3];
                textureScale = 0.12500000;
                margin = [0, -2, 0, -2];
                width = 8;
                border = "white_white";
                texture = "squares";
                color = [1, 1, 1, 0.50000000];
                overrideColor = 0.50000000
            };
            SliderRange -> {
                padding = [-6, -3, -6, -3];
                textureScale = 0.50000000;
                margin = [8, 0, 8, 0];
                width = 6;
                border = "slider_range";
                texture = "";
                color = [0.72500002, 0.75000000, 0.77499998, 1];
                overrideColor = 0.50000000
            };
            MouseOver -> {
                padding = [0.00000000, 0.00000000, 0.00000000, 0.00000000];
                textureScale = 0.50000000;
                margin = [0.00000000, 0.00000000, 0.00000000, 0.00000000];
                width = -4;
                border = "white_white";
                texture = "";
                color = [0.40000001, 0.60000002, 0.40000001, 1];
                overrideColor = 1
            };
            LabeledSlider -> {
                padding = [2, 2, 3, 2];
                textureScale = 0.50000000;
                margin = [2, 4, 4, 4];
                width = 2;
                border = "black_white";
                texture = "";
                color = [0.44999999, 0.50000000, 0.55000001, 0.25000000];
                overrideColor = 0.50000000
            };
            TextBox -> {
                padding = [-5, -2, -5, -2];
                textureScale = 0.50000000;
                margin = 2;
                width = [8.0000000, 8.0000000, 8.0000000, 8.0000000];
                border = "gray_white";
                texture = "";
                color = [0, 0, 0, 1];
                overrideColor = 0.89999998
            };
            SliderMarker2D -> {
                padding = 2;
                textureScale = 0.50000000;
                margin = 0;
                width = 3;
                border = "slider2d";
                texture = "";
                color = [1, 1, 1, 1];
                overrideColor = 1
            };
            AloneButton -> {
                padding = -2;
                textureScale = 0.50000000;
                margin = 4;
                width = 8;
                border = "gray_white";
                texture = "";
                color = [0.25000000, 0.66000003, 0.95999998, 0.75000000];
                overrideColor = 0.89999998
            };
            Plot -> {
                padding = [-3.0000000, -3.0000000, -3.0000000, -3.0000000];
                textureScale = 0.50000000;
                margin = [0, 8, 0, 8];
                width = [8.0000000, 8.0000000, 8.0000000, 8.0000000];
                border = "white_white";
                texture = "";
                color = [0, 0, 0, 1];
                overrideColor = 0.89999998
            };
            Padding -> {
                padding = 0;
                textureScale = 0.50000000;
                margin = [4, 4, 4, 4];
                width = 0.50000000;
                border = "empty";
                texture = "";
                color = [0, 0, 0, 0];
                overrideColor = 0.00000000
            };
            Gauge -> {
                padding = 0;
                textureScale = 0.50000000;
                margin = 0;
                width = 4;
                border = "blackwhite_black";
                texture = "";
                color = [1.0000000, 1.0000000, 1.0000000, 1.0000000];
                overrideColor = 0.00000000
            };
            Button_Focused -> {
                padding = 1;
                textureScale = 0.50000000;
                margin = 2;
                width = 4;
                border = "white_lightgrey";
                texture = "";
                color = [0.30000001, 0.50000000, 0.30000001, 1];
                overrideColor = 1
            };
            Tooltip -> {
                padding = 0;
                textureScale = 0.50000000;
                margin = [0.00000000, 0.00000000, 0.00000000, 0.00000000];
                width = 8;
                border = "white_grey";
                texture = "";
                color = [0.69999999, 0.40000001, 0.30000001, 1];
                overrideColor = 1
            };
            DropShadow -> {
                padding = [0, 4, 4, 0];
                textureScale = 0.50000000;
                margin = [0.00000000, 0.00000000, 0.00000000, 0.00000000];
                width = 16;
                border = "dropShadow";
                texture = "";
                color = [0.00000000, 0.00000000, 0.00000000, 0.40000001];
                overrideColor = 0.00000000
            };
            TabButtonSelectedHoriz -> {
                padding = [0, 0, -1, 0];
                textureScale = 0.50000000;
                margin = [0.00000000, 0.00000000, 0.00000000, 0.00000000];
                width = [0.00000000, 0.00000000, 0.00000000, 0.00000000];
                border = "tab_button_selected_horiz";
                texture = "";
                color = [1.0000000, 1.0000000, 1.0000000, 1.0000000];
                overrideColor = 0.00000000
            };
            WindowTitle -> {
                padding = [-6, 0, -2, -2];
                textureScale = 0.50000000;
                margin = [0.00000000, 0.00000000, 0.00000000, 0.00000000];
                width = [8.0000000, 8.0000000, 8.0000000, 8.0000000];
                border = "title";
                texture = "";
                color = [1.0000000, 1.0000000, 1.0000000, 1.0000000];
                overrideColor = 0.00000000
            };
            Slider -> {
                padding = [2, 5, 0, 5];
                textureScale = 0.50000000;
                margin = 0;
                width = 0;
                border = "empty";
                texture = "";
                color = [0, 0, 0, 0];
                overrideColor = 1.0000000
            };
            TextBox_Focused -> {
                padding = [-6, -3, -6, -3];
                textureScale = 0.50000000;
                margin = 2;
                width = 12;
                border = "white_empty";
                texture = "";
                color = [0.30000001, 0.50000000, 0.30000001, 1];
                overrideColor = 0.75000000
            };
            VertLine -> {
                padding = 0;
                textureScale = 0.25000000;
                margin = [-2, 8, -2, 8];
                width = 0.50000000;
                border = "all_white";
                texture = "vert_line_wrapped";
                color = [1, 1, 1, 0];
                overrideColor = 0.10000000
            };
            Selected -> {
                padding = -4;
                textureScale = 0.50000000;
                margin = 0;
                width = 6;
                border = "white_white";
                texture = "";
                color = [1, 1, 1, 0.50000000];
                overrideColor = 0.50000000
            };
            Window -> {
                padding = -1;
                textureScale = 0.18500000;
                margin = [0.00000000, 0.00000000, 0.00000000, 0.00000000];
                width = 4;
                border = "white_darkgrey";
                texture = "squares";
                color = [1, 1, 1, 1];
                overrideColor = 0.00000000
            };
            Empty -> {
                padding = 0;
                textureScale = 0.50000000;
                margin = 0;
                width = 0;
                border = "empty";
                texture = "";
                color = [1.0000000, 1.0000000, 1.0000000, 1.0000000];
                overrideColor = 0.00000000
            };
            Number -> {
                padding = [-3, -6, -3, -6];
                textureScale = 0.50000000;
                margin = [0.00000000, 0.00000000, 0.00000000, 0.00000000];
                width = [8.0000000, 8.0000000, 8.0000000, 8.0000000];
                border = "grey_roundedtop";
                texture = "";
                color = [0, 0, 0, 0.50000000];
                overrideColor = 0.75000000
            };
            HorizLine -> {
                padding = 0;
                textureScale = 0.25000000;
                margin = [6, -2, 6, -2];
                width = 0.50000000;
                border = "all_white";
                texture = "horiz_line_wrapped";
                color = [1, 1, 1, 0];
                overrideColor = 0.10000000
            };
            Rest -> {
                padding = [-3.0000000, -3.0000000, -3.0000000, -3.0000000];
                textureScale = 0.50000000;
                margin = [0.00000000, 0.00000000, 0.00000000, 0.00000000];
                width = [8.0000000, 8.0000000, 8.0000000, 8.0000000];
                border = "empty";
                texture = "";
                color = [1.0000000, 1.0000000, 1.0000000, 1.0000000];
                overrideColor = 0.00000000
            };
            SliderMarker -> {
                padding = [-2, 3, -2, 3];
                textureScale = 0.50000000;
                margin = 0;
                width = 4;
                border = "slider_marker";
                texture = "";
                color = [1, 1, 1, 1];
                overrideColor = 1
            };
            DirectionSelector -> {
                padding = 0;
                textureScale = 0.50000000;
                margin = [0, 8, 0, 1];
                width = 0;
                border = "empty";
                texture = "";
                color = [1.0000000, 1.0000000, 1.0000000, 1.0000000];
                overrideColor = 0.00000000
            };
            TabButtonSelectedVert -> {
                padding = [2, 0, 1, 0];
                textureScale = 0.50000000;
                margin = [0, 0, 4, 0];
                width = [8.0000000, 8.0000000, 8.0000000, 8.0000000];
                border = "tab_button_selected_white";
                texture = "";
                color = [0.30000001, 0.50000000, 0.30000001, 1];
                overrideColor = 1
            };
            SelectedContext -> {
                padding = -3;
                textureScale = 0.50000000;
                margin = [0.00000000, 0.00000000, 0.00000000, 0.00000000];
                width = 8;
                border = "white_white";
                texture = "";
                color = [0.30000001, 0.50000000, 0.30000001, 1];
                overrideColor = 1
            };
            Label -> {
                padding = [0.00000000, 0.00000000, 0.00000000, 0.00000000];
                textureScale = 0.50000000;
                margin = [0, 2, 0, 2];
                width = [0.00000000, 0.00000000, 0.00000000, 0.00000000];
                border = "empty";
                texture = "";
                color = [1.0000000, 1.0000000, 1.0000000, 1.0000000];
                overrideColor = 0.00000000
            };
            SidePanelButtonUnselected -> {
                padding = -1;
                textureScale = 0.50000000;
                margin = [0, -2, 0, -2];
                width = 6;
                border = "empty";
                texture = "";
                color = [1.0000000, 1.0000000, 1.0000000, 1.0000000];
                overrideColor = 0.00000000
            };
            DragVert -> {
                padding = -4;
                textureScale = 0.50000000;
                margin = [0.00000000, 0.00000000, 0.00000000, 0.00000000];
                width = 0;
                border = "white_white";
                texture = "drag_vert_wrapped_dotted";
                color = [1.0000000, 1.0000000, 1.0000000, 1.0000000];
                overrideColor = 0.00000000
            };
            SidePanelConnector -> {
                padding = [-8, -4, -8, -2];
                textureScale = 0.12500000;
                margin = [-2, 2, -2, 2];
                width = [8, 0, 8, 0];
                border = "connector";
                texture = "squares";
                color = [1, 1, 1, 1];
                overrideColor = 0
            };
            ToolIcon -> {
                padding = -3;
                textureScale = 0.50000000;
                margin = [0, -1, 0, -1];
                width = 6;
                border = "empty";
                texture = "";
                color = [1.0000000, 1.0000000, 1.0000000, 1.0000000];
                overrideColor = 0.00000000
            };
            KeyboardButton -> {
                padding = -4;
                textureScale = 0.50000000;
                margin = 2;
                width = 8;
                border = "gray_white";
                texture = "";
                color = [0.25000000, 0.66000003, 0.95999998, 0.75000000];
                overrideColor = 0.89999998
            };
            TabButtonUnselectedHoriz -> {
                padding = 0;
                textureScale = 0.50000000;
                margin = [0.00000000, 0.00000000, 0.00000000, 0.00000000];
                width = [0.00000000, 0.00000000, 0.00000000, 0.00000000];
                border = "tab_button_unselected_horiz";
                texture = "";
                color = [1.0000000, 1.0000000, 1.0000000, 1.0000000];
                overrideColor = 0.00000000
            }
        };
        windowSnapDist = 16.000000;
        mouseOverFadeOut = 0.10000000;
        sideMenuDetachThreshold = 64.000000;
        wobbleFriction = 30.000000;
        expandButtonClickable = true;
        windowDragThreshold = 5.0000000;
        listPanelFontSize = NaN;
        tooltipFontSize = 14;
        mouseOverFadeIn = 0.050000001;
        fontShadowOffsetPx = [1, 1];
        largeIconSize = 32;
        sliderWidth = 256;
        colorSliderHeight = 10;
        colorSliderWidth = 128;
        windowTitleFontSize = 16;
        opacity = 0.92500001;
        colorAreaSize = [128, 128];
        iconButtonUncheckedColor = [0.75000000, 0.75000000, 0.75000000, 1.0000000];
        sliderHeight = 12;
        windowMinVel = 20.000000;
        smallIconSize = 16;
        disabledColor = [0.50000000, 0.50000000, 0.50000000, 1.0000000];
        windowFriction = 1000.0000;
        editMenuDetachThreshold = 32.000000;
        focusColor = [0, 0, 0, 1];
        wobbleStiffness = 350.00000;
        bgColor = [0.52499998, 0.55000001, 0.57499999, 1]
    };
    throwMinTime = 0.0099999998;
    tooltips = true;
    throwTime = 0.10000000;
    scale = 1.0000000;
    maxClickDistance = 4.0000000;
    debugExpandables = false;
    invalidateExtraTime = 0.00000000;
    cursor = true;
    scientificCutoff = 100000.00;
    debugBuffering = false;
    rightToLeft = false;
    sliderLabelPrecisionOffset = 0.00000000;
    pixelSnapOffset = 0.10000000;
    penInput = false;
    touchDistanceSlack = 3.0000000;
    pixelSnap = true;
    debugGUI = false;
    forceOSCursor = true;
    touchTimeSlack = 1.5000000;
    tabletDistanceSlack = 2.0000000;
    throwMinSamples = 3;
    currentSkin = "default";
    maxDoubleClickTime = 0.30000001;
    lockGUI = true;
    invalidateMinTime = 0.00000000;
    tabletTimeSlack = 2.0000000;
    maxClickTime = 0.15000001;
    maxSloppyClickDistance = 50.000000;
    maxDoubleClickDistance = 5.0000000;
    maxSloppyClickTime = +inf
};
Tools -> {
    DragTool -> {
        drawStrength = false;
        dragMode = true;
        maxForce = +inf;
        allowZoom = true;
        centerOfMass = false;
        drawLine = true;
        hotkey = "d";
        allowPan = false;
        strength = 10000000.;
        smartAttachRad = 1.0000000;
        noRot = false;
        solveD = 4.0000000
    };
    GearTool -> {
        inside = false;
        hotkey = "g";
        outside = true;
        thickness = 0.40000001;
        cogSize = 0.20000000
    };
    PlaneTool -> {
        hotkey = "a"
    };
    SketchTool -> {
        hotkey = "k";
        enableSelectCircleMouse = false;
        enableSelectCircleTouchScreen = true
    };
    BoxTool -> {
        hotkey = "x"
    };
    ThrusterTool -> {
        hotkey = "o"
    };
    CutTool -> {
        hotkey = "t"
    };
    ChainTool -> {
        hotkey = "n";
        linkWidthFactor = 1.0000000;
        groupify = true;
        selectedTemplate = "rope";
        springConstant = 100000.00;
        linkDistance = 0.20000000
    };
    BoxSelect -> {
        hotkey = ""
    };
    FixJointTool -> {
        hotkey = "f"
    };
    MultitouchGeometryTool -> {
        moveTolerance = 0.00000000;
        rotateTolerance = 0.00000000;
        hotkey = "";
        axisScale = true;
        scaleTolerance = 1.0000000
    };
    SpringTool -> {
        previewLength = true;
        hotkey = "s"
    };
    EraserTool -> {
        drawInstaEraser = false;
        size = 0.40000001;
        pressureSensitive = true;
        drawShape = true;
        overdraw = true;
        autoGlue = true;
        planeGlue = false;
        hotkey = "";
        clickDraw = true;
        freezeDrawing = true;
        useTouchSize = false;
        calligraphy = false
    };
    ZoomTool -> {
        hotkey = ""
    };
    CSGTool -> {
        scale = 1.0000000;
        hotkey = ""
    };
    TextureTool -> {
        hotkey = "u"
    };
    TracerTool -> {
        hotkey = "e"
    };
    PanTool -> {
        hotkey = ""
    };
    RotateTool -> {
        hotkey = ""
    };
    MoveTool -> {
        hotkey = "m"
    };
    LaserPenTool -> {
        hotkey = "l"
    };
    CircleTool -> {
        hotkey = "c"
    };
    BrushTool -> {
        drawInstaEraser = false;
        size = 0.40000001;
        pressureSensitive = true;
        drawShape = true;
        overdraw = false;
        autoGlue = true;
        planeGlue = false;
        hotkey = "b";
        clickDraw = true;
        freezeDrawing = true;
        useTouchSize = false;
        calligraphy = false
    };
    MultitouchBackgroundTool -> {
        MaxTouchDistance = 1.0000000;
        hotkey = ""
    };
    HingeTool -> {
        hotkey = "h"
    };
    ScaleTool -> {
        hotkey = "r"
    };
    CloneTool -> {
        hotkey = ""
    };
    PolyTool -> {
        hotkey = "p"
    }
};
clamp = (t, mn, mx)=>{
    t < mn ? mn : t > mx ? mx : t
};
Input -> {
    inputJitter = 3.0000000;
    touchZoomCutoff = 20.000000;
    fingerShift = true;
    touchScreenDetection = true;
    spam = false;
    touchScreenDetectionRelCutoff = 50;
    multiPointerContact = false;
    touchScreenDetectionGoodCutoff = 30;
    touchPanCutoff = 0.00000000;
    touchPad = true;
    noMouseInput = false;
    table = false;
    trackSMART = false;
    touchRotateCutoff = 0.00000000;
    moveWithFinger = true;
    touchPanSensitivity = 3.0000000
};
quit = {
    System.exit
};
groovyOff = {
    App.fadeColor = [0, 0, 0];
    App.Background.skyColor = [0.44999999, 0.55000001, 1, 1]
};
Keys -> {
    Keys.bind("pause", {
        Sim.running = false;
        App.Step
    });
    Keys.bind("f8", {
        App.GUI.GiveBugReport
    });
    Keys.bind("f12", {
        System.screenshot
    })
};
Renderer -> {
    batchHGsizeBits = 3;
    batchMethod = "RG";
    batchHGcutoff = 12;
    batchRGsize = 32;
    batchHGdepth = 2;
    batchNPcutoff = 8;
    clampTC = true;
    batchSpam = false;
    colorAttrib8bit = true;
    batchNarrowPhase = true;
    debugOverdraw = false;
    batchExtensiveCutoff = 6;
    batchQTdepth = 7;
    debugOverdrawColor = [0.12500000, 0.031250000, 0.33333334, 1.0000000]
};
System -> {
    position = [64, 64];
    minFPS = 20.000000;
    maximized = false;
    maxFPSPlaying = 60.000000;
    antiAlias = 1;
    stencilDepth = 8;
    regularScreenshots = 0;
    depth = 32;
    maxFPSPaused = 60.000000;
    fullscreen = true;
    zDepth = 24;
    resolution = [832, 576]
};
for = (n, what)=>{
    n <= 0 ? false : {
        for(n - 1, what);
        what(n - 1)
    }
};
FileInfo -> {
    author = "matt warner";
    standardAuthor = "volkan";
    title = "Rube Goldberg #1";
    algoboxID = "53944";
    version = 21;
    description = "This is the first Rube Goldberg that I have made. There will be more coming soon. It is short, but it contains a lot of clever contraptions. To start, press enter.\nIf possible, please rate this scene or leave a comment."
};
Bench_Steps = (n)=>{
    t := System.time;
    Sim.Step_N(n);
    Console.print(n + " steps took " + (System.time - t) + " seconds.")
};
print = {
    Console.print
};
EntityModifier -> {
    blackColor = [0.20000000, 0.20000000, 0.20000000];
    blueIsWater = false;
    redColor = [1.0000000, 0.00000000, 0.00000000];
    nonPenInputColor = [0.00000000, 0.00000000, 0.00000000];
    blackIsFixed = false;
    usePenColorOnEntities = true;
    useNonPenInputColor = false;
    greenColor = [0.00000000, 1.0000000, 0.00000000];
    blueColor = [0.20000000, 0.00000000, 1.0000000]
}