"use strict";
(() => {
var exports = {};
exports.id = 9602;
exports.ids = [9602,7206];
exports.modules = {

/***/ 874882:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({"src":"/_next/static/media/sage-worksheet.dcc7f9ca.png","height":766,"width":1400,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAMAAACEE47CAAAAHlBMVEX8/Pr19/jm6uzt7vDt7uvt3t/NrzXl2qzp3rbj1qHZ971RAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAJUlEQVQImS3GMQIAIAgDsWuLgP//sIuZgu2kJByQZqkDovvnzgMFqwBZWrwePQAAAABJRU5ErkJggg=="});

/***/ }),

/***/ 683068:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "Z": () => (/* binding */ Code)
/* harmony export */ });
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(920997);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(545725);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(antd__WEBPACK_IMPORTED_MODULE_1__);


const { Text  } = antd__WEBPACK_IMPORTED_MODULE_1__.Typography;
function Code({ children , style  }) {
    return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(Text, {
        code: true,
        style: style,
        children: children
    });
};


/***/ }),

/***/ 59737:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "Z": () => (/* binding */ Info)
/* harmony export */ });
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(920997);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(545725);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(antd__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _cocalc_frontend_components_icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(807772);
/* harmony import */ var _cocalc_frontend_components_icon__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_cocalc_frontend_components_icon__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(534100);
/* harmony import */ var _image__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(77595);
/* harmony import */ var lib_config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(78082);






const showcase = {
    width: "100%",
    boxShadow: "2px 2px 4px rgb(0 0 0 / 25%), 0 2px 4px rgb(0 0 0 / 22%)",
    borderRadius: "3px"
};
function Info(props) {
    const { anchor , icon , title , image , alt , video , caption , children , wide , swapCols , textStyleExtra ,  } = props;
    const head = /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("h1", {
        id: anchor,
        style: {
            textAlign: "center",
            marginBottom: "20px",
            color: "#333"
        },
        children: [
            icon && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("span", {
                style: {
                    fontSize: "24pt",
                    marginRight: "5px"
                },
                children: [
                    /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_cocalc_frontend_components_icon__WEBPACK_IMPORTED_MODULE_2__.Icon, {
                        name: icon
                    }),
                    " "
                ]
            }),
            title
        ]
    });
    let graphic = null;
    if (image != null) {
        graphic = /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_image__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {
            style: showcase,
            src: image,
            alt: alt ?? caption
        });
    } else if (video != null) {
        const videoSrcs = typeof video == "string" ? [
            video
        ] : video;
        verifyHasMp4(videoSrcs);
        graphic = /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
            style: {
                position: "relative",
                width: "100%"
            },
            children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("video", {
                style: showcase,
                loop: true,
                controls: true,
                children: sources(videoSrcs)
            })
        });
    }
    if (graphic != null && caption != null) {
        graphic = /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
            children: [
                graphic,
                /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("br", {}),
                /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("br", {}),
                /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
                    style: {
                        textAlign: "center",
                        color: "#666",
                        fontSize: "13pt"
                    },
                    children: caption
                })
            ]
        });
    }
    if (!graphic) {
        const noGraphicTextStyle = {
            background: "#fafafa",
            padding: "20px",
            marginBottom: "15px"
        };
        if (textStyleExtra != null) {
            // if textColStyleExtra is given, then merge it into noGraphicTextStyle.
            Object.assign(noGraphicTextStyle, textStyleExtra);
        }
        return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
            style: {
                width: "100%"
            },
            children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
                style: {
                    maxWidth: lib_config__WEBPACK_IMPORTED_MODULE_5__/* .MAX_WIDTH */ .d,
                    margin: "0 auto"
                },
                children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
                    style: noGraphicTextStyle,
                    children: [
                        /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
                            style: {
                                textAlign: "center"
                            },
                            children: head
                        }),
                        /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
                            style: {
                                margin: "auto",
                                maxWidth: wide ? "600px" : undefined
                            },
                            children: children
                        })
                    ]
                })
            })
        });
    }
    const textColStyle = {
        border: "1px solid white",
        borderRadius: "5px",
        padding: "0 20px 0 20px",
        marginBottom: "15px",
        display: "flex",
        justifyContent: "start",
        alignContent: "start",
        flexDirection: "column",
        fontSize: "12pt"
    };
    if (textStyleExtra != null) {
        // if textColStyleExtra is given, then merge it into textColStyle.
        Object.assign(textColStyle, textStyleExtra);
    }
    const textCol = /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(antd__WEBPACK_IMPORTED_MODULE_1__.Col, {
        lg: wide ? 7 : 9,
        style: textColStyle,
        children: children
    }, "text");
    const graphicCol = /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(antd__WEBPACK_IMPORTED_MODULE_1__.Col, {
        lg: wide ? 17 : 15,
        style: {
            padding: "0 30px",
            width: "100%"
        },
        children: graphic
    }, "graphics");
    const cols = swapCols ? [
        textCol,
        graphicCol
    ] : [
        graphicCol,
        textCol
    ];
    return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
        style: {
            padding: "60px 5%",
            background: "white",
            fontSize: "11pt"
        },
        children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
            children: [
                head,
                /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(antd__WEBPACK_IMPORTED_MODULE_1__.Row, {
                    children: cols
                })
            ]
        })
    });
};
function sources(video) {
    const v = [];
    for (const x of video){
        v.push(/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("source", {
            src: (0,_util__WEBPACK_IMPORTED_MODULE_3__/* .MediaURL */ .c)(x)
        }, x));
    }
    return v;
}
function verifyHasMp4(video) {
    for (const x of video){
        if (x.endsWith(".mp4")) {
            return;
        }
    }
    console.warn("include mp4 format for the video, so that it is viewable on iOS!!", video);
}
Info.Heading = ({ children , description , style  })=>{
    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
        style: {
            ...{
                textAlign: "center",
                margin: "40px"
            },
            ...style
        },
        children: [
            /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("h1", {
                style: {
                    fontSize: "400%",
                    color: "#444"
                },
                children: children
            }),
            /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
                style: {
                    fontSize: "13pt",
                    color: "#666"
                },
                children: description
            })
        ]
    });
};


/***/ }),

/***/ 992756:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(920997);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(616689);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _cocalc_frontend_misc_math_to_html__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(749924);
/* harmony import */ var _cocalc_frontend_misc_math_to_html__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_cocalc_frontend_misc_math_to_html__WEBPACK_IMPORTED_MODULE_2__);



const LaTeX = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1___default().memo(()=>{
    const { __html  } = _cocalc_frontend_misc_math_to_html__WEBPACK_IMPORTED_MODULE_2___default()("\\LaTeX", true);
    return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
        dangerouslySetInnerHTML: {
            __html
        }
    });
});
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LaTeX);


/***/ }),

/***/ 252181:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "Z": () => (/* binding */ Pitch)
/* harmony export */ });
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(920997);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(545725);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(antd__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var components_misc_A__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(617637);
/* harmony import */ var _code__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(683068);




function Pitch({ col1 , col2 , ext  }) {
    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
        style: {
            padding: "30px 10%",
            backgroundColor: "white",
            fontSize: "11pt"
        },
        children: [
            /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(antd__WEBPACK_IMPORTED_MODULE_1__.Row, {
                children: [
                    /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(antd__WEBPACK_IMPORTED_MODULE_1__.Col, {
                        lg: 12,
                        style: {
                            paddingRight: "20px"
                        },
                        children: col1
                    }),
                    /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(antd__WEBPACK_IMPORTED_MODULE_1__.Col, {
                        lg: 12,
                        children: col2
                    })
                ]
            }),
            ext && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(CallToAction, {
                ext: ext
            })
        ]
    });
};
function CallToAction({ ext  }) {
    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
        style: {
            textAlign: "center",
            padding: "30px 0",
            fontSize: "14pt"
        },
        children: [
            /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("strong", {
                children: "Ready out of the box"
            }),
            ":",
            " ",
            /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(components_misc_A__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {
                href: "https://doc.cocalc.com/getting-started.html",
                children: "Sign up, create a project"
            }),
            ", create or ",
            /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(components_misc_A__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {
                href: "https://doc.cocalc.com/howto/upload.html",
                children: "upload"
            }),
            " ",
            "your ",
            ext && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_code__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
                children: [
                    "*.",
                    ext
                ]
            }),
            " file, and you're ready to go!"
        ]
    });
}


/***/ }),

/***/ 607746:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {


// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  "Z": () => (/* binding */ Snapshots)
});

// EXTERNAL MODULE: external "react/jsx-runtime"
var jsx_runtime_ = __webpack_require__(920997);
// EXTERNAL MODULE: ./components/misc/A.tsx
var A = __webpack_require__(617637);
// EXTERNAL MODULE: ./components/landing/info.tsx
var info = __webpack_require__(59737);
;// CONCATENATED MODULE: ./public/features/cocalc-snapshots.png
/* harmony default export */ const cocalc_snapshots = ({"src":"/_next/static/media/cocalc-snapshots.9bf815f8.png","height":944,"width":1915,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAMAAACEE47CAAAACVBMVEX09PTm7PLx6+uca3txAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGElEQVQImWNgQABGRkYmJiYogwHGYGIAAAFQABgXDyhyAAAAAElFTkSuQmCC"});
;// CONCATENATED MODULE: ./components/landing/snapshots.tsx




function Snapshots({ children  }) {
    return /*#__PURE__*/ (0,jsx_runtime_.jsxs)(info/* default */.Z, {
        title: "Snapshot backups",
        image: cocalc_snapshots,
        icon: "life-saver",
        anchor: "a-snapshot-backups",
        alt: "Browsing filesystem snapshots in a CoCalc project",
        wide: true,
        children: [
            /*#__PURE__*/ (0,jsx_runtime_.jsxs)("p", {
                children: [
                    /*#__PURE__*/ jsx_runtime_.jsx("strong", {
                        children: "Snapshots"
                    }),
                    " are consistent read-only views of all your files in a",
                    " ",
                    /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                        href: "https://doc.cocalc.com/project.html",
                        children: "CoCalc project"
                    }),
                    ". You can restore your files by copying back any that you accidentally deleted or corrupted."
                ]
            }),
            children
        ]
    });
};


/***/ }),

/***/ 78082:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "d": () => (/* binding */ MAX_WIDTH),
/* harmony export */   "r": () => (/* binding */ SHARE_MAX_WIDTH)
/* harmony export */ });
/*
Constants and other configuration that impact the overall
look of all of the pages.
*/ const MAX_WIDTH = "900px";
const SHARE_MAX_WIDTH = "1100px";


/***/ }),

/***/ 36922:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  "default": () => (/* binding */ Sage),
  "getServerSideProps": () => (/* binding */ getServerSideProps)
});

// EXTERNAL MODULE: external "react/jsx-runtime"
var jsx_runtime_ = __webpack_require__(920997);
// EXTERNAL MODULE: external "antd"
var external_antd_ = __webpack_require__(545725);
// EXTERNAL MODULE: ./components/landing/footer.tsx + 1 modules
var footer = __webpack_require__(920691);
// EXTERNAL MODULE: ./components/landing/header.tsx + 2 modules
var header = __webpack_require__(113680);
// EXTERNAL MODULE: ./components/landing/content.tsx
var content = __webpack_require__(113684);
// EXTERNAL MODULE: ./lib/with-customize.ts
var with_customize = __webpack_require__(422638);
// EXTERNAL MODULE: ./lib/customize.ts
var lib_customize = __webpack_require__(481617);
// EXTERNAL MODULE: ./components/misc/A.tsx
var A = __webpack_require__(617637);
// EXTERNAL MODULE: ./components/landing/sign-in.tsx
var sign_in = __webpack_require__(39646);
// EXTERNAL MODULE: ./components/landing/info.tsx
var info = __webpack_require__(59737);
// EXTERNAL MODULE: ./components/landing/pitch.tsx
var pitch = __webpack_require__(252181);
// EXTERNAL MODULE: ./components/landing/head.tsx
var head = __webpack_require__(422004);
// EXTERNAL MODULE: ./components/landing/snapshots.tsx + 1 modules
var snapshots = __webpack_require__(607746);
// EXTERNAL MODULE: ./components/landing/latex.tsx
var latex = __webpack_require__(992756);
// EXTERNAL MODULE: ../frontend/dist/components/icon.js
var icon = __webpack_require__(807772);
// EXTERNAL MODULE: ./components/landing/code.tsx
var code = __webpack_require__(683068);
;// CONCATENATED MODULE: ./public/features/sage-squared.svg
/* harmony default export */ const sage_squared = ({"src":"/_next/static/media/sage-squared.d8aeb04c.svg","height":400,"width":400});
// EXTERNAL MODULE: ./public/features/sage-worksheet.png
var sage_worksheet = __webpack_require__(874882);
;// CONCATENATED MODULE: ./public/features/sage-nbgrader.png
/* harmony default export */ const sage_nbgrader = ({"src":"/_next/static/media/sage-nbgrader.be27e0c3.png","height":687,"width":1200,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAMAAABPT11nAAAAHlBMVEX29/nc4OXh6O/d5ev////p7fHv8/b07OfO1d2/2uQSBsPMAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAKElEQVQImSWIQQ4AMAjCQIa6/394IeulTcFbkmyApKqRKMe9+wdmTngKhQCA//n0xQAAAABJRU5ErkJggg=="});
;// CONCATENATED MODULE: ./pages/features/sage.tsx
















const component = "SageMath";
const title = `Use SageMath Online`;



function Sage({ customize  }) {
    return /*#__PURE__*/ (0,jsx_runtime_.jsxs)(lib_customize/* Customize */.l, {
        value: customize,
        children: [
            /*#__PURE__*/ jsx_runtime_.jsx(head/* default */.Z, {
                title: title
            }),
            /*#__PURE__*/ (0,jsx_runtime_.jsxs)(external_antd_.Layout, {
                children: [
                    /*#__PURE__*/ jsx_runtime_.jsx(header/* default */.Z, {
                        page: "features",
                        subPage: "sage"
                    }),
                    /*#__PURE__*/ (0,jsx_runtime_.jsxs)(external_antd_.Layout.Content, {
                        children: [
                            /*#__PURE__*/ jsx_runtime_.jsx("div", {
                                style: {
                                    backgroundColor: "#c7d9f5"
                                },
                                children: /*#__PURE__*/ jsx_runtime_.jsx(content/* default */.Z, {
                                    startup: component,
                                    logo: sage_squared,
                                    title: /*#__PURE__*/ (0,jsx_runtime_.jsxs)(jsx_runtime_.Fragment, {
                                        children: [
                                            "Use ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://www.sagemath.org/",
                                                children: "SageMath"
                                            }),
                                            " Online"
                                        ]
                                    }),
                                    subtitle: /*#__PURE__*/ (0,jsx_runtime_.jsxs)(jsx_runtime_.Fragment, {
                                        children: [
                                            "The goal of ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://www.sagemath.org/",
                                                children: "SageMath"
                                            }),
                                            " ",
                                            "is to create a viable free open source alternative to Magma, Maple, Mathematica and Matlab by building on top of many existing open-source packages, including NumPy, SciPy, matplotlib, SymPy, Maxima, GAP, FLINT, and",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "/features/r-statistical-software",
                                                children: "R"
                                            }),
                                            "."
                                        ]
                                    }),
                                    subtitleBelow: true,
                                    image: sage_worksheet/* default */.Z,
                                    alt: "Using Sage in a Worksheet"
                                })
                            }),
                            /*#__PURE__*/ jsx_runtime_.jsx(pitch/* default */.Z, {
                                col1: /*#__PURE__*/ (0,jsx_runtime_.jsxs)(jsx_runtime_.Fragment, {
                                    children: [
                                        /*#__PURE__*/ (0,jsx_runtime_.jsxs)("h3", {
                                            children: [
                                                /*#__PURE__*/ jsx_runtime_.jsx(icon.Icon, {
                                                    name: "sagemath"
                                                }),
                                                " Run",
                                                " ",
                                                /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                    href: "https://sagemath.org/",
                                                    children: "SageMath"
                                                }),
                                                " on CoCalc"
                                            ]
                                        }),
                                        /*#__PURE__*/ (0,jsx_runtime_.jsxs)("ul", {
                                            children: [
                                                /*#__PURE__*/ (0,jsx_runtime_.jsxs)("li", {
                                                    children: [
                                                        "Use CoCalc's own realtime collaborative",
                                                        " ",
                                                        /*#__PURE__*/ jsx_runtime_.jsx("strong", {
                                                            children: /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                                href: "/features/jupyter-notebook",
                                                                children: "Jupyter Notebooks"
                                                            })
                                                        }),
                                                        "."
                                                    ]
                                                }),
                                                /*#__PURE__*/ (0,jsx_runtime_.jsxs)("li", {
                                                    children: [
                                                        "Use SageMath from the collaborative,",
                                                        " ",
                                                        /*#__PURE__*/ jsx_runtime_.jsx("strong", {
                                                            children: /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                                href: "/features/terminal",
                                                                children: "Linux Terminal"
                                                            })
                                                        }),
                                                        " ",
                                                        "or",
                                                        " ",
                                                        /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                            href: "/features/x11",
                                                            children: "virtual X11 graphical Linux desktop"
                                                        }),
                                                        "."
                                                    ]
                                                }),
                                                /*#__PURE__*/ (0,jsx_runtime_.jsxs)("li", {
                                                    children: [
                                                        "Use Sage optimized",
                                                        " ",
                                                        /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                            href: "https://doc.cocalc.com/sagews.html",
                                                            children: "Worksheets"
                                                        }),
                                                        ', which provide a single document experience that can be more friendly than the Jupyter notebook "multiple cells" approach.'
                                                    ]
                                                }),
                                                /*#__PURE__*/ (0,jsx_runtime_.jsxs)("li", {
                                                    children: [
                                                        "Easily embed Sage code in your",
                                                        " ",
                                                        /*#__PURE__*/ (0,jsx_runtime_.jsxs)(A/* default */.Z, {
                                                            href: "/features/latex-editor",
                                                            children: [
                                                                /*#__PURE__*/ jsx_runtime_.jsx(latex/* default */.Z, {}),
                                                                " documents"
                                                            ]
                                                        }),
                                                        "."
                                                    ]
                                                }),
                                                /*#__PURE__*/ (0,jsx_runtime_.jsxs)("li", {
                                                    children: [
                                                        "Install almost any",
                                                        " ",
                                                        /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                            href: "https://pypi.org/",
                                                            children: "Python package"
                                                        }),
                                                        " for use with Sage:",
                                                        /*#__PURE__*/ jsx_runtime_.jsx("br", {}),
                                                        /*#__PURE__*/ jsx_runtime_.jsx(code/* default */.Z, {
                                                            children: "sage --pip install package_name"
                                                        })
                                                    ]
                                                })
                                            ]
                                        })
                                    ]
                                }),
                                col2: /*#__PURE__*/ (0,jsx_runtime_.jsxs)(jsx_runtime_.Fragment, {
                                    children: [
                                        /*#__PURE__*/ jsx_runtime_.jsx("h3", {
                                            children: "Benefits of working with SageMath online"
                                        }),
                                        /*#__PURE__*/ (0,jsx_runtime_.jsxs)("ul", {
                                            children: [
                                                /*#__PURE__*/ (0,jsx_runtime_.jsxs)("li", {
                                                    children: [
                                                        "You no longer have to",
                                                        " ",
                                                        /*#__PURE__*/ jsx_runtime_.jsx("strong", {
                                                            children: /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                                href: "https://www.sagemath.org/download.html",
                                                                children: "install and maintain"
                                                            })
                                                        }),
                                                        " ",
                                                        "SageMath, which can be challenging since Sage is large. When you're ",
                                                        /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                            href: "/features/teaching",
                                                            children: "teaching a class"
                                                        }),
                                                        ", students just have to sign in to CoCalc to get started!"
                                                    ]
                                                }),
                                                /*#__PURE__*/ (0,jsx_runtime_.jsxs)("li", {
                                                    children: [
                                                        "You can still easily run ",
                                                        /*#__PURE__*/ jsx_runtime_.jsx("b", {
                                                            children: "older versions of Sage"
                                                        }),
                                                        " since many are all preinstalled in every CoCalc project."
                                                    ]
                                                }),
                                                /*#__PURE__*/ (0,jsx_runtime_.jsxs)("li", {
                                                    children: [
                                                        "All your files are private, stored persistently, snapshotted and backed up; moreover, you can ",
                                                        /*#__PURE__*/ jsx_runtime_.jsx("b", {
                                                            children: "rsync"
                                                        }),
                                                        " them to your computer or push them to ",
                                                        /*#__PURE__*/ jsx_runtime_.jsx("b", {
                                                            children: "GitHub"
                                                        }),
                                                        "."
                                                    ]
                                                }),
                                                /*#__PURE__*/ (0,jsx_runtime_.jsxs)("li", {
                                                    children: [
                                                        "You can invite ",
                                                        /*#__PURE__*/ jsx_runtime_.jsx("strong", {
                                                            children: "collaborators"
                                                        }),
                                                        " to your project to simultaneously edit the same notebooks or code files."
                                                    ]
                                                }),
                                                /*#__PURE__*/ (0,jsx_runtime_.jsxs)("li", {
                                                    children: [
                                                        "Everything runs remotely, which means you do not have to worry about messing up your own computer.",
                                                        " "
                                                    ]
                                                })
                                            ]
                                        })
                                    ]
                                })
                            }),
                            /*#__PURE__*/ jsx_runtime_.jsx(sign_in/* default */.Z, {
                                startup: component
                            }),
                            /*#__PURE__*/ jsx_runtime_.jsx(info/* default.Heading */.Z.Heading, {
                                description: /*#__PURE__*/ (0,jsx_runtime_.jsxs)(jsx_runtime_.Fragment, {
                                    children: [
                                        "There are many ways to use ",
                                        component,
                                        " online via CoCalc."
                                    ]
                                }),
                                children: "Feature Overview"
                            }),
                            /*#__PURE__*/ (0,jsx_runtime_.jsxs)(info/* default */.Z, {
                                title: "Teach using SageMath and Nbgrader",
                                image: sage_nbgrader,
                                alt: "A screenshot using nbgrader with SageMath.",
                                anchor: "nbgrader",
                                children: [
                                    /*#__PURE__*/ (0,jsx_runtime_.jsxs)("p", {
                                        children: [
                                            "CoCalc's",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "/features/teaching",
                                                children: "integrated course management system"
                                            }),
                                            " ",
                                            "fully supports",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://doc.cocalc.com/teaching-nbgrader.html",
                                                children: "using nbgrader together with SageMath"
                                            }),
                                            " ",
                                            "Jupyter Notebooks."
                                        ]
                                    }),
                                    /*#__PURE__*/ jsx_runtime_.jsx("p", {
                                        children: "We provide custom Python templates for all the nbgrader cell types."
                                    }),
                                    /*#__PURE__*/ jsx_runtime_.jsx("p", {
                                        children: "Tests run in the student's project by default, so malicious code won't impact anybody except the student."
                                    })
                                ]
                            }),
                            /*#__PURE__*/ jsx_runtime_.jsx(snapshots/* default */.Z, {}),
                            /*#__PURE__*/ jsx_runtime_.jsx(sign_in/* default */.Z, {
                                startup: component
                            })
                        ]
                    }),
                    /*#__PURE__*/ jsx_runtime_.jsx(footer/* default */.Z, {})
                ]
            })
        ]
    });
};
async function getServerSideProps(context) {
    return await (0,with_customize/* default */.Z)({
        context
    });
}


/***/ }),

/***/ 545725:
/***/ ((module) => {

module.exports = require("antd");

/***/ }),

/***/ 770640:
/***/ ((module) => {

module.exports = require("cookies");

/***/ }),

/***/ 65680:
/***/ ((module) => {

module.exports = require("lru-cache");

/***/ }),

/***/ 492796:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/head-manager-context.js");

/***/ }),

/***/ 294957:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/head.js");

/***/ }),

/***/ 703539:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/i18n/detect-domain-locale.js");

/***/ }),

/***/ 734014:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/i18n/normalize-locale-path.js");

/***/ }),

/***/ 450744:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/image-config-context.js");

/***/ }),

/***/ 435843:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/image-config.js");

/***/ }),

/***/ 278524:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/is-plain-object.js");

/***/ }),

/***/ 878020:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/mitt.js");

/***/ }),

/***/ 664406:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/page-path/denormalize-page-path.js");

/***/ }),

/***/ 424964:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router-context.js");

/***/ }),

/***/ 623938:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/format-url.js");

/***/ }),

/***/ 329565:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/get-asset-path-from-route.js");

/***/ }),

/***/ 264365:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/get-middleware-regex.js");

/***/ }),

/***/ 901428:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/is-dynamic.js");

/***/ }),

/***/ 491292:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/parse-relative-url.js");

/***/ }),

/***/ 980979:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/querystring.js");

/***/ }),

/***/ 836052:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/resolve-rewrites.js");

/***/ }),

/***/ 584226:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/route-matcher.js");

/***/ }),

/***/ 95052:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/route-regex.js");

/***/ }),

/***/ 359232:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/utils.js");

/***/ }),

/***/ 40968:
/***/ ((module) => {

module.exports = require("next/head");

/***/ }),

/***/ 371853:
/***/ ((module) => {

module.exports = require("next/router");

/***/ }),

/***/ 616689:
/***/ ((module) => {

module.exports = require("react");

/***/ }),

/***/ 566405:
/***/ ((module) => {

module.exports = require("react-dom");

/***/ }),

/***/ 271704:
/***/ ((module) => {

module.exports = require("react-google-recaptcha-v3");

/***/ }),

/***/ 920997:
/***/ ((module) => {

module.exports = require("react/jsx-runtime");

/***/ }),

/***/ 439491:
/***/ ((module) => {

module.exports = require("assert");

/***/ }),

/***/ 714300:
/***/ ((module) => {

module.exports = require("buffer");

/***/ }),

/***/ 706113:
/***/ ((module) => {

module.exports = require("crypto");

/***/ }),

/***/ 809523:
/***/ ((module) => {

module.exports = require("dns");

/***/ }),

/***/ 582361:
/***/ ((module) => {

module.exports = require("events");

/***/ }),

/***/ 657147:
/***/ ((module) => {

module.exports = require("fs");

/***/ }),

/***/ 241808:
/***/ ((module) => {

module.exports = require("net");

/***/ }),

/***/ 822037:
/***/ ((module) => {

module.exports = require("os");

/***/ }),

/***/ 371017:
/***/ ((module) => {

module.exports = require("path");

/***/ }),

/***/ 677282:
/***/ ((module) => {

module.exports = require("process");

/***/ }),

/***/ 285477:
/***/ ((module) => {

module.exports = require("punycode");

/***/ }),

/***/ 12781:
/***/ ((module) => {

module.exports = require("stream");

/***/ }),

/***/ 371576:
/***/ ((module) => {

module.exports = require("string_decoder");

/***/ }),

/***/ 924404:
/***/ ((module) => {

module.exports = require("tls");

/***/ }),

/***/ 76224:
/***/ ((module) => {

module.exports = require("tty");

/***/ }),

/***/ 257310:
/***/ ((module) => {

module.exports = require("url");

/***/ }),

/***/ 473837:
/***/ ((module) => {

module.exports = require("util");

/***/ })

};
;

// load runtime
var __webpack_require__ = require("../../webpack-runtime.js");
__webpack_require__.C(exports);
var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
var __webpack_exports__ = __webpack_require__.X(0, [549,6918,3429,1746,9505,1748,3734,2208,5654,9925,9715,2448,1107,9521,5114,8278,722,3624,9924,5379,2353,81,3144,6796,2620,3375,2240,3684], () => (__webpack_exec__(36922)));
module.exports = __webpack_exports__;

})();