├── .dockerignore ├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── .travis.yml ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE ├── README.md ├── app ├── container.php ├── middleware.php ├── predefine.php └── routes.php ├── composer.json ├── config └── .config.example.php ├── public ├── 404.html ├── assets │ ├── css │ │ ├── font-awesome.css │ │ ├── font-awesome.min.css │ │ ├── ie9.css │ │ ├── main.css │ │ ├── mikufont.css │ │ └── noscript.css │ ├── fonts │ │ ├── bk_font │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ │ ├── source-sans-pro-300.woff2 │ │ └── source-sans-pro-600.woff2 │ ├── js │ │ ├── canvas-nest.min.js │ │ ├── canvasjs.min.js │ │ ├── fuck.js │ │ ├── jquery.min.js │ │ ├── login.js │ │ ├── main.js │ │ ├── qrcode.min.js │ │ ├── runner.js │ │ ├── skel.min.js │ │ └── util.js │ ├── materialize │ │ ├── css │ │ │ ├── materialize.min.css │ │ │ └── style.css │ │ ├── font │ │ │ ├── Material_Icons.woff2 │ │ │ └── material-design-icons │ │ │ │ ├── LICENSE.txt │ │ │ │ ├── Material-Design-Icons.eot │ │ │ │ ├── Material-Design-Icons.svg │ │ │ │ ├── Material-Design-Icons.ttf │ │ │ │ ├── Material-Design-Icons.woff │ │ │ │ ├── Material-Design-Icons.woff2 │ │ │ │ └── cd-top-arrow.svg │ │ └── js │ │ │ ├── init.js │ │ │ └── materialize.min.js │ └── public │ │ ├── css │ │ ├── AdminLTE.min.css │ │ ├── blue.css │ │ ├── bootstrap.min.css │ │ ├── jumbotron-narrow.css │ │ ├── skins │ │ │ └── _all-skins.min.css │ │ └── sticky-footer-navbar.css │ │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ │ ├── img │ │ ├── blue.png │ │ └── blue@2x.png │ │ ├── js │ │ ├── app.min.js │ │ ├── bootstrap.min.js │ │ ├── icheck.min.js │ │ ├── jquery.min.js │ │ └── jquery.qrcode.min.js │ │ └── plugins │ │ ├── fastclick │ │ └── fastclick.min.js │ │ └── slimScroll │ │ └── jquery.slimscroll.min.js ├── favicon.ico ├── images │ ├── Avatar.jpg │ ├── alipay.jpg │ ├── authlogo.jpg │ ├── bg.jpg │ ├── c-linux-1.png │ ├── c-linux-2.png │ ├── c-linux-3.png │ ├── c-linux-4.png │ ├── c-linux-5.png │ ├── c-linux-6.png │ ├── c-linux-7.png │ ├── c_android_1.jpg │ ├── c_android_2.jpg │ ├── c_android_3.jpg │ ├── c_android_4.jpg │ ├── c_android_5.jpg │ ├── c_android_6.jpg │ ├── c_android_7.jpg │ ├── c_android_8.jpg │ ├── c_ios_1.jpg │ ├── c_ios_2.jpg │ ├── c_ios_3.jpg │ ├── c_ios_4.jpg │ ├── c_mac_1.png │ ├── c_mac_2.png │ ├── c_mac_3.png │ ├── c_mac_4.png │ ├── c_mac_5.png │ ├── c_mac_6.png │ ├── c_mac_7.png │ ├── c_win_1.png │ ├── c_win_2.png │ ├── c_win_3.png │ ├── c_win_4.png │ ├── c_win_5.png │ ├── c_win_6.png │ ├── c_win_7.png │ ├── c_win_8.png │ ├── email_nrcy.jpg │ ├── logo_white.png │ ├── node.gif │ ├── overlay.png │ ├── prefix │ │ ├── unknown.png │ │ ├── v2ray.png │ │ ├── 不丹.png │ │ ├── 东帝汶.png │ │ ├── 中国.png │ │ ├── 中非.png │ │ ├── 丹麦.png │ │ ├── 乌克兰.png │ │ ├── 乌兹别克斯坦.png │ │ ├── 乌干达.png │ │ ├── 乌拉圭.png │ │ ├── 乍得.png │ │ ├── 也门.png │ │ ├── 亚美尼亚.png │ │ ├── 以色列.png │ │ ├── 伊拉克.png │ │ ├── 伊朗.png │ │ ├── 伯利兹.png │ │ ├── 佛得角.png │ │ ├── 俄罗斯.png │ │ ├── 保加利亚.png │ │ ├── 克罗地亚.png │ │ ├── 冈比亚.png │ │ ├── 冰岛.png │ │ ├── 几内亚比绍.png │ │ ├── 列支敦士登.png │ │ ├── 刚果.png │ │ ├── 刚果(金).png │ │ ├── 利比亚.png │ │ ├── 利比里亚.png │ │ ├── 加拿大.png │ │ ├── 加纳.png │ │ ├── 加蓬.png │ │ ├── 匈牙利.png │ │ ├── 南苏丹.png │ │ ├── 南非洲.png │ │ ├── 博茨瓦纳.png │ │ ├── 卡塔尔.png │ │ ├── 卢旺达.png │ │ ├── 卢森堡.png │ │ ├── 印度.png │ │ ├── 印度尼西亚.png │ │ ├── 危地马拉.png │ │ ├── 厄瓜多尔.png │ │ ├── 厄立特里亚.png │ │ ├── 叙利亚.png │ │ ├── 古巴.png │ │ ├── 台湾.png │ │ ├── 吉尔吉斯斯坦.png │ │ ├── 吉布提.png │ │ ├── 哈萨克斯坦.png │ │ ├── 哥伦比亚.png │ │ ├── 哥斯达黎加.png │ │ ├── 喀麦隆.png │ │ ├── 图瓦卢.png │ │ ├── 土库曼斯坦.png │ │ ├── 土耳其.png │ │ ├── 圣卢西亚.png │ │ ├── 圣基茨和尼维斯.png │ │ ├── 圣文森特和格林纳丁斯.png │ │ ├── 圣普.png │ │ ├── 圣马力诺.png │ │ ├── 圭亚那.png │ │ ├── 坦桑尼亚.png │ │ ├── 埃及.png │ │ ├── 埃塞俄比亚.png │ │ ├── 基里巴斯.png │ │ ├── 塔吉克斯坦.png │ │ ├── 塞内加尔.png │ │ ├── 塞尔维亚.png │ │ ├── 塞拉利昂.png │ │ ├── 塞浦路斯.png │ │ ├── 塞舌尔.png │ │ ├── 墨西哥.png │ │ ├── 多哥.png │ │ ├── 多米尼克.png │ │ ├── 多米尼加.png │ │ ├── 奥地利.png │ │ ├── 委内瑞拉.png │ │ ├── 孟加拉国.png │ │ ├── 安巴.png │ │ ├── 安道尔.png │ │ ├── 密克罗尼西亚.png │ │ ├── 尼加拉瓜.png │ │ ├── 尼日利亚.png │ │ ├── 尼日尔.png │ │ ├── 尼泊尔.png │ │ ├── 巴哈马.png │ │ ├── 巴基斯坦.png │ │ ├── 巴巴多斯.png │ │ ├── 巴布亚新几内亚.png │ │ ├── 巴拉圭.png │ │ ├── 巴拿马.png │ │ ├── 巴林.png │ │ ├── 巴西.png │ │ ├── 布基纳法索.png │ │ ├── 布隆迪.png │ │ ├── 希腊.png │ │ ├── 帕劳.png │ │ ├── 德国.png │ │ ├── 意大利.png │ │ ├── 所罗门岛.png │ │ ├── 拉脱维亚.png │ │ ├── 挪威.png │ │ ├── 捷克共和国.png │ │ ├── 摩尔多瓦.png │ │ ├── 摩洛哥.png │ │ ├── 摩纳哥.png │ │ ├── 文莱.png │ │ ├── 斐济.png │ │ ├── 斯威士兰.png │ │ ├── 斯洛伐克.png │ │ ├── 斯洛文尼亚.png │ │ ├── 斯里兰卡.png │ │ ├── 新加坡.png │ │ ├── 新西兰.png │ │ ├── 日本.png │ │ ├── 智利.png │ │ ├── 朝鲜.png │ │ ├── 柬埔寨.png │ │ ├── 格林纳达.png │ │ ├── 格鲁吉亚.png │ │ ├── 梵蒂冈城.png │ │ ├── 比利时.png │ │ ├── 毛里塔尼亚.png │ │ ├── 毛里求斯.png │ │ ├── 汤加.png │ │ ├── 沙特阿拉伯.png │ │ ├── 法国.png │ │ ├── 波兰.png │ │ ├── 波黑.png │ │ ├── 泰国.png │ │ ├── 津巴布韦.png │ │ ├── 洪都拉斯.png │ │ ├── 海地.png │ │ ├── 澳大利亚.png │ │ ├── 爱尔兰.png │ │ ├── 爱沙尼亚.png │ │ ├── 牙买加.png │ │ ├── 特多.png │ │ ├── 玻利维亚.png │ │ ├── 瑙鲁.png │ │ ├── 瑞典.png │ │ ├── 瑞士.png │ │ ├── 瓦努阿图.png │ │ ├── 白俄罗斯.png │ │ ├── 科威特.png │ │ ├── 科摩罗.png │ │ ├── 科特迪瓦.png │ │ ├── 科索沃.png │ │ ├── 秘鲁.png │ │ ├── 突尼斯.png │ │ ├── 立陶宛.png │ │ ├── 索马里.png │ │ ├── 约旦.png │ │ ├── 纳米比亚.png │ │ ├── 缅甸.png │ │ ├── 罗马尼亚.png │ │ ├── 美国.png │ │ ├── 老挝.png │ │ ├── 肯尼亚.png │ │ ├── 芬兰.png │ │ ├── 苏丹.png │ │ ├── 苏里南.png │ │ ├── 英国.png │ │ ├── 荷兰.png │ │ ├── 莫桑比克.png │ │ ├── 莱索托.png │ │ ├── 菲律宾.png │ │ ├── 萨尔瓦多.png │ │ ├── 萨摩亚.png │ │ ├── 葡萄牙.png │ │ ├── 蒙古.png │ │ ├── 西班牙.png │ │ ├── 贝宁.png │ │ ├── 赞比亚.png │ │ ├── 赤道几内亚.png │ │ ├── 越南.png │ │ ├── 阿塞拜疆.png │ │ ├── 阿富汗.png │ │ ├── 阿尔及利亚.png │ │ ├── 阿尔巴尼亚.png │ │ ├── 阿曼.png │ │ ├── 阿根廷.png │ │ ├── 阿联酋.png │ │ ├── 韩国.png │ │ ├── 香港.png │ │ ├── 马其顿.png │ │ ├── 马尔代夫.png │ │ ├── 马拉维.png │ │ ├── 马来西亚.png │ │ ├── 马绍尔群岛.png │ │ ├── 马耳他.png │ │ ├── 马达加斯加.png │ │ ├── 马里.png │ │ ├── 黎巴嫩.png │ │ └── 黑山.png │ ├── qqpay.jpg │ └── weixin.jpg ├── index.php ├── paolu.html ├── robots.txt ├── theme │ └── material │ │ ├── assets │ │ ├── js-project │ │ │ ├── page-picker.js │ │ │ ├── ui-picker.js │ │ │ ├── ui-progress.js │ │ │ └── ui-snackbar.js │ │ └── js │ │ │ ├── _.js │ │ │ ├── bootstrap.js │ │ │ ├── form-floating-label.js │ │ │ ├── form-textarea.js │ │ │ ├── header.js │ │ │ ├── menu.js │ │ │ ├── modal.js │ │ │ ├── picker.js │ │ │ ├── snackbar.js │ │ │ ├── tab.js │ │ │ ├── tile.js │ │ │ └── wave.js │ │ ├── css │ │ ├── auth.css │ │ ├── base.css │ │ ├── base.min.css │ │ ├── dataTables.material.min.css │ │ ├── fonts │ │ │ ├── MaterialIcons-Regular.eot │ │ │ ├── MaterialIcons-Regular.ijmap │ │ │ ├── MaterialIcons-Regular.svg │ │ │ ├── MaterialIcons-Regular.ttf │ │ │ ├── MaterialIcons-Regular.woff │ │ │ ├── MaterialIcons-Regular.woff2 │ │ │ ├── README.md │ │ │ ├── codepoints │ │ │ └── flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2 │ │ ├── icon.css │ │ ├── images │ │ │ ├── arrow.png │ │ │ └── bg │ │ │ │ ├── amber.jpg │ │ │ │ ├── amber2.jpg │ │ │ │ ├── amber3.jpg │ │ │ │ ├── amber4.jpg │ │ │ │ ├── brand.jpg │ │ │ │ ├── green.jpg │ │ │ │ ├── purple.jpg │ │ │ │ ├── red.jpg │ │ │ │ └── teal.jpg │ │ ├── index.css │ │ ├── index_base.css │ │ ├── material.min.css │ │ ├── project.css │ │ ├── project.min.css │ │ ├── roboto.css │ │ └── user.css │ │ ├── editor │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── css │ │ │ ├── editormd.css │ │ │ ├── editormd.logo.css │ │ │ ├── editormd.logo.min.css │ │ │ ├── editormd.min.css │ │ │ ├── editormd.preview.css │ │ │ └── editormd.preview.min.css │ │ ├── editormd.amd.js │ │ ├── editormd.amd.min.js │ │ ├── editormd.js │ │ ├── editormd.min.js │ │ ├── images │ │ │ ├── loading.gif │ │ │ ├── loading@2x.gif │ │ │ └── loading@3x.gif │ │ ├── languages │ │ │ ├── en.js │ │ │ └── zh-tw.js │ │ ├── lib │ │ │ ├── codemirror │ │ │ │ ├── LICENSE │ │ │ │ ├── addon │ │ │ │ │ ├── comment │ │ │ │ │ │ ├── comment.js │ │ │ │ │ │ └── continuecomment.js │ │ │ │ │ ├── dialog │ │ │ │ │ │ ├── dialog.css │ │ │ │ │ │ └── dialog.js │ │ │ │ │ ├── display │ │ │ │ │ │ ├── fullscreen.css │ │ │ │ │ │ ├── fullscreen.js │ │ │ │ │ │ ├── panel.js │ │ │ │ │ │ ├── placeholder.js │ │ │ │ │ │ └── rulers.js │ │ │ │ │ ├── edit │ │ │ │ │ │ ├── closebrackets.js │ │ │ │ │ │ ├── closetag.js │ │ │ │ │ │ ├── continuelist.js │ │ │ │ │ │ ├── matchbrackets.js │ │ │ │ │ │ ├── matchtags.js │ │ │ │ │ │ └── trailingspace.js │ │ │ │ │ ├── fold │ │ │ │ │ │ ├── brace-fold.js │ │ │ │ │ │ ├── comment-fold.js │ │ │ │ │ │ ├── foldcode.js │ │ │ │ │ │ ├── foldgutter.css │ │ │ │ │ │ ├── foldgutter.js │ │ │ │ │ │ ├── indent-fold.js │ │ │ │ │ │ ├── markdown-fold.js │ │ │ │ │ │ └── xml-fold.js │ │ │ │ │ ├── hint │ │ │ │ │ │ ├── anyword-hint.js │ │ │ │ │ │ ├── css-hint.js │ │ │ │ │ │ ├── html-hint.js │ │ │ │ │ │ ├── javascript-hint.js │ │ │ │ │ │ ├── show-hint.css │ │ │ │ │ │ ├── show-hint.js │ │ │ │ │ │ ├── sql-hint.js │ │ │ │ │ │ └── xml-hint.js │ │ │ │ │ ├── lint │ │ │ │ │ │ ├── coffeescript-lint.js │ │ │ │ │ │ ├── css-lint.js │ │ │ │ │ │ ├── javascript-lint.js │ │ │ │ │ │ ├── json-lint.js │ │ │ │ │ │ ├── lint.css │ │ │ │ │ │ ├── lint.js │ │ │ │ │ │ └── yaml-lint.js │ │ │ │ │ ├── merge │ │ │ │ │ │ ├── merge.css │ │ │ │ │ │ └── merge.js │ │ │ │ │ ├── mode │ │ │ │ │ │ ├── loadmode.js │ │ │ │ │ │ ├── multiplex.js │ │ │ │ │ │ ├── multiplex_test.js │ │ │ │ │ │ ├── overlay.js │ │ │ │ │ │ └── simple.js │ │ │ │ │ ├── runmode │ │ │ │ │ │ ├── colorize.js │ │ │ │ │ │ ├── runmode-standalone.js │ │ │ │ │ │ ├── runmode.js │ │ │ │ │ │ └── runmode.node.js │ │ │ │ │ ├── scroll │ │ │ │ │ │ ├── annotatescrollbar.js │ │ │ │ │ │ ├── scrollpastend.js │ │ │ │ │ │ ├── simplescrollbars.css │ │ │ │ │ │ └── simplescrollbars.js │ │ │ │ │ ├── search │ │ │ │ │ │ ├── match-highlighter.js │ │ │ │ │ │ ├── matchesonscrollbar.css │ │ │ │ │ │ ├── matchesonscrollbar.js │ │ │ │ │ │ ├── search.js │ │ │ │ │ │ └── searchcursor.js │ │ │ │ │ ├── selection │ │ │ │ │ │ ├── active-line.js │ │ │ │ │ │ ├── mark-selection.js │ │ │ │ │ │ └── selection-pointer.js │ │ │ │ │ ├── tern │ │ │ │ │ │ ├── tern.css │ │ │ │ │ │ ├── tern.js │ │ │ │ │ │ └── worker.js │ │ │ │ │ └── wrap │ │ │ │ │ │ └── hardwrap.js │ │ │ │ ├── addons.min.js │ │ │ │ ├── codemirror.min.css │ │ │ │ ├── codemirror.min.js │ │ │ │ ├── lib │ │ │ │ │ ├── codemirror.css │ │ │ │ │ └── codemirror.js │ │ │ │ ├── mode │ │ │ │ │ ├── apl │ │ │ │ │ │ ├── apl.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── asterisk │ │ │ │ │ │ ├── asterisk.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── clike │ │ │ │ │ │ ├── clike.js │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── scala.html │ │ │ │ │ ├── clojure │ │ │ │ │ │ ├── clojure.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── cobol │ │ │ │ │ │ ├── cobol.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── coffeescript │ │ │ │ │ │ ├── coffeescript.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── commonlisp │ │ │ │ │ │ ├── commonlisp.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── css │ │ │ │ │ │ ├── css.js │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── less.html │ │ │ │ │ │ ├── less_test.js │ │ │ │ │ │ ├── scss.html │ │ │ │ │ │ ├── scss_test.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── cypher │ │ │ │ │ │ ├── cypher.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── d │ │ │ │ │ │ ├── d.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── dart │ │ │ │ │ │ ├── dart.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── diff │ │ │ │ │ │ ├── diff.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── django │ │ │ │ │ │ ├── django.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── dockerfile │ │ │ │ │ │ ├── dockerfile.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── dtd │ │ │ │ │ │ ├── dtd.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── dylan │ │ │ │ │ │ ├── dylan.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── ebnf │ │ │ │ │ │ ├── ebnf.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── ecl │ │ │ │ │ │ ├── ecl.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── eiffel │ │ │ │ │ │ ├── eiffel.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── erlang │ │ │ │ │ │ ├── erlang.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── forth │ │ │ │ │ │ ├── forth.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── fortran │ │ │ │ │ │ ├── fortran.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── gas │ │ │ │ │ │ ├── gas.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── gfm │ │ │ │ │ │ ├── gfm.js │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── gherkin │ │ │ │ │ │ ├── gherkin.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── go │ │ │ │ │ │ ├── go.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── groovy │ │ │ │ │ │ └── groovy.js │ │ │ │ │ ├── haml │ │ │ │ │ │ ├── haml.js │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── haskell │ │ │ │ │ │ ├── haskell.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── haxe │ │ │ │ │ │ ├── haxe.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── htmlembedded │ │ │ │ │ │ ├── htmlembedded.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── htmlmixed │ │ │ │ │ │ ├── htmlmixed.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── http │ │ │ │ │ │ ├── http.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── idl │ │ │ │ │ │ ├── idl.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── index.html │ │ │ │ │ ├── jade │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── jade.js │ │ │ │ │ ├── javascript │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── javascript.js │ │ │ │ │ │ ├── json-ld.html │ │ │ │ │ │ ├── test.js │ │ │ │ │ │ └── typescript.html │ │ │ │ │ ├── jinja2 │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── jinja2.js │ │ │ │ │ ├── julia │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── julia.js │ │ │ │ │ ├── kotlin │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── kotlin.js │ │ │ │ │ ├── livescript │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── livescript.js │ │ │ │ │ ├── lua │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── lua.js │ │ │ │ │ ├── markdown │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── markdown.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── meta.js │ │ │ │ │ ├── mirc │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── mirc.js │ │ │ │ │ ├── mllike │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── mllike.js │ │ │ │ │ ├── modelica │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── modelica.js │ │ │ │ │ ├── nginx │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── nginx.js │ │ │ │ │ ├── ntriples │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── ntriples.js │ │ │ │ │ ├── octave │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── octave.js │ │ │ │ │ ├── pascal │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── pascal.js │ │ │ │ │ ├── pegjs │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── pegjs.js │ │ │ │ │ ├── perl │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── perl.js │ │ │ │ │ ├── php │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── php.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── pig │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── pig.js │ │ │ │ │ ├── properties │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── properties.js │ │ │ │ │ ├── puppet │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── puppet.js │ │ │ │ │ ├── python │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── python.js │ │ │ │ │ ├── q │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── q.js │ │ │ │ │ ├── r │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── r.js │ │ │ │ │ ├── rpm │ │ │ │ │ │ ├── changes │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── rpm.js │ │ │ │ │ ├── rst │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── rst.js │ │ │ │ │ ├── ruby │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── ruby.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── rust │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── rust.js │ │ │ │ │ ├── sass │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── sass.js │ │ │ │ │ ├── scheme │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── scheme.js │ │ │ │ │ ├── shell │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── shell.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── sieve │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── sieve.js │ │ │ │ │ ├── slim │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── slim.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── smalltalk │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── smalltalk.js │ │ │ │ │ ├── smarty │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── smarty.js │ │ │ │ │ ├── smartymixed │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── smartymixed.js │ │ │ │ │ ├── solr │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── solr.js │ │ │ │ │ ├── soy │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── soy.js │ │ │ │ │ ├── sparql │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── sparql.js │ │ │ │ │ ├── spreadsheet │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── spreadsheet.js │ │ │ │ │ ├── sql │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── sql.js │ │ │ │ │ ├── stex │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── stex.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── stylus │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── stylus.js │ │ │ │ │ ├── tcl │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── tcl.js │ │ │ │ │ ├── textile │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── test.js │ │ │ │ │ │ └── textile.js │ │ │ │ │ ├── tiddlywiki │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── tiddlywiki.css │ │ │ │ │ │ └── tiddlywiki.js │ │ │ │ │ ├── tiki │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── tiki.css │ │ │ │ │ │ └── tiki.js │ │ │ │ │ ├── toml │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── toml.js │ │ │ │ │ ├── tornado │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── tornado.js │ │ │ │ │ ├── turtle │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── turtle.js │ │ │ │ │ ├── vb │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── vb.js │ │ │ │ │ ├── vbscript │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── vbscript.js │ │ │ │ │ ├── velocity │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── velocity.js │ │ │ │ │ ├── verilog │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── test.js │ │ │ │ │ │ └── verilog.js │ │ │ │ │ ├── xml │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── test.js │ │ │ │ │ │ └── xml.js │ │ │ │ │ ├── xquery │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── test.js │ │ │ │ │ │ └── xquery.js │ │ │ │ │ ├── yaml │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── yaml.js │ │ │ │ │ └── z80 │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── z80.js │ │ │ │ ├── modes.min.js │ │ │ │ └── theme │ │ │ │ │ ├── 3024-day.css │ │ │ │ │ ├── 3024-night.css │ │ │ │ │ ├── ambiance-mobile.css │ │ │ │ │ ├── ambiance.css │ │ │ │ │ ├── base16-dark.css │ │ │ │ │ ├── base16-light.css │ │ │ │ │ ├── blackboard.css │ │ │ │ │ ├── cobalt.css │ │ │ │ │ ├── colorforth.css │ │ │ │ │ ├── eclipse.css │ │ │ │ │ ├── elegant.css │ │ │ │ │ ├── erlang-dark.css │ │ │ │ │ ├── lesser-dark.css │ │ │ │ │ ├── mbo.css │ │ │ │ │ ├── mdn-like.css │ │ │ │ │ ├── midnight.css │ │ │ │ │ ├── monokai.css │ │ │ │ │ ├── neat.css │ │ │ │ │ ├── neo.css │ │ │ │ │ ├── night.css │ │ │ │ │ ├── paraiso-dark.css │ │ │ │ │ ├── paraiso-light.css │ │ │ │ │ ├── pastel-on-dark.css │ │ │ │ │ ├── rubyblue.css │ │ │ │ │ ├── solarized.css │ │ │ │ │ ├── the-matrix.css │ │ │ │ │ ├── tomorrow-night-bright.css │ │ │ │ │ ├── tomorrow-night-eighties.css │ │ │ │ │ ├── twilight.css │ │ │ │ │ ├── vibrant-ink.css │ │ │ │ │ ├── xq-dark.css │ │ │ │ │ ├── xq-light.css │ │ │ │ │ └── zenburn.css │ │ │ ├── flowchart.min.js │ │ │ ├── jquery.flowchart.min.js │ │ │ ├── marked.min.js │ │ │ ├── prettify.min.js │ │ │ ├── raphael.min.js │ │ │ ├── sequence-diagram.min.js │ │ │ └── underscore.min.js │ │ ├── plugins │ │ │ ├── code-block-dialog │ │ │ │ └── code-block-dialog.js │ │ │ ├── emoji-dialog │ │ │ │ ├── emoji-dialog.js │ │ │ │ └── emoji.json │ │ │ ├── goto-line-dialog │ │ │ │ └── goto-line-dialog.js │ │ │ ├── help-dialog │ │ │ │ ├── help-dialog.js │ │ │ │ └── help.md │ │ │ ├── html-entities-dialog │ │ │ │ ├── html-entities-dialog.js │ │ │ │ └── html-entities.json │ │ │ ├── image-dialog │ │ │ │ └── image-dialog.js │ │ │ ├── link-dialog │ │ │ │ └── link-dialog.js │ │ │ ├── plugin-template.js │ │ │ ├── preformatted-text-dialog │ │ │ │ └── preformatted-text-dialog.js │ │ │ ├── reference-link-dialog │ │ │ │ └── reference-link-dialog.js │ │ │ ├── table-dialog │ │ │ │ └── table-dialog.js │ │ │ └── test-plugin │ │ │ │ └── test-plugin.js │ │ └── src │ │ │ └── editormd.js │ │ ├── images │ │ ├── samples │ │ │ ├── landscape.jpg │ │ │ └── portrait.jpg │ │ └── users │ │ │ ├── avatar-001.jpg │ │ │ └── trafficbar.png │ │ └── js │ │ ├── axios.min.js │ │ ├── base.js │ │ ├── base.min.js │ │ ├── clipboard.min.js │ │ ├── jquery.min.js │ │ ├── jquery.qrcode.min.js │ │ ├── project.js │ │ ├── project.min.js │ │ ├── shake.js │ │ ├── .gitignore │ │ ├── LICENSE.md │ │ └── shake.js │ │ ├── vue-router.min.js │ │ ├── vue.min.js │ │ └── vuex.min.js └── vuedist │ ├── css │ └── app.61ab07bd.css │ ├── favicon.ico │ └── js │ ├── app.8f5f1d43.js │ ├── app.8f5f1d43.js.map │ ├── chunk-vendors.0ef9ccce.js │ └── chunk-vendors.0ef9ccce.js.map ├── resources ├── clients │ ├── README.txt │ ├── ss-win │ │ └── 使用注意.txt │ ├── ssd-win │ │ └── 使用注意.txt │ └── ssr-win │ │ └── 使用注意.txt ├── conf │ └── clash.tpl ├── email │ ├── auth │ │ └── verify.tpl │ ├── ext │ │ └── back.tpl │ ├── news │ │ ├── backup.tpl │ │ ├── daily-traffic-report.tpl │ │ ├── finance.tpl │ │ └── warn.tpl │ ├── newuser.tpl │ ├── password │ │ ├── reset.tpl │ │ └── vpn.tpl │ └── test.tpl └── views │ └── material │ ├── 404.tpl │ ├── 405.tpl │ ├── 500.tpl │ ├── admin │ ├── announcement │ │ ├── create.tpl │ │ ├── edit.tpl │ │ └── index.tpl │ ├── auto │ │ ├── add.tpl │ │ └── index.tpl │ ├── code │ │ ├── add.tpl │ │ ├── add_donate.tpl │ │ └── index.tpl │ ├── coupon.tpl │ ├── detect │ │ ├── add.tpl │ │ ├── edit.tpl │ │ ├── index.tpl │ │ └── log.tpl │ ├── footer.tpl │ ├── index.tpl │ ├── invite.tpl │ ├── ip │ │ ├── alive.tpl │ │ ├── block.tpl │ │ ├── login.tpl │ │ └── unblock.tpl │ ├── main.tpl │ ├── node │ │ ├── create.tpl │ │ ├── edit.tpl │ │ └── index.tpl │ ├── payEdit.tpl │ ├── relay │ │ ├── add.tpl │ │ ├── edit.tpl │ │ ├── index.tpl │ │ └── search.tpl │ ├── shop │ │ ├── bought.tpl │ │ ├── create.tpl │ │ ├── edit.tpl │ │ └── index.tpl │ ├── sys.tpl │ ├── ticket │ │ ├── index.tpl │ │ └── view.tpl │ ├── trafficlog.tpl │ └── user │ │ ├── edit.tpl │ │ └── index.tpl │ ├── analytics.tpl │ ├── auth │ ├── login.tpl │ └── register.tpl │ ├── dialog.tpl │ ├── email_nrcy.tpl │ ├── footer.tpl │ ├── header.tpl │ ├── index.tpl │ ├── indexold.tpl │ ├── mylivechat.tpl │ ├── password │ ├── reset.tpl │ └── token.tpl │ ├── reg_tos.tpl │ ├── staff.tpl │ ├── table │ ├── checkbox.tpl │ ├── js_1.tpl │ ├── js_2.tpl │ ├── js_delete.tpl │ ├── lang_chinese.tpl │ └── table.tpl │ ├── telegram_error.tpl │ ├── telegram_success.tpl │ ├── tos.tpl │ └── user │ ├── announcement.tpl │ ├── aopf2f.tpl │ ├── bitpay.tpl │ ├── bought.tpl │ ├── chenPay.tpl │ ├── code.tpl │ ├── detect_index.tpl │ ├── detect_log.tpl │ ├── disable.tpl │ ├── doiam.tpl │ ├── donate.tpl │ ├── edit.tpl │ ├── footer.tpl │ ├── header_info.tpl │ ├── index.tpl │ ├── invite.tpl │ ├── kill.tpl │ ├── lookingglass.tpl │ ├── main.tpl │ ├── markdown │ ├── electron-ssr.md │ ├── potatso-lite.md │ ├── quantumult.md │ ├── router-ss.md │ ├── router.md │ ├── shadowrocket.md │ ├── ss-qt5.md │ ├── ssd-android.md │ ├── ssd-windows.md │ ├── ssr-android.md │ ├── ssr-mac.md │ ├── ssr-win.md │ ├── sstap.md │ ├── ssx.md │ ├── v2rayn.md │ └── v2rayng.md │ ├── node.tpl │ ├── nodeajax.tpl │ ├── nodeinfo.tpl │ ├── nodeinfoanyconnect.tpl │ ├── nodeinfossh.tpl │ ├── nodeinfovpn.tpl │ ├── pay_success.tpl │ ├── payjs.tpl │ ├── profile.tpl │ ├── relay │ ├── add.tpl │ ├── edit.tpl │ └── index.tpl │ ├── shop.tpl │ ├── sys.tpl │ ├── ticket.tpl │ ├── ticket_create.tpl │ ├── ticket_view.tpl │ ├── trafficlog.tpl │ └── tutorial.tpl ├── sql ├── clean.sql ├── config.sql ├── fix_unable_to_reg.sql └── glzjin_all.sql ├── src ├── Command │ ├── DailyMail.php │ ├── ExtMail.php │ ├── FinanceMail.php │ ├── Job.php │ ├── SyncRadius.php │ ├── Update.php │ └── XCat.php ├── Controllers │ ├── Admin │ │ ├── AnnController.php │ │ ├── AutoController.php │ │ ├── CodeController.php │ │ ├── DetectController.php │ │ ├── IpController.php │ │ ├── NodeController.php │ │ ├── RelayController.php │ │ ├── ShopController.php │ │ ├── TicketController.php │ │ └── UserController.php │ ├── AdminController.php │ ├── AuthController.php │ ├── BaseController.php │ ├── HomeController.php │ ├── LinkController.php │ ├── Mod_Mu │ │ ├── FuncController.php │ │ ├── NodeController.php │ │ └── UserController.php │ ├── PasswordController.php │ ├── RelayController.php │ ├── ResController.php │ ├── UserController.php │ └── VueController.php ├── Middleware │ ├── Admin.php │ ├── Auth.php │ ├── Guest.php │ └── Mod_Mu.php ├── Models │ ├── Ann.php │ ├── Auto.php │ ├── BlockIp.php │ ├── Bought.php │ ├── CheckInLog.php │ ├── Code.php │ ├── Config.php │ ├── Coupon.php │ ├── DetectLog.php │ ├── DetectRule.php │ ├── Disconnect.php │ ├── EmailVerify.php │ ├── InviteCode.php │ ├── Ip.php │ ├── Link.php │ ├── LoginIp.php │ ├── Model.php │ ├── Node.php │ ├── NodeInfoLog.php │ ├── NodeOnlineLog.php │ ├── PasswordReset.php │ ├── Payback.php │ ├── Paylist.php │ ├── RadiusBan.php │ ├── RadiusNas.php │ ├── RadiusRadAcct.php │ ├── RadiusRadCheck.php │ ├── RadiusRadPostauth.php │ ├── RadiusRadUserGroup.php │ ├── Relay.php │ ├── Role.php │ ├── Shop.php │ ├── Speedtest.php │ ├── TelegramSession.php │ ├── Ticket.php │ ├── Token.php │ ├── TrafficLog.php │ ├── UnblockIp.php │ └── User.php ├── Services │ ├── Analytic.php │ ├── Analytics.php │ ├── Auth.php │ ├── Auth │ │ ├── Base.php │ │ ├── Cookie.php │ │ ├── JwtToken.php │ │ └── Redis.php │ ├── Aws │ │ ├── Client.php │ │ └── Factory.php │ ├── BitPayment.php │ ├── Boot.php │ ├── Config.php │ ├── Factory.php │ ├── Gateway │ │ ├── AbstractPayment.php │ │ ├── AopF2F.php │ │ ├── BitPay.php │ │ ├── ChenPay.php │ │ ├── Codepay.php │ │ ├── PAYJS.php │ │ ├── PaymentWall.php │ │ ├── SPay.php │ │ ├── SPay │ │ │ ├── Spay_notify.php │ │ │ ├── Spay_submit.php │ │ │ └── Spay_tool.php │ │ ├── TomatoPay.php │ │ ├── YftPay.php │ │ ├── YftPayConfig.php │ │ └── YftPayUtil.php │ ├── Jwt.php │ ├── Mail.php │ ├── Mail │ │ ├── Base.php │ │ ├── Mailgun.php │ │ ├── NullMail.php │ │ ├── SendGrid.php │ │ ├── Ses.php │ │ └── Smtp.php │ ├── Password.php │ ├── Payment.php │ ├── RedisClient.php │ └── View.php └── Utils │ ├── AntiXSS.php │ ├── Check.php │ ├── CloudflareDriver.php │ ├── ConfRender.php │ ├── Cookie.php │ ├── DatatablesHelper.php │ ├── GA.php │ ├── Geetest.php │ ├── GeetestLib.php │ ├── Hash.php │ ├── QQWry.php │ ├── QRcode.php │ ├── Radius.php │ ├── Telegram.php │ ├── TelegramProcess.php │ ├── TelegramSessionManager.php │ ├── Tools.php │ ├── Tuling.php │ └── URL.php ├── storage └── framework │ ├── smarty │ ├── cache │ │ └── .gitkeep │ └── compile │ │ └── .gitkeep │ └── views │ └── .gitkeep ├── test ├── config.php ├── listTpl.sh ├── route.list ├── test.sh └── travis-ci.conf ├── uim-index-dev ├── .editorconfig ├── .gitignore ├── README.md ├── babel.config.js ├── createIndexTpl.sh ├── package-lock.json ├── package.json ├── public │ ├── favicon.ico │ └── index.html ├── src │ ├── App.vue │ ├── assets │ │ └── logo.png │ ├── components │ │ ├── anchor.vue │ │ ├── checkbox.vue │ │ ├── dropdown.vue │ │ ├── messager.vue │ │ ├── modal.vue │ │ ├── pagenation.vue │ │ ├── panel │ │ │ ├── UserAnnouncement.vue │ │ │ ├── UserCharge.vue │ │ │ ├── UserGuide.vue │ │ │ ├── UserInvite.vue │ │ │ ├── UserResourse.vue │ │ │ ├── UserSettings.vue │ │ │ └── UserShop.vue │ │ ├── payment │ │ │ ├── code.vue │ │ │ ├── codepay.vue │ │ │ ├── log.vue │ │ │ └── trimepay.vue │ │ ├── progressbar.vue │ │ ├── sign.vue │ │ ├── switch.vue │ │ ├── table.vue │ │ └── tooltip.vue │ ├── css │ │ ├── index.css │ │ └── index_base.css │ ├── directives │ │ └── uimclip.js │ ├── js │ │ └── fetch.js │ ├── main.js │ ├── mixins │ │ ├── agentMixin.js │ │ ├── nodeMap.js │ │ ├── storeAuth.js │ │ ├── storeMap.js │ │ ├── userMixin.js │ │ └── userSetMixin.js │ ├── router.js │ ├── store.js │ ├── stores │ │ ├── NodeStore.js │ │ └── UserStore.js │ └── views │ │ ├── Auth.vue │ │ ├── Login.vue │ │ ├── Node.vue │ │ ├── Panel.vue │ │ ├── Password.vue │ │ ├── Register.vue │ │ ├── Reset.vue │ │ ├── Root.vue │ │ └── User.vue └── vue.config.js └── xcat /.dockerignore: -------------------------------------------------------------------------------- 1 | .git 2 | uim-index-dev/ -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an new idea for this project 4 | title: "[Feature Request]" 5 | labels: enhancement 6 | 7 | --- 8 | 9 | - [ ] I acknowledge if I don't follow the format below or I don't check these box, my issue could be closed without any notice. 10 | - [ ] I certify that I have read project Wiki and other issue may related to this one. 11 | 12 | **Feature** 13 | The feature you want. 14 | 15 | **Solution** 16 | If you have some solution about this issue, type it here. 17 | 18 | **Addition** 19 | Additional context here. 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | .vs/ 3 | .htaccess 4 | */.DS_Store 5 | .DS_Store 6 | composer.lock 7 | .php_cs.cache 8 | .env 9 | vendor 10 | 11 | php_errors.log 12 | composer.phar 13 | 14 | 404.html 15 | index.html 16 | 17 | config/.config.php 18 | config/.config.php.bak 19 | 20 | public/ssr-download/ 21 | public/images/*.* 22 | public/theme/material/css/images/bg 23 | 24 | storage/framework/smarty/cache/* 25 | storage/framework/smarty/compile/* 26 | storage/framework/views/* 27 | storage/*.* 28 | /storage/traffic_notified/ 29 | !storage/framework/smarty/cache/.gitkeep 30 | !storage/framework/smarty/compile/.gitkeep 31 | !storage/framework/views/.gitkeep 32 | 33 | .user.ini 34 | public/.user.ini 35 | 36 | resources/views/material/analytics.tpl 37 | 38 | test/tpl_files.txt -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM indexyz/php 2 | LABEL maintainer="Indexyz " 3 | 4 | COPY . /var/www 5 | WORKDIR /var/www 6 | 7 | RUN cp config/.config.example.php config/.config.php && \ 8 | chmod -R 755 storage && \ 9 | chmod -R 777 /var/www/storage/framework/smarty/compile/ && \ 10 | curl -SL https://getcomposer.org/installer -o composer-setup.php && \ 11 | php composer-setup.php && \ 12 | php composer.phar install && \ 13 | php xcat initQQWry && \ 14 | php xcat initdownload && \ 15 | crontab -l | { cat; echo "30 22 * * * php /var/www/xcat sendDiaryMail"; } | crontab - && \ 16 | crontab -l | { cat; echo "0 0 * * * php /var/www/xcat dailyjob"; } | crontab - && \ 17 | crontab -l | { cat; echo "*/1 * * * * php /var/www/xcat checkjob"; } | crontab - && \ 18 | crontab -l | { cat; echo "*/1 * * * * php /var/www/xcat syncnode"; } | crontab - && \ 19 | { \ 20 | echo '[program:crond]'; \ 21 | echo 'command=cron -f'; \ 22 | echo 'autostart=true'; \ 23 | echo 'autorestart=true'; \ 24 | echo 'killasgroup=true'; \ 25 | echo 'stopasgroup=true'; \ 26 | } | tee /etc/supervisor/crond.conf -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Anankke 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /app/container.php: -------------------------------------------------------------------------------- 1 | [ 14 | 'debug' => $_ENV['debug'], 15 | 'whoops.editor' => 'sublime', 16 | 'displayErrorDetails' => $_ENV['debug'], 17 | ] 18 | ]; 19 | $container = new Container($configuration); 20 | 21 | $container['notFoundHandler'] = static function ($c) { 22 | return static function ($request, $response) use ($c) { 23 | return $response->withAddedHeader('Location', '/404'); 24 | }; 25 | }; 26 | 27 | $container['notAllowedHandler'] = static function ($c) { 28 | return static function ($request, $response, $methods) use ($c) { 29 | return $response->withAddedHeader('Location', '/405'); 30 | }; 31 | }; 32 | 33 | if ($_ENV['debug'] === false) { 34 | $container['errorHandler'] = static function ($c) { 35 | return static function ($request, $response, $exception) use ($c) { 36 | return $response->withAddedHeader('Location', '/500'); 37 | }; 38 | }; 39 | } 40 | 41 | return $container; 42 | -------------------------------------------------------------------------------- /app/middleware.php: -------------------------------------------------------------------------------- 1 | add(new Zeuxisoo\Whoops\Provider\Slim\WhoopsMiddleware()); 9 | } 10 | }; 11 | -------------------------------------------------------------------------------- /app/predefine.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /public/assets/public/css/jumbotron-narrow.css: -------------------------------------------------------------------------------- 1 | /* 空出一点内容 */ 2 | body { 3 | padding-top: 20px; 4 | padding-bottom: 20px; 5 | } 6 | 7 | /* 除了jumbotron之外,除了移动的第一个视图之外,除了边距之外 */ 8 | .header, 9 | .marketing, 10 | .footer { 11 | padding-right: 15px; 12 | padding-left: 15px; 13 | } 14 | 15 | /* 自定义页眉 */ 16 | .header { 17 | border-bottom: 1px solid #e5e5e5; 18 | } 19 | /* 使标头标题与导航相同的高度 */ 20 | .header h3 { 21 | padding-bottom: 19px; 22 | margin-top: 0; 23 | margin-bottom: 0; 24 | line-height: 40px; 25 | } 26 | 27 | /* 自定义页脚 */ 28 | .footer { 29 | padding-top: 19px; 30 | color: #777; 31 | border-top: 1px solid #e5e5e5; 32 | } 33 | 34 | /* 自定义容器 */ 35 | @media (min-width: 768px) { 36 | .container { 37 | max-width: 730px; 38 | } 39 | } 40 | .container-narrow > hr { 41 | margin: 30px 0; 42 | } 43 | 44 | /* 主要营销信息和注册按钮 */ 45 | .jumbotron { 46 | text-align: center; 47 | border-bottom: 1px solid #e5e5e5; 48 | } 49 | .jumbotron .btn { 50 | padding: 14px 24px; 51 | font-size: 21px; 52 | } 53 | 54 | /* 支持营销内容 */ 55 | .marketing { 56 | margin: 40px 0; 57 | } 58 | .marketing p + h4 { 59 | margin-top: 28px; 60 | } 61 | 62 | /* 响应:人像表和向上 */ 63 | @media screen and (min-width: 768px) { 64 | /* 删除我们设置的padding的填充r */ 65 | .header, 66 | .marketing, 67 | .footer { 68 | padding-right: 0; 69 | padding-left: 0; 70 | } 71 | /* 空出桅顶 */ 72 | .header { 73 | margin-bottom: 30px; 74 | } 75 | /* 移除jumbotron的底部边框以获得视觉效果 */ 76 | .jumbotron { 77 | border-bottom: 0; 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /public/assets/public/css/sticky-footer-navbar.css: -------------------------------------------------------------------------------- 1 | /*粘贴页脚样式 2 | -------------------------------------------------- */ 3 | html { 4 | position: relative; 5 | min-height: 100%; 6 | } 7 | body { 8 | /* 边缘底部由页脚高度 */ 9 | margin-bottom: 60px; 10 | } 11 | .footer { 12 | position: absolute; 13 | bottom: 0; 14 | width: 100%; 15 | /*在这里设置页脚的固定高度 */ 16 | height: 60px; 17 | background-color: #f5f5f5; 18 | } 19 | 20 | 21 | /* 自定义页面CSS 22 | -------------------------------------------------- */ 23 | /* 不需要模板或粘性页脚方法. */ 24 | 25 | body > .container { 26 | padding: 60px 15px 0; 27 | } 28 | .container .text-muted { 29 | margin: 20px 0; 30 | } 31 | 32 | .footer > .container { 33 | padding-right: 15px; 34 | padding-left: 15px; 35 | } 36 | 37 | code { 38 | font-size: 80%; 39 | } 40 | -------------------------------------------------------------------------------- /public/assets/public/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/assets/public/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /public/assets/public/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/assets/public/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /public/assets/public/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/assets/public/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /public/assets/public/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/assets/public/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /public/assets/public/img/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/assets/public/img/blue.png -------------------------------------------------------------------------------- /public/assets/public/img/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/assets/public/img/blue@2x.png -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/favicon.ico -------------------------------------------------------------------------------- /public/images/Avatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/Avatar.jpg -------------------------------------------------------------------------------- /public/images/alipay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/alipay.jpg -------------------------------------------------------------------------------- /public/images/authlogo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/authlogo.jpg -------------------------------------------------------------------------------- /public/images/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/bg.jpg -------------------------------------------------------------------------------- /public/images/c-linux-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c-linux-1.png -------------------------------------------------------------------------------- /public/images/c-linux-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c-linux-2.png -------------------------------------------------------------------------------- /public/images/c-linux-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c-linux-3.png -------------------------------------------------------------------------------- /public/images/c-linux-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c-linux-4.png -------------------------------------------------------------------------------- /public/images/c-linux-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c-linux-5.png -------------------------------------------------------------------------------- /public/images/c-linux-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c-linux-6.png -------------------------------------------------------------------------------- /public/images/c-linux-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c-linux-7.png -------------------------------------------------------------------------------- /public/images/c_android_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_android_1.jpg -------------------------------------------------------------------------------- /public/images/c_android_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_android_2.jpg -------------------------------------------------------------------------------- /public/images/c_android_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_android_3.jpg -------------------------------------------------------------------------------- /public/images/c_android_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_android_4.jpg -------------------------------------------------------------------------------- /public/images/c_android_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_android_5.jpg -------------------------------------------------------------------------------- /public/images/c_android_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_android_6.jpg -------------------------------------------------------------------------------- /public/images/c_android_7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_android_7.jpg -------------------------------------------------------------------------------- /public/images/c_android_8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_android_8.jpg -------------------------------------------------------------------------------- /public/images/c_ios_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_ios_1.jpg -------------------------------------------------------------------------------- /public/images/c_ios_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_ios_2.jpg -------------------------------------------------------------------------------- /public/images/c_ios_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_ios_3.jpg -------------------------------------------------------------------------------- /public/images/c_ios_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_ios_4.jpg -------------------------------------------------------------------------------- /public/images/c_mac_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_mac_1.png -------------------------------------------------------------------------------- /public/images/c_mac_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_mac_2.png -------------------------------------------------------------------------------- /public/images/c_mac_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_mac_3.png -------------------------------------------------------------------------------- /public/images/c_mac_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_mac_4.png -------------------------------------------------------------------------------- /public/images/c_mac_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_mac_5.png -------------------------------------------------------------------------------- /public/images/c_mac_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_mac_6.png -------------------------------------------------------------------------------- /public/images/c_mac_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_mac_7.png -------------------------------------------------------------------------------- /public/images/c_win_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_win_1.png -------------------------------------------------------------------------------- /public/images/c_win_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_win_2.png -------------------------------------------------------------------------------- /public/images/c_win_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_win_3.png -------------------------------------------------------------------------------- /public/images/c_win_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_win_4.png -------------------------------------------------------------------------------- /public/images/c_win_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_win_5.png -------------------------------------------------------------------------------- /public/images/c_win_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_win_6.png -------------------------------------------------------------------------------- /public/images/c_win_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_win_7.png -------------------------------------------------------------------------------- /public/images/c_win_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/c_win_8.png -------------------------------------------------------------------------------- /public/images/email_nrcy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/email_nrcy.jpg -------------------------------------------------------------------------------- /public/images/logo_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/logo_white.png -------------------------------------------------------------------------------- /public/images/node.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/node.gif -------------------------------------------------------------------------------- /public/images/overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/overlay.png -------------------------------------------------------------------------------- /public/images/prefix/unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/unknown.png -------------------------------------------------------------------------------- /public/images/prefix/v2ray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/v2ray.png -------------------------------------------------------------------------------- /public/images/prefix/不丹.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/不丹.png -------------------------------------------------------------------------------- /public/images/prefix/东帝汶.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/东帝汶.png -------------------------------------------------------------------------------- /public/images/prefix/中国.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/中国.png -------------------------------------------------------------------------------- /public/images/prefix/中非.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/中非.png -------------------------------------------------------------------------------- /public/images/prefix/丹麦.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/丹麦.png -------------------------------------------------------------------------------- /public/images/prefix/乌克兰.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/乌克兰.png -------------------------------------------------------------------------------- /public/images/prefix/乌兹别克斯坦.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/乌兹别克斯坦.png -------------------------------------------------------------------------------- /public/images/prefix/乌干达.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/乌干达.png -------------------------------------------------------------------------------- /public/images/prefix/乌拉圭.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/乌拉圭.png -------------------------------------------------------------------------------- /public/images/prefix/乍得.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/乍得.png -------------------------------------------------------------------------------- /public/images/prefix/也门.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/也门.png -------------------------------------------------------------------------------- /public/images/prefix/亚美尼亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/亚美尼亚.png -------------------------------------------------------------------------------- /public/images/prefix/以色列.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/以色列.png -------------------------------------------------------------------------------- /public/images/prefix/伊拉克.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/伊拉克.png -------------------------------------------------------------------------------- /public/images/prefix/伊朗.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/伊朗.png -------------------------------------------------------------------------------- /public/images/prefix/伯利兹.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/伯利兹.png -------------------------------------------------------------------------------- /public/images/prefix/佛得角.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/佛得角.png -------------------------------------------------------------------------------- /public/images/prefix/俄罗斯.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/俄罗斯.png -------------------------------------------------------------------------------- /public/images/prefix/保加利亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/保加利亚.png -------------------------------------------------------------------------------- /public/images/prefix/克罗地亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/克罗地亚.png -------------------------------------------------------------------------------- /public/images/prefix/冈比亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/冈比亚.png -------------------------------------------------------------------------------- /public/images/prefix/冰岛.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/冰岛.png -------------------------------------------------------------------------------- /public/images/prefix/几内亚比绍.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/几内亚比绍.png -------------------------------------------------------------------------------- /public/images/prefix/列支敦士登.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/列支敦士登.png -------------------------------------------------------------------------------- /public/images/prefix/刚果.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/刚果.png -------------------------------------------------------------------------------- /public/images/prefix/刚果(金).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/刚果(金).png -------------------------------------------------------------------------------- /public/images/prefix/利比亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/利比亚.png -------------------------------------------------------------------------------- /public/images/prefix/利比里亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/利比里亚.png -------------------------------------------------------------------------------- /public/images/prefix/加拿大.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/加拿大.png -------------------------------------------------------------------------------- /public/images/prefix/加纳.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/加纳.png -------------------------------------------------------------------------------- /public/images/prefix/加蓬.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/加蓬.png -------------------------------------------------------------------------------- /public/images/prefix/匈牙利.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/匈牙利.png -------------------------------------------------------------------------------- /public/images/prefix/南苏丹.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/南苏丹.png -------------------------------------------------------------------------------- /public/images/prefix/南非洲.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/南非洲.png -------------------------------------------------------------------------------- /public/images/prefix/博茨瓦纳.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/博茨瓦纳.png -------------------------------------------------------------------------------- /public/images/prefix/卡塔尔.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/卡塔尔.png -------------------------------------------------------------------------------- /public/images/prefix/卢旺达.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/卢旺达.png -------------------------------------------------------------------------------- /public/images/prefix/卢森堡.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/卢森堡.png -------------------------------------------------------------------------------- /public/images/prefix/印度.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/印度.png -------------------------------------------------------------------------------- /public/images/prefix/印度尼西亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/印度尼西亚.png -------------------------------------------------------------------------------- /public/images/prefix/危地马拉.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/危地马拉.png -------------------------------------------------------------------------------- /public/images/prefix/厄瓜多尔.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/厄瓜多尔.png -------------------------------------------------------------------------------- /public/images/prefix/厄立特里亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/厄立特里亚.png -------------------------------------------------------------------------------- /public/images/prefix/叙利亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/叙利亚.png -------------------------------------------------------------------------------- /public/images/prefix/古巴.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/古巴.png -------------------------------------------------------------------------------- /public/images/prefix/台湾.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/台湾.png -------------------------------------------------------------------------------- /public/images/prefix/吉尔吉斯斯坦.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/吉尔吉斯斯坦.png -------------------------------------------------------------------------------- /public/images/prefix/吉布提.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/吉布提.png -------------------------------------------------------------------------------- /public/images/prefix/哈萨克斯坦.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/哈萨克斯坦.png -------------------------------------------------------------------------------- /public/images/prefix/哥伦比亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/哥伦比亚.png -------------------------------------------------------------------------------- /public/images/prefix/哥斯达黎加.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/哥斯达黎加.png -------------------------------------------------------------------------------- /public/images/prefix/喀麦隆.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/喀麦隆.png -------------------------------------------------------------------------------- /public/images/prefix/图瓦卢.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/图瓦卢.png -------------------------------------------------------------------------------- /public/images/prefix/土库曼斯坦.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/土库曼斯坦.png -------------------------------------------------------------------------------- /public/images/prefix/土耳其.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/土耳其.png -------------------------------------------------------------------------------- /public/images/prefix/圣卢西亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/圣卢西亚.png -------------------------------------------------------------------------------- /public/images/prefix/圣基茨和尼维斯.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/圣基茨和尼维斯.png -------------------------------------------------------------------------------- /public/images/prefix/圣文森特和格林纳丁斯.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/圣文森特和格林纳丁斯.png -------------------------------------------------------------------------------- /public/images/prefix/圣普.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/圣普.png -------------------------------------------------------------------------------- /public/images/prefix/圣马力诺.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/圣马力诺.png -------------------------------------------------------------------------------- /public/images/prefix/圭亚那.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/圭亚那.png -------------------------------------------------------------------------------- /public/images/prefix/坦桑尼亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/坦桑尼亚.png -------------------------------------------------------------------------------- /public/images/prefix/埃及.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/埃及.png -------------------------------------------------------------------------------- /public/images/prefix/埃塞俄比亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/埃塞俄比亚.png -------------------------------------------------------------------------------- /public/images/prefix/基里巴斯.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/基里巴斯.png -------------------------------------------------------------------------------- /public/images/prefix/塔吉克斯坦.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/塔吉克斯坦.png -------------------------------------------------------------------------------- /public/images/prefix/塞内加尔.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/塞内加尔.png -------------------------------------------------------------------------------- /public/images/prefix/塞尔维亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/塞尔维亚.png -------------------------------------------------------------------------------- /public/images/prefix/塞拉利昂.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/塞拉利昂.png -------------------------------------------------------------------------------- /public/images/prefix/塞浦路斯.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/塞浦路斯.png -------------------------------------------------------------------------------- /public/images/prefix/塞舌尔.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/塞舌尔.png -------------------------------------------------------------------------------- /public/images/prefix/墨西哥.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/墨西哥.png -------------------------------------------------------------------------------- /public/images/prefix/多哥.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/多哥.png -------------------------------------------------------------------------------- /public/images/prefix/多米尼克.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/多米尼克.png -------------------------------------------------------------------------------- /public/images/prefix/多米尼加.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/多米尼加.png -------------------------------------------------------------------------------- /public/images/prefix/奥地利.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/奥地利.png -------------------------------------------------------------------------------- /public/images/prefix/委内瑞拉.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/委内瑞拉.png -------------------------------------------------------------------------------- /public/images/prefix/孟加拉国.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/孟加拉国.png -------------------------------------------------------------------------------- /public/images/prefix/安巴.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/安巴.png -------------------------------------------------------------------------------- /public/images/prefix/安道尔.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/安道尔.png -------------------------------------------------------------------------------- /public/images/prefix/密克罗尼西亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/密克罗尼西亚.png -------------------------------------------------------------------------------- /public/images/prefix/尼加拉瓜.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/尼加拉瓜.png -------------------------------------------------------------------------------- /public/images/prefix/尼日利亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/尼日利亚.png -------------------------------------------------------------------------------- /public/images/prefix/尼日尔.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/尼日尔.png -------------------------------------------------------------------------------- /public/images/prefix/尼泊尔.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/尼泊尔.png -------------------------------------------------------------------------------- /public/images/prefix/巴哈马.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/巴哈马.png -------------------------------------------------------------------------------- /public/images/prefix/巴基斯坦.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/巴基斯坦.png -------------------------------------------------------------------------------- /public/images/prefix/巴巴多斯.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/巴巴多斯.png -------------------------------------------------------------------------------- /public/images/prefix/巴布亚新几内亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/巴布亚新几内亚.png -------------------------------------------------------------------------------- /public/images/prefix/巴拉圭.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/巴拉圭.png -------------------------------------------------------------------------------- /public/images/prefix/巴拿马.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/巴拿马.png -------------------------------------------------------------------------------- /public/images/prefix/巴林.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/巴林.png -------------------------------------------------------------------------------- /public/images/prefix/巴西.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/巴西.png -------------------------------------------------------------------------------- /public/images/prefix/布基纳法索.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/布基纳法索.png -------------------------------------------------------------------------------- /public/images/prefix/布隆迪.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/布隆迪.png -------------------------------------------------------------------------------- /public/images/prefix/希腊.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/希腊.png -------------------------------------------------------------------------------- /public/images/prefix/帕劳.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/帕劳.png -------------------------------------------------------------------------------- /public/images/prefix/德国.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/德国.png -------------------------------------------------------------------------------- /public/images/prefix/意大利.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/意大利.png -------------------------------------------------------------------------------- /public/images/prefix/所罗门岛.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/所罗门岛.png -------------------------------------------------------------------------------- /public/images/prefix/拉脱维亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/拉脱维亚.png -------------------------------------------------------------------------------- /public/images/prefix/挪威.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/挪威.png -------------------------------------------------------------------------------- /public/images/prefix/捷克共和国.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/捷克共和国.png -------------------------------------------------------------------------------- /public/images/prefix/摩尔多瓦.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/摩尔多瓦.png -------------------------------------------------------------------------------- /public/images/prefix/摩洛哥.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/摩洛哥.png -------------------------------------------------------------------------------- /public/images/prefix/摩纳哥.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/摩纳哥.png -------------------------------------------------------------------------------- /public/images/prefix/文莱.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/文莱.png -------------------------------------------------------------------------------- /public/images/prefix/斐济.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/斐济.png -------------------------------------------------------------------------------- /public/images/prefix/斯威士兰.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/斯威士兰.png -------------------------------------------------------------------------------- /public/images/prefix/斯洛伐克.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/斯洛伐克.png -------------------------------------------------------------------------------- /public/images/prefix/斯洛文尼亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/斯洛文尼亚.png -------------------------------------------------------------------------------- /public/images/prefix/斯里兰卡.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/斯里兰卡.png -------------------------------------------------------------------------------- /public/images/prefix/新加坡.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/新加坡.png -------------------------------------------------------------------------------- /public/images/prefix/新西兰.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/新西兰.png -------------------------------------------------------------------------------- /public/images/prefix/日本.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/日本.png -------------------------------------------------------------------------------- /public/images/prefix/智利.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/智利.png -------------------------------------------------------------------------------- /public/images/prefix/朝鲜.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/朝鲜.png -------------------------------------------------------------------------------- /public/images/prefix/柬埔寨.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/柬埔寨.png -------------------------------------------------------------------------------- /public/images/prefix/格林纳达.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/格林纳达.png -------------------------------------------------------------------------------- /public/images/prefix/格鲁吉亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/格鲁吉亚.png -------------------------------------------------------------------------------- /public/images/prefix/梵蒂冈城.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/梵蒂冈城.png -------------------------------------------------------------------------------- /public/images/prefix/比利时.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/比利时.png -------------------------------------------------------------------------------- /public/images/prefix/毛里塔尼亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/毛里塔尼亚.png -------------------------------------------------------------------------------- /public/images/prefix/毛里求斯.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/毛里求斯.png -------------------------------------------------------------------------------- /public/images/prefix/汤加.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/汤加.png -------------------------------------------------------------------------------- /public/images/prefix/沙特阿拉伯.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/沙特阿拉伯.png -------------------------------------------------------------------------------- /public/images/prefix/法国.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/法国.png -------------------------------------------------------------------------------- /public/images/prefix/波兰.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/波兰.png -------------------------------------------------------------------------------- /public/images/prefix/波黑.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/波黑.png -------------------------------------------------------------------------------- /public/images/prefix/泰国.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/泰国.png -------------------------------------------------------------------------------- /public/images/prefix/津巴布韦.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/津巴布韦.png -------------------------------------------------------------------------------- /public/images/prefix/洪都拉斯.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/洪都拉斯.png -------------------------------------------------------------------------------- /public/images/prefix/海地.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/海地.png -------------------------------------------------------------------------------- /public/images/prefix/澳大利亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/澳大利亚.png -------------------------------------------------------------------------------- /public/images/prefix/爱尔兰.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/爱尔兰.png -------------------------------------------------------------------------------- /public/images/prefix/爱沙尼亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/爱沙尼亚.png -------------------------------------------------------------------------------- /public/images/prefix/牙买加.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/牙买加.png -------------------------------------------------------------------------------- /public/images/prefix/特多.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/特多.png -------------------------------------------------------------------------------- /public/images/prefix/玻利维亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/玻利维亚.png -------------------------------------------------------------------------------- /public/images/prefix/瑙鲁.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/瑙鲁.png -------------------------------------------------------------------------------- /public/images/prefix/瑞典.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/瑞典.png -------------------------------------------------------------------------------- /public/images/prefix/瑞士.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/瑞士.png -------------------------------------------------------------------------------- /public/images/prefix/瓦努阿图.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/瓦努阿图.png -------------------------------------------------------------------------------- /public/images/prefix/白俄罗斯.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/白俄罗斯.png -------------------------------------------------------------------------------- /public/images/prefix/科威特.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/科威特.png -------------------------------------------------------------------------------- /public/images/prefix/科摩罗.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/科摩罗.png -------------------------------------------------------------------------------- /public/images/prefix/科特迪瓦.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/科特迪瓦.png -------------------------------------------------------------------------------- /public/images/prefix/科索沃.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/科索沃.png -------------------------------------------------------------------------------- /public/images/prefix/秘鲁.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/秘鲁.png -------------------------------------------------------------------------------- /public/images/prefix/突尼斯.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/突尼斯.png -------------------------------------------------------------------------------- /public/images/prefix/立陶宛.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/立陶宛.png -------------------------------------------------------------------------------- /public/images/prefix/索马里.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/索马里.png -------------------------------------------------------------------------------- /public/images/prefix/约旦.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/约旦.png -------------------------------------------------------------------------------- /public/images/prefix/纳米比亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/纳米比亚.png -------------------------------------------------------------------------------- /public/images/prefix/缅甸.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/缅甸.png -------------------------------------------------------------------------------- /public/images/prefix/罗马尼亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/罗马尼亚.png -------------------------------------------------------------------------------- /public/images/prefix/美国.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/美国.png -------------------------------------------------------------------------------- /public/images/prefix/老挝.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/老挝.png -------------------------------------------------------------------------------- /public/images/prefix/肯尼亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/肯尼亚.png -------------------------------------------------------------------------------- /public/images/prefix/芬兰.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/芬兰.png -------------------------------------------------------------------------------- /public/images/prefix/苏丹.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/苏丹.png -------------------------------------------------------------------------------- /public/images/prefix/苏里南.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/苏里南.png -------------------------------------------------------------------------------- /public/images/prefix/英国.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/英国.png -------------------------------------------------------------------------------- /public/images/prefix/荷兰.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/荷兰.png -------------------------------------------------------------------------------- /public/images/prefix/莫桑比克.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/莫桑比克.png -------------------------------------------------------------------------------- /public/images/prefix/莱索托.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/莱索托.png -------------------------------------------------------------------------------- /public/images/prefix/菲律宾.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/菲律宾.png -------------------------------------------------------------------------------- /public/images/prefix/萨尔瓦多.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/萨尔瓦多.png -------------------------------------------------------------------------------- /public/images/prefix/萨摩亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/萨摩亚.png -------------------------------------------------------------------------------- /public/images/prefix/葡萄牙.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/葡萄牙.png -------------------------------------------------------------------------------- /public/images/prefix/蒙古.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/蒙古.png -------------------------------------------------------------------------------- /public/images/prefix/西班牙.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/西班牙.png -------------------------------------------------------------------------------- /public/images/prefix/贝宁.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/贝宁.png -------------------------------------------------------------------------------- /public/images/prefix/赞比亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/赞比亚.png -------------------------------------------------------------------------------- /public/images/prefix/赤道几内亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/赤道几内亚.png -------------------------------------------------------------------------------- /public/images/prefix/越南.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/越南.png -------------------------------------------------------------------------------- /public/images/prefix/阿塞拜疆.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/阿塞拜疆.png -------------------------------------------------------------------------------- /public/images/prefix/阿富汗.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/阿富汗.png -------------------------------------------------------------------------------- /public/images/prefix/阿尔及利亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/阿尔及利亚.png -------------------------------------------------------------------------------- /public/images/prefix/阿尔巴尼亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/阿尔巴尼亚.png -------------------------------------------------------------------------------- /public/images/prefix/阿曼.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/阿曼.png -------------------------------------------------------------------------------- /public/images/prefix/阿根廷.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/阿根廷.png -------------------------------------------------------------------------------- /public/images/prefix/阿联酋.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/阿联酋.png -------------------------------------------------------------------------------- /public/images/prefix/韩国.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/韩国.png -------------------------------------------------------------------------------- /public/images/prefix/香港.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/香港.png -------------------------------------------------------------------------------- /public/images/prefix/马其顿.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/马其顿.png -------------------------------------------------------------------------------- /public/images/prefix/马尔代夫.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/马尔代夫.png -------------------------------------------------------------------------------- /public/images/prefix/马拉维.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/马拉维.png -------------------------------------------------------------------------------- /public/images/prefix/马来西亚.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/马来西亚.png -------------------------------------------------------------------------------- /public/images/prefix/马绍尔群岛.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/马绍尔群岛.png -------------------------------------------------------------------------------- /public/images/prefix/马耳他.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/马耳他.png -------------------------------------------------------------------------------- /public/images/prefix/马达加斯加.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/马达加斯加.png -------------------------------------------------------------------------------- /public/images/prefix/马里.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/马里.png -------------------------------------------------------------------------------- /public/images/prefix/黎巴嫩.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/黎巴嫩.png -------------------------------------------------------------------------------- /public/images/prefix/黑山.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/prefix/黑山.png -------------------------------------------------------------------------------- /public/images/qqpay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/qqpay.jpg -------------------------------------------------------------------------------- /public/images/weixin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/images/weixin.jpg -------------------------------------------------------------------------------- /public/index.php: -------------------------------------------------------------------------------- 1 | run(); 32 | -------------------------------------------------------------------------------- /public/paolu.html: -------------------------------------------------------------------------------- 1 | 该网站暂时无法进行访问

温馨提示:该网站暂时无法进行访问

原因一:根据工信部相关法规,您尚未进行备案;

原因二:根据工信部相关法规,您当前的接入商不正确;

原因三:根据工信部相关法规,您的网站可能存在不适宜传播的信息,请联系网站管理员。

本页面为默认提示页面,如网站存在以上问题,请网站管理员及时进行处理。

2 | -------------------------------------------------------------------------------- /public/theme/material/assets/js-project/ui-progress.js: -------------------------------------------------------------------------------- 1 | // ui-progress.html 2 | $('.finish-loading').on('click', function(e) { 3 | e.stopPropagation(); 4 | $($(this).attr('data-target')).addClass('el-loading-done'); 5 | }); 6 | 7 | $('#ui_el_loading_example_wrap .tile-active-show').each(function (index) { 8 | var $this = $(this), 9 | timer; 10 | 11 | $this.on('hide.bs.tile', function(e) { 12 | clearTimeout(timer); 13 | }); 14 | 15 | $this.on('show.bs.tile', function(e) { 16 | if (!$('.el-loading', $this).hasClass('el-loading-done')) { 17 | timer = setTimeout(function() { 18 | $('.el-loading', $this).addClass('el-loading-done'); 19 | $this.prepend('

Additional information
Aliquam in pharetra leo. In congue, massa sed elementum dictum, justo quam efficitur risus, in posuere mi orci ultrices diam.

'); 20 | }, 6000); 21 | }; 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /public/theme/material/assets/js-project/ui-snackbar.js: -------------------------------------------------------------------------------- 1 | // ui-snackbar.html 2 | var snackbarText = 1; 3 | 4 | $('#ui_snackbar_toggle_1').on('click', function () { 5 | $('body').snackbar({ 6 | content: 'Simple snackbar ' + snackbarText + ' with some text', 7 | show: function () { 8 | snackbarText++; 9 | } 10 | }); 11 | }); 12 | 13 | $('#ui_snackbar_toggle_2').on('click', function () { 14 | $('body').snackbar({ 15 | content: 'Dismiss
Simple snackbar ' + snackbarText + ' with some text and a simple link.
', 16 | show: function () { 17 | snackbarText++; 18 | } 19 | }); 20 | }); 21 | -------------------------------------------------------------------------------- /public/theme/material/assets/js/form-floating-label.js: -------------------------------------------------------------------------------- 1 | // floating label 2 | (function ($) { 3 | 'use strict'; 4 | 5 | $.fn.floatingLabel = function (option) { 6 | var parent = this.closest('.form-group-label'); 7 | 8 | if (parent.length) { 9 | switch (option) { 10 | case 'focusin': 11 | parent.addClass('control-focus'); 12 | break; 13 | case 'focusout': 14 | parent.removeClass('control-focus'); 15 | break; 16 | default: 17 | if (this.val()) { 18 | parent.addClass('control-highlight'); 19 | } else if (this.is('select') && $('option:first-child', this).html().replace(' ', '') !== '') { 20 | parent.addClass('control-highlight'); 21 | } else { 22 | parent.removeClass('control-highlight'); 23 | }; 24 | }; 25 | }; 26 | 27 | return this; 28 | }; 29 | }(jQuery)); 30 | 31 | $(function () { 32 | 'use strict'; 33 | 34 | $('.form-group-label .form-control').each(function () { 35 | $(this).floatingLabel('change'); 36 | }); 37 | 38 | $(document).on('change', '.form-group-label .form-control', function () { 39 | $(this).floatingLabel('change'); 40 | }); 41 | 42 | $(document).on('focusin', '.form-group-label .form-control', function () { 43 | $(this).floatingLabel('focusin'); 44 | }); 45 | 46 | $(document).on('focusout', '.form-group-label .form-control', function () { 47 | $(this).floatingLabel('focusout'); 48 | }); 49 | }); 50 | -------------------------------------------------------------------------------- /public/theme/material/assets/js/form-textarea.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * textarea autosize v0.4.0 3 | * https://github.com/javierjulio/textarea-autosize 4 | */ 5 | 6 | !function(t,e){function i(e){this.element=e,this.$element=t(e),this.init()}var n="textareaAutoSize",h="plugin_"+n,s=function(t){return t.replace(/\s/g,"").length>0};i.prototype={init:function(){var i=(this.$element.outerHeight(),parseInt(this.$element.css("paddingBottom"))+parseInt(this.$element.css("paddingTop")));s(this.element.value)&&this.$element.height(this.element.scrollHeight-i),this.$element.on("input keyup",function(){var n=t(e),h=n.scrollTop();t(this).height(0).height(this.scrollHeight-i),n.scrollTop(h)})}},t.fn[n]=function(e){return this.each(function(){t.data(this,h)||t.data(this,h,new i(this,e))}),this}}(jQuery,window,document); 7 | 8 | // textarea autosize default 9 | $(function () { 10 | 'use strict'; 11 | 12 | $('.textarea-autosize').textareaAutoSize(); 13 | }); 14 | -------------------------------------------------------------------------------- /public/theme/material/assets/js/header.js: -------------------------------------------------------------------------------- 1 | // header waterfall 2 | $(function () { 3 | 'use strict'; 4 | 5 | $('.header-waterfall').each(function () { 6 | $(this).affix({ 7 | offset: { 8 | top: 1 9 | } 10 | }); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /public/theme/material/assets/js/modal.js: -------------------------------------------------------------------------------- 1 | // modale dialog vertical alignment 2 | $(function () { 3 | 'use strict'; 4 | 5 | $(document).on('hidden.bs.modal', '.modal-va-middle', function () { 6 | $(this).removeClass('modal-va-middle-show'); 7 | }); 8 | 9 | $(document).on('show.bs.modal', '.modal-va-middle', function () { 10 | $(this).addClass('modal-va-middle-show'); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /public/theme/material/css/fonts/MaterialIcons-Regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/theme/material/css/fonts/MaterialIcons-Regular.eot -------------------------------------------------------------------------------- /public/theme/material/css/fonts/MaterialIcons-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/theme/material/css/fonts/MaterialIcons-Regular.ttf -------------------------------------------------------------------------------- /public/theme/material/css/fonts/MaterialIcons-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/theme/material/css/fonts/MaterialIcons-Regular.woff -------------------------------------------------------------------------------- /public/theme/material/css/fonts/MaterialIcons-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/theme/material/css/fonts/MaterialIcons-Regular.woff2 -------------------------------------------------------------------------------- /public/theme/material/css/fonts/README.md: -------------------------------------------------------------------------------- 1 | The recommended way to use the Material Icons font is by linking to the web font hosted on Google Fonts: 2 | 3 | ```html 4 | 6 | ``` 7 | 8 | Read more in our full usage guide: 9 | http://google.github.io/material-design-icons/#icon-font-for-the-web 10 | -------------------------------------------------------------------------------- /public/theme/material/css/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/theme/material/css/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2 -------------------------------------------------------------------------------- /public/theme/material/css/icon.css: -------------------------------------------------------------------------------- 1 | /* fallback */ 2 | @font-face { 3 | font-family: 'Material Icons'; 4 | font-style: normal; 5 | font-weight: 400; 6 | src: url(/theme/material/css/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format('woff2'); 7 | } 8 | 9 | .material-icons { 10 | font-family: 'Material Icons'; 11 | font-weight: normal; 12 | font-style: normal; 13 | font-size: 24px; 14 | line-height: 1; 15 | letter-spacing: normal; 16 | text-transform: none; 17 | display: inline-block; 18 | white-space: nowrap; 19 | word-wrap: normal; 20 | direction: ltr; 21 | -webkit-font-feature-settings: 'liga'; 22 | -webkit-font-smoothing: antialiased; 23 | } 24 | -------------------------------------------------------------------------------- /public/theme/material/css/images/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/theme/material/css/images/arrow.png -------------------------------------------------------------------------------- /public/theme/material/css/images/bg/amber.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/theme/material/css/images/bg/amber.jpg -------------------------------------------------------------------------------- /public/theme/material/css/images/bg/amber2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/theme/material/css/images/bg/amber2.jpg -------------------------------------------------------------------------------- /public/theme/material/css/images/bg/amber3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/theme/material/css/images/bg/amber3.jpg -------------------------------------------------------------------------------- /public/theme/material/css/images/bg/amber4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/theme/material/css/images/bg/amber4.jpg -------------------------------------------------------------------------------- /public/theme/material/css/images/bg/brand.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/theme/material/css/images/bg/brand.jpg -------------------------------------------------------------------------------- /public/theme/material/css/images/bg/green.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/theme/material/css/images/bg/green.jpg -------------------------------------------------------------------------------- /public/theme/material/css/images/bg/purple.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/theme/material/css/images/bg/purple.jpg -------------------------------------------------------------------------------- /public/theme/material/css/images/bg/red.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/theme/material/css/images/bg/red.jpg -------------------------------------------------------------------------------- /public/theme/material/css/images/bg/teal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/theme/material/css/images/bg/teal.jpg -------------------------------------------------------------------------------- /public/theme/material/editor/.gitignore: -------------------------------------------------------------------------------- 1 | logs 2 | *.log 3 | *.pid 4 | *.seed 5 | node_modules/ 6 | .sass-cache/ 7 | research/ 8 | test/ 9 | backup/ 10 | examples/uploads/**/* 11 | *.bat 12 | *.sh 13 | .project 14 | .url 15 | css/*.map -------------------------------------------------------------------------------- /public/theme/material/editor/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 pandao 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /public/theme/material/editor/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/theme/material/editor/images/loading.gif -------------------------------------------------------------------------------- /public/theme/material/editor/images/loading@2x.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/theme/material/editor/images/loading@2x.gif -------------------------------------------------------------------------------- /public/theme/material/editor/images/loading@3x.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/theme/material/editor/images/loading@3x.gif -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2014 by Marijn Haverbeke and others 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/addon/dialog/dialog.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-dialog { 2 | position: absolute; 3 | left: 0; right: 0; 4 | background: white; 5 | z-index: 15; 6 | padding: .1em .8em; 7 | overflow: hidden; 8 | color: #333; 9 | } 10 | 11 | .CodeMirror-dialog-top { 12 | border-bottom: 1px solid #eee; 13 | top: 0; 14 | } 15 | 16 | .CodeMirror-dialog-bottom { 17 | border-top: 1px solid #eee; 18 | bottom: 0; 19 | } 20 | 21 | .CodeMirror-dialog input { 22 | border: none; 23 | outline: none; 24 | background: transparent; 25 | width: 20em; 26 | color: inherit; 27 | font-family: monospace; 28 | } 29 | 30 | .CodeMirror-dialog button { 31 | font-size: 70%; 32 | } 33 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/addon/display/fullscreen.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-fullscreen { 2 | position: fixed; 3 | top: 0; left: 0; right: 0; bottom: 0; 4 | height: auto; 5 | z-index: 9; 6 | } 7 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/addon/edit/trailingspace.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | CodeMirror.defineOption("showTrailingSpace", false, function(cm, val, prev) { 13 | if (prev == CodeMirror.Init) prev = false; 14 | if (prev && !val) 15 | cm.removeOverlay("trailingspace"); 16 | else if (!prev && val) 17 | cm.addOverlay({ 18 | token: function(stream) { 19 | for (var l = stream.string.length, i = l; i && /\s/.test(stream.string.charAt(i - 1)); --i) {} 20 | if (i > stream.pos) { stream.pos = i; return null; } 21 | stream.pos = l; 22 | return "trailingspace"; 23 | }, 24 | name: "trailingspace" 25 | }); 26 | }); 27 | }); 28 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/addon/fold/foldgutter.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-foldmarker { 2 | color: blue; 3 | text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px; 4 | font-family: arial; 5 | line-height: .3; 6 | cursor: pointer; 7 | } 8 | .CodeMirror-foldgutter { 9 | width: .7em; 10 | } 11 | .CodeMirror-foldgutter-open, 12 | .CodeMirror-foldgutter-folded { 13 | cursor: pointer; 14 | } 15 | .CodeMirror-foldgutter-open:after { 16 | content: "\25BE"; 17 | } 18 | .CodeMirror-foldgutter-folded:after { 19 | content: "\25B8"; 20 | } 21 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/addon/hint/show-hint.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-hints { 2 | position: absolute; 3 | z-index: 10; 4 | overflow: hidden; 5 | list-style: none; 6 | 7 | margin: 0; 8 | padding: 2px; 9 | 10 | -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 11 | -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 12 | box-shadow: 2px 3px 5px rgba(0,0,0,.2); 13 | border-radius: 3px; 14 | border: 1px solid silver; 15 | 16 | background: white; 17 | font-size: 90%; 18 | font-family: monospace; 19 | 20 | max-height: 20em; 21 | overflow-y: auto; 22 | } 23 | 24 | .CodeMirror-hint { 25 | margin: 0; 26 | padding: 0 4px; 27 | border-radius: 2px; 28 | max-width: 19em; 29 | overflow: hidden; 30 | white-space: pre; 31 | color: black; 32 | cursor: pointer; 33 | } 34 | 35 | li.CodeMirror-hint-active { 36 | background: #08f; 37 | color: white; 38 | } 39 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/addon/lint/coffeescript-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // Depends on coffeelint.js from http://www.coffeelint.org/js/coffeelint.js 5 | 6 | // declare global: coffeelint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "coffeescript", function(text) { 19 | var found = []; 20 | var parseError = function(err) { 21 | var loc = err.lineNumber; 22 | found.push({from: CodeMirror.Pos(loc-1, 0), 23 | to: CodeMirror.Pos(loc, 0), 24 | severity: err.level, 25 | message: err.message}); 26 | }; 27 | try { 28 | var res = coffeelint.lint(text); 29 | for(var i = 0; i < res.length; i++) { 30 | parseError(res[i]); 31 | } 32 | } catch(e) { 33 | found.push({from: CodeMirror.Pos(e.location.first_line, 0), 34 | to: CodeMirror.Pos(e.location.last_line, e.location.last_column), 35 | severity: 'error', 36 | message: e.message}); 37 | } 38 | return found; 39 | }); 40 | 41 | }); 42 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/addon/lint/css-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // Depends on csslint.js from https://github.com/stubbornella/csslint 5 | 6 | // declare global: CSSLint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "css", function(text) { 19 | var found = []; 20 | if (!window.CSSLint) return found; 21 | var results = CSSLint.verify(text), messages = results.messages, message = null; 22 | for ( var i = 0; i < messages.length; i++) { 23 | message = messages[i]; 24 | var startLine = message.line -1, endLine = message.line -1, startCol = message.col -1, endCol = message.col; 25 | found.push({ 26 | from: CodeMirror.Pos(startLine, startCol), 27 | to: CodeMirror.Pos(endLine, endCol), 28 | message: message.message, 29 | severity : message.type 30 | }); 31 | } 32 | return found; 33 | }); 34 | 35 | }); 36 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/addon/lint/json-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // Depends on jsonlint.js from https://github.com/zaach/jsonlint 5 | 6 | // declare global: jsonlint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "json", function(text) { 19 | var found = []; 20 | jsonlint.parseError = function(str, hash) { 21 | var loc = hash.loc; 22 | found.push({from: CodeMirror.Pos(loc.first_line - 1, loc.first_column), 23 | to: CodeMirror.Pos(loc.last_line - 1, loc.last_column), 24 | message: str}); 25 | }; 26 | try { jsonlint.parse(text); } 27 | catch(e) {} 28 | return found; 29 | }); 30 | 31 | }); 32 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/addon/lint/yaml-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | // Depends on js-yaml.js from https://github.com/nodeca/js-yaml 15 | 16 | // declare global: jsyaml 17 | 18 | CodeMirror.registerHelper("lint", "yaml", function(text) { 19 | var found = []; 20 | try { jsyaml.load(text); } 21 | catch(e) { 22 | var loc = e.mark; 23 | found.push({ from: CodeMirror.Pos(loc.line, loc.column), to: CodeMirror.Pos(loc.line, loc.column), message: e.message }); 24 | } 25 | return found; 26 | }); 27 | 28 | }); 29 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/addon/mode/multiplex_test.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function() { 5 | CodeMirror.defineMode("markdown_with_stex", function(){ 6 | var inner = CodeMirror.getMode({}, "stex"); 7 | var outer = CodeMirror.getMode({}, "markdown"); 8 | 9 | var innerOptions = { 10 | open: '$', 11 | close: '$', 12 | mode: inner, 13 | delimStyle: 'delim', 14 | innerStyle: 'inner' 15 | }; 16 | 17 | return CodeMirror.multiplexingMode(outer, innerOptions); 18 | }); 19 | 20 | var mode = CodeMirror.getMode({}, "markdown_with_stex"); 21 | 22 | function MT(name) { 23 | test.mode( 24 | name, 25 | mode, 26 | Array.prototype.slice.call(arguments, 1), 27 | 'multiplexing'); 28 | } 29 | 30 | MT( 31 | "stexInsideMarkdown", 32 | "[strong **Equation:**] [delim $][inner&tag \\pi][delim $]"); 33 | })(); 34 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/addon/runmode/colorize.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror"), require("./runmode")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror", "./runmode"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | var isBlock = /^(p|li|div|h\\d|pre|blockquote|td)$/; 15 | 16 | function textContent(node, out) { 17 | if (node.nodeType == 3) return out.push(node.nodeValue); 18 | for (var ch = node.firstChild; ch; ch = ch.nextSibling) { 19 | textContent(ch, out); 20 | if (isBlock.test(node.nodeType)) out.push("\n"); 21 | } 22 | } 23 | 24 | CodeMirror.colorize = function(collection, defaultMode) { 25 | if (!collection) collection = document.body.getElementsByTagName("pre"); 26 | 27 | for (var i = 0; i < collection.length; ++i) { 28 | var node = collection[i]; 29 | var mode = node.getAttribute("data-lang") || defaultMode; 30 | if (!mode) continue; 31 | 32 | var text = []; 33 | textContent(node, text); 34 | node.innerHTML = ""; 35 | CodeMirror.runMode(text.join(""), mode, node); 36 | 37 | node.className += " cm-s-default"; 38 | } 39 | }; 40 | }); 41 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/addon/search/matchesonscrollbar.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-search-match { 2 | background: gold; 3 | border-top: 1px solid orange; 4 | border-bottom: 1px solid orange; 5 | -moz-box-sizing: border-box; 6 | box-sizing: border-box; 7 | opacity: .5; 8 | } 9 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/addon/tern/worker.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // declare global: tern, server 5 | 6 | var server; 7 | 8 | this.onmessage = function(e) { 9 | var data = e.data; 10 | switch (data.type) { 11 | case "init": return startServer(data.defs, data.plugins, data.scripts); 12 | case "add": return server.addFile(data.name, data.text); 13 | case "del": return server.delFile(data.name); 14 | case "req": return server.request(data.body, function(err, reqData) { 15 | postMessage({id: data.id, body: reqData, err: err && String(err)}); 16 | }); 17 | case "getFile": 18 | var c = pending[data.id]; 19 | delete pending[data.id]; 20 | return c(data.err, data.text); 21 | default: throw new Error("Unknown message type: " + data.type); 22 | } 23 | }; 24 | 25 | var nextId = 0, pending = {}; 26 | function getFile(file, c) { 27 | postMessage({type: "getFile", name: file, id: ++nextId}); 28 | pending[nextId] = c; 29 | } 30 | 31 | function startServer(defs, plugins, scripts) { 32 | if (scripts) importScripts.apply(null, scripts); 33 | 34 | server = new tern.Server({ 35 | getFile: getFile, 36 | async: true, 37 | defs: defs, 38 | plugins: plugins 39 | }); 40 | } 41 | 42 | var console = { 43 | log: function(v) { postMessage({type: "debug", message: v}); } 44 | }; 45 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/mode/diff/diff.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.defineMode("diff", function() { 15 | 16 | var TOKEN_NAMES = { 17 | '+': 'positive', 18 | '-': 'negative', 19 | '@': 'meta' 20 | }; 21 | 22 | return { 23 | token: function(stream) { 24 | var tw_pos = stream.string.search(/[\t ]+?$/); 25 | 26 | if (!stream.sol() || tw_pos === 0) { 27 | stream.skipToEnd(); 28 | return ("error " + ( 29 | TOKEN_NAMES[stream.string.charAt(0)] || '')).replace(/ $/, ''); 30 | } 31 | 32 | var token_name = TOKEN_NAMES[stream.peek()] || stream.skipToEnd(); 33 | 34 | if (tw_pos === -1) { 35 | stream.skipToEnd(); 36 | } else { 37 | stream.pos = tw_pos; 38 | } 39 | 40 | return token_name; 41 | } 42 | }; 43 | }); 44 | 45 | CodeMirror.defineMIME("text/x-diff", "diff"); 46 | 47 | }); 48 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/mode/ruby/test.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function() { 5 | var mode = CodeMirror.getMode({indentUnit: 2}, "ruby"); 6 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } 7 | 8 | MT("divide_equal_operator", 9 | "[variable bar] [operator /=] [variable foo]"); 10 | 11 | MT("divide_equal_operator_no_spacing", 12 | "[variable foo][operator /=][number 42]"); 13 | 14 | })(); 15 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/mode/tiddlywiki/tiddlywiki.css: -------------------------------------------------------------------------------- 1 | span.cm-underlined { 2 | text-decoration: underline; 3 | } 4 | span.cm-strikethrough { 5 | text-decoration: line-through; 6 | } 7 | span.cm-brace { 8 | color: #170; 9 | font-weight: bold; 10 | } 11 | span.cm-table { 12 | color: blue; 13 | font-weight: bold; 14 | } 15 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/mode/tiki/tiki.css: -------------------------------------------------------------------------------- 1 | .cm-tw-syntaxerror { 2 | color: #FFF; 3 | background-color: #900; 4 | } 5 | 6 | .cm-tw-deleted { 7 | text-decoration: line-through; 8 | } 9 | 10 | .cm-tw-header5 { 11 | font-weight: bold; 12 | } 13 | .cm-tw-listitem:first-child { /*Added first child to fix duplicate padding when highlighting*/ 14 | padding-left: 10px; 15 | } 16 | 17 | .cm-tw-box { 18 | border-top-width: 0px ! important; 19 | border-style: solid; 20 | border-width: 1px; 21 | border-color: inherit; 22 | } 23 | 24 | .cm-tw-underline { 25 | text-decoration: underline; 26 | } -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/theme/ambiance-mobile.css: -------------------------------------------------------------------------------- 1 | .cm-s-ambiance.CodeMirror { 2 | -webkit-box-shadow: none; 3 | -moz-box-shadow: none; 4 | box-shadow: none; 5 | } 6 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/theme/eclipse.css: -------------------------------------------------------------------------------- 1 | .cm-s-eclipse span.cm-meta {color: #FF1717;} 2 | .cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; } 3 | .cm-s-eclipse span.cm-atom {color: #219;} 4 | .cm-s-eclipse span.cm-number {color: #164;} 5 | .cm-s-eclipse span.cm-def {color: #00f;} 6 | .cm-s-eclipse span.cm-variable {color: black;} 7 | .cm-s-eclipse span.cm-variable-2 {color: #0000C0;} 8 | .cm-s-eclipse span.cm-variable-3 {color: #0000C0;} 9 | .cm-s-eclipse span.cm-property {color: black;} 10 | .cm-s-eclipse span.cm-operator {color: black;} 11 | .cm-s-eclipse span.cm-comment {color: #3F7F5F;} 12 | .cm-s-eclipse span.cm-string {color: #2A00FF;} 13 | .cm-s-eclipse span.cm-string-2 {color: #f50;} 14 | .cm-s-eclipse span.cm-qualifier {color: #555;} 15 | .cm-s-eclipse span.cm-builtin {color: #30a;} 16 | .cm-s-eclipse span.cm-bracket {color: #cc7;} 17 | .cm-s-eclipse span.cm-tag {color: #170;} 18 | .cm-s-eclipse span.cm-attribute {color: #00c;} 19 | .cm-s-eclipse span.cm-link {color: #219;} 20 | .cm-s-eclipse span.cm-error {color: #f00;} 21 | 22 | .cm-s-eclipse .CodeMirror-activeline-background {background: #e8f2ff !important;} 23 | .cm-s-eclipse .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;} 24 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/theme/elegant.css: -------------------------------------------------------------------------------- 1 | .cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom {color: #762;} 2 | .cm-s-elegant span.cm-comment {color: #262; font-style: italic; line-height: 1em;} 3 | .cm-s-elegant span.cm-meta {color: #555; font-style: italic; line-height: 1em;} 4 | .cm-s-elegant span.cm-variable {color: black;} 5 | .cm-s-elegant span.cm-variable-2 {color: #b11;} 6 | .cm-s-elegant span.cm-qualifier {color: #555;} 7 | .cm-s-elegant span.cm-keyword {color: #730;} 8 | .cm-s-elegant span.cm-builtin {color: #30a;} 9 | .cm-s-elegant span.cm-link {color: #762;} 10 | .cm-s-elegant span.cm-error {background-color: #fdd;} 11 | 12 | .cm-s-elegant .CodeMirror-activeline-background {background: #e8f2ff !important;} 13 | .cm-s-elegant .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;} 14 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/theme/neat.css: -------------------------------------------------------------------------------- 1 | .cm-s-neat span.cm-comment { color: #a86; } 2 | .cm-s-neat span.cm-keyword { line-height: 1em; font-weight: bold; color: blue; } 3 | .cm-s-neat span.cm-string { color: #a22; } 4 | .cm-s-neat span.cm-builtin { line-height: 1em; font-weight: bold; color: #077; } 5 | .cm-s-neat span.cm-special { line-height: 1em; font-weight: bold; color: #0aa; } 6 | .cm-s-neat span.cm-variable { color: black; } 7 | .cm-s-neat span.cm-number, .cm-s-neat span.cm-atom { color: #3a3; } 8 | .cm-s-neat span.cm-meta {color: #555;} 9 | .cm-s-neat span.cm-link { color: #3a3; } 10 | 11 | .cm-s-neat .CodeMirror-activeline-background {background: #e8f2ff !important;} 12 | .cm-s-neat .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;} 13 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/codemirror/theme/neo.css: -------------------------------------------------------------------------------- 1 | /* neo theme for codemirror */ 2 | 3 | /* Color scheme */ 4 | 5 | .cm-s-neo.CodeMirror { 6 | background-color:#ffffff; 7 | color:#2e383c; 8 | line-height:1.4375; 9 | } 10 | .cm-s-neo .cm-comment {color:#75787b} 11 | .cm-s-neo .cm-keyword, .cm-s-neo .cm-property {color:#1d75b3} 12 | .cm-s-neo .cm-atom,.cm-s-neo .cm-number {color:#75438a} 13 | .cm-s-neo .cm-node,.cm-s-neo .cm-tag {color:#9c3328} 14 | .cm-s-neo .cm-string {color:#b35e14} 15 | .cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier {color:#047d65} 16 | 17 | 18 | /* Editor styling */ 19 | 20 | .cm-s-neo pre { 21 | padding:0; 22 | } 23 | 24 | .cm-s-neo .CodeMirror-gutters { 25 | border:none; 26 | border-right:10px solid transparent; 27 | background-color:transparent; 28 | } 29 | 30 | .cm-s-neo .CodeMirror-linenumber { 31 | padding:0; 32 | color:#e0e2e5; 33 | } 34 | 35 | .cm-s-neo .CodeMirror-guttermarker { color: #1d75b3; } 36 | .cm-s-neo .CodeMirror-guttermarker-subtle { color: #e0e2e5; } 37 | 38 | .cm-s-neo div.CodeMirror-cursor { 39 | width: auto; 40 | border: 0; 41 | background: rgba(155,157,162,0.37); 42 | z-index: 1; 43 | } 44 | -------------------------------------------------------------------------------- /public/theme/material/editor/lib/jquery.flowchart.min.js: -------------------------------------------------------------------------------- 1 | /*! jQuery.flowchart.js v1.1.0 | jquery.flowchart.min.js | jQuery plugin for flowchart.js. | MIT License | By: Pandao | https://github.com/pandao/jquery.flowchart.js | 2015-03-09 */ 2 | (function(factory){if(typeof require==="function"&&typeof exports==="object"&&typeof module==="object"){module.exports=factory}else{if(typeof define==="function"){factory(jQuery,flowchart)}else{factory($,flowchart)}}}(function(jQuery,flowchart){(function($){$.fn.flowChart=function(options){options=options||{};var defaults={"x":0,"y":0,"line-width":2,"line-length":50,"text-margin":10,"font-size":14,"font-color":"black","line-color":"black","element-color":"black","fill":"white","yes-text":"yes","no-text":"no","arrow-end":"block","symbols":{"start":{"font-color":"black","element-color":"black","fill":"white"},"end":{"class":"end-element"}},"flowstate":{"past":{"fill":"#CCCCCC","font-size":12},"current":{"fill":"black","font-color":"white","font-weight":"bold"},"future":{"fill":"white"},"request":{"fill":"blue"},"invalid":{"fill":"#444444"},"approved":{"fill":"#58C4A3","font-size":12,"yes-text":"APPROVED","no-text":"n/a"},"rejected":{"fill":"#C45879","font-size":12,"yes-text":"n/a","no-text":"REJECTED"}}};return this.each(function(){var $this=$(this);var diagram=flowchart.parse($this.text());var settings=$.extend(true,defaults,options);$this.html("");diagram.drawSVG(this,settings)})}})(jQuery)})); -------------------------------------------------------------------------------- /public/theme/material/images/samples/landscape.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/theme/material/images/samples/landscape.jpg -------------------------------------------------------------------------------- /public/theme/material/images/samples/portrait.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/theme/material/images/samples/portrait.jpg -------------------------------------------------------------------------------- /public/theme/material/images/users/avatar-001.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/theme/material/images/users/avatar-001.jpg -------------------------------------------------------------------------------- /public/theme/material/images/users/trafficbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/theme/material/images/users/trafficbar.png -------------------------------------------------------------------------------- /public/theme/material/js/shake.js/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /public/theme/material/js/shake.js/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012-2015 Alex Gibson 2 | 3 | http://alxgbsn.co.uk/ 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction except as noted below, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sublicense, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE 10 | -------------------------------------------------------------------------------- /public/vuedist/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/public/vuedist/favicon.ico -------------------------------------------------------------------------------- /resources/clients/README.txt: -------------------------------------------------------------------------------- 1 | 请将已解压的客户端存放在对应文件夹中 2 | -------------------------------------------------------------------------------- /resources/clients/ss-win/使用注意.txt: -------------------------------------------------------------------------------- 1 | 尊敬的用户您好: 2 | 3 | 如您在使用上遇到问题,请注意在我们的网站上查询相关的教程或联系我们。 -------------------------------------------------------------------------------- /resources/clients/ssd-win/使用注意.txt: -------------------------------------------------------------------------------- 1 | 尊敬的用户您好: 2 | 3 | 如您在使用上遇到问题,请注意在我们的网站上查询相关的教程或联系我们。 -------------------------------------------------------------------------------- /resources/clients/ssr-win/使用注意.txt: -------------------------------------------------------------------------------- 1 | 尊敬的用户您好: 2 | 3 | 如您在使用上遇到问题,请注意在我们的网站上查询相关的教程或联系我们。 -------------------------------------------------------------------------------- /resources/email/test.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

This is a testing mail.

8 |

Send from {$config["appName"]}

9 |

{$time}

10 | 11 | -------------------------------------------------------------------------------- /resources/views/material/admin/detect/log.tpl: -------------------------------------------------------------------------------- 1 | {include file='admin/main.tpl'} 2 | 3 | 4 |
5 |
6 |
7 |

审计记录查看

8 |
9 |
10 |
11 |
12 |
13 | 14 |
15 |
16 |
17 |

系统中所有审计记录。

18 |

显示表项: 19 | {include file='table/checkbox.tpl'} 20 |

21 |
22 |
23 |
24 | 25 |
26 | {include file='table/table.tpl'} 27 |
28 | 29 | 30 |
31 | 32 | 33 |
34 |
35 | 36 | 37 | {include file='admin/footer.tpl'} 38 | 39 | 46 | -------------------------------------------------------------------------------- /resources/views/material/admin/ip/alive.tpl: -------------------------------------------------------------------------------- 1 | {include file='admin/main.tpl'} 2 | 3 |
4 |
5 |
6 |

在线IP

7 |
8 |
9 |
10 |
11 |
12 | 13 |
14 |
15 |
16 |

显示表项: {include file='table/checkbox.tpl'}

17 |
18 |
19 |
20 | 21 |
22 | {include file='table/table.tpl'} 23 |
24 | 25 | 26 |
27 | 28 | 29 |
30 |
31 | 32 | {include file='admin/footer.tpl'} 33 | 34 | 41 | -------------------------------------------------------------------------------- /resources/views/material/admin/ip/login.tpl: -------------------------------------------------------------------------------- 1 | {include file='admin/main.tpl'} 2 | 3 |
4 |
5 |
6 |

最近登录记录

7 |
8 |
9 |
10 |
11 |
12 | 13 |
14 |
15 |
16 |

这里是最近的登录记录。

17 |

显示表项: {include file='table/checkbox.tpl'}

18 |
19 |
20 |
21 | 22 |
23 | {include file='table/table.tpl'} 24 |
25 | 26 | 27 |
28 | 29 | 30 |
31 |
32 | 33 | {include file='admin/footer.tpl'} 34 | 35 | 42 | -------------------------------------------------------------------------------- /resources/views/material/admin/ip/unblock.tpl: -------------------------------------------------------------------------------- 1 | {include file='admin/main.tpl'} 2 | 3 |
4 |
5 |
6 |

解封IP记录

7 |
8 |
9 |
10 |
11 |
12 | 13 |
14 |
15 |
16 |

这里是最近的解封IP记录。

17 |

显示表项: {include file='table/checkbox.tpl'} 18 |

19 |
20 |
21 |
22 | 23 |
24 | {include file='table/table.tpl'} 25 |
26 | 27 | 28 |
29 | 30 | 31 |
32 |
33 | 34 | {include file='admin/footer.tpl'} 35 | 36 | 43 | -------------------------------------------------------------------------------- /resources/views/material/admin/sys.tpl: -------------------------------------------------------------------------------- 1 | {include file='admin/main.tpl'} 2 | 3 |
4 |
5 |

6 | 统计信息 7 | A 8 |

9 |
10 | 11 | 12 |
13 |
14 | 15 |
16 | 17 |
18 |
19 |

Coming soon...

20 |
21 |
22 |
23 |
24 |
25 |
26 | {include file='admin/footer.tpl'} -------------------------------------------------------------------------------- /resources/views/material/admin/trafficlog.tpl: -------------------------------------------------------------------------------- 1 | {include file='admin/main.tpl'} 2 | 3 |
4 |
5 |
6 |

流量使用记录

7 |
8 |
9 |
10 |
11 |
12 | 13 |
14 |
15 |
16 |

部分节点不支持流量记录.

17 |

显示表项: 18 | {include file='table/checkbox.tpl'} 19 |

20 |
21 |
22 |
23 | 24 | 25 |
26 | {include file='table/table.tpl'} 27 |
28 | 29 | 30 |
31 | 32 | 33 |
34 |
35 | 36 | 37 | {include file='admin/footer.tpl'} 38 | 39 | 48 | -------------------------------------------------------------------------------- /resources/views/material/analytics.tpl: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /resources/views/material/dialog.tpl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/views/material/email_nrcy.tpl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/views/material/mylivechat.tpl: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /resources/views/material/reg_tos.tpl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/views/material/table/checkbox.tpl: -------------------------------------------------------------------------------- 1 | {foreach $table_config['total_column'] as $key => $value} 2 |
3 | 10 |
11 | {/foreach} 12 | -------------------------------------------------------------------------------- /resources/views/material/table/js_1.tpl: -------------------------------------------------------------------------------- 1 | function modify_table_visible(id, key) { 2 | if(document.getElementById(id).checked) 3 | { 4 | table_1.columns( '.' + key ).visible( true ); 5 | localStorage.setItem(window.location.href + '-haschecked-' + id, true); 6 | } 7 | else 8 | { 9 | table_1.columns( '.' + key ).visible( false ); 10 | localStorage.setItem(window.location.href + '-haschecked-' + id, false); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /resources/views/material/table/js_2.tpl: -------------------------------------------------------------------------------- 1 | table_1 = $('#table_1').DataTable({ 2 | ajax: { 3 | url: '{$table_config['ajax_url']}', 4 | type: "POST" 5 | }, 6 | processing: true, 7 | serverSide: true, 8 | order: [[ 0, 'desc' ]], 9 | stateSave: true, 10 | columnDefs: [ 11 | { 12 | targets: [ '_all' ], 13 | className: 'mdl-data-table__cell--non-numeric' 14 | } 15 | ], 16 | columns: [ 17 | {foreach $table_config['total_column'] as $key => $value} 18 | { "data": "{$key}" }, 19 | {/foreach} 20 | ], 21 | {include file='table/lang_chinese.tpl'} 22 | }) 23 | 24 | 25 | var has_init = JSON.parse(localStorage.getItem(window.location.href + '-hasinit')); 26 | if (has_init != true) { 27 | localStorage.setItem(window.location.href + '-hasinit', true); 28 | } else { 29 | {foreach $table_config['total_column'] as $key => $value} 30 | var checked = JSON.parse(localStorage.getItem(window.location.href + '-haschecked-checkbox_{$key}')); 31 | if (checked == true) { 32 | document.getElementById('checkbox_{$key}').checked = true; 33 | } else { 34 | document.getElementById('checkbox_{$key}').checked = false; 35 | } 36 | {/foreach} 37 | } 38 | 39 | {foreach $table_config['total_column'] as $key => $value} 40 | modify_table_visible('checkbox_{$key}', '{$key}'); 41 | {/foreach} 42 | -------------------------------------------------------------------------------- /resources/views/material/table/js_delete.tpl: -------------------------------------------------------------------------------- 1 | table_1 2 | .row('#row_1_' + deleteid) 3 | .remove() 4 | .draw(); 5 | -------------------------------------------------------------------------------- /resources/views/material/table/lang_chinese.tpl: -------------------------------------------------------------------------------- 1 | language: { 2 | "sProcessing": "处理中...", 3 | "sLengthMenu": "显示 _MENU_ 项结果", 4 | "sZeroRecords": "没有匹配结果", 5 | "sInfo": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项", 6 | "sInfoEmpty": "显示第 0 至 0 项结果,共 0 项", 7 | "sInfoFiltered": "(由 _MAX_ 项结果过滤)", 8 | "sInfoPostFix": "", 9 | "sSearch": "搜索:", 10 | "sUrl": "", 11 | "sEmptyTable": "表中数据为空", 12 | "sLoadingRecords": "载入中...", 13 | "sInfoThousands": ",", 14 | "oPaginate": { 15 | "sFirst": "首页", 16 | "sPrevious": "上页", 17 | "sNext": "下页", 18 | "sLast": "末页" 19 | }, 20 | "oAria": { 21 | "sSortAscending": ": 以升序排列此列", 22 | "sSortDescending": ": 以降序排列此列" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /resources/views/material/table/table.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {foreach $table_config['total_column'] as $key => $value} 5 | 6 | {/foreach} 7 | 8 | 9 | 10 | 11 | {foreach $table_config['total_column'] as $key => $value} 12 | 13 | {/foreach} 14 | 15 | 16 | 17 | 18 |
{$value}
{$value}
19 | -------------------------------------------------------------------------------- /resources/views/material/user/markdown/electron-ssr.md: -------------------------------------------------------------------------------- 1 | 1. 自行安装python,下载 electron-ssr 安装并启动 2 | 2. 右击托盘纸飞机图标->服务器->订阅管理,点击“添加”,输入订阅地址并回车 3 | 3. 订阅成功后点击“完成”关闭界面,右击托盘纸飞机图标->服务器,选择一个节点即可 -------------------------------------------------------------------------------- /resources/views/material/user/markdown/potatso-lite.md: -------------------------------------------------------------------------------- 1 | 1. 在外服APP商店中搜索Potatso Lite下载,安装时如果弹出登录框则使用上方的账户 2 | 2. 打开 Potatso Lite,点击添加代理,选择“订阅”,名字任意填写,点击复制本网页下方的“订阅地址”,粘贴到URL中,点击右上角的 √ 3 | 3. 选择一个代理节点,点击下方的“开始”即可 4 | -------------------------------------------------------------------------------- /resources/views/material/user/markdown/quantumult.md: -------------------------------------------------------------------------------- 1 | 1. 使用共享账户登录 App Store (请勿在“设置”界面直接登录AppleID),搜索并下载“Quantumult”,期间可能会弹出付款,照做即可,不会产生真实扣费 2 | 2. 点击下方的“设置”,点击“订阅”,点击右上角的 + 号,选择“服务器”,“名称”任意填写,点击复制本网页下方的“订阅地址”,粘贴到“链接”中,点击右上角的“保存” 3 | 3. 点击 Quantumult 底部菜单栏中间的图标,选择一个节点,再点击“主页”,打开右上角的开关即可 4 | -------------------------------------------------------------------------------- /resources/views/material/user/markdown/router-ss.md: -------------------------------------------------------------------------------- 1 | 梅林: 2 | 3 | 1. 下载“科学上网”插件 4 | 2. 进入路由器管理页面->系统管理->勾选“Format JFFS partition at next boot”和“Enable JFFS custom scripts and configs”->应用本页面设置,重启路由器 5 | 3. 进入路由器管理页面->软件中心->离线安装,上传插件文件进行安装 6 | 4. 进入“科学上网”插件->节点管理,手动添加节点,打开“科学上网”开关->保存&应用 7 | 8 | padavan: 9 | 10 | 1. 进入路由器管理页面->扩展功能->Shadowsocks 11 | 2. 手动添加需要的节点并勾选->应用主SS->打开上方的开关 -------------------------------------------------------------------------------- /resources/views/material/user/markdown/router.md: -------------------------------------------------------------------------------- 1 | 梅林 2 | 3 | 1. 下载并安装“科学上网”插件 4 | 2. 进入路由器管理页面->系统管理->勾选“Format JFFS partition at next boot”和“Enable JFFS custom scripts and configs”->应用本页面设置,重启路由器 5 | 3. 进入路由器管理页面->软件中心->离线安装,上传插件文件进行安装 6 | 4. 进入“科学上网”插件->更新管理,将下方的订阅地址复制粘贴进去,点击“保存并订阅” 7 | 5. 账号设置->节点选择,选择一个节点,打开“科学上网”开关->保存&应用 8 | 9 | padavan: 10 | 11 | 1. 进入路由器管理页面->扩展功能->Shadowsocks 12 | 2. 将下方的订阅地址填入“ssr服务器订阅”,点击“更新” 13 | 3. 选择需要的节点(右方勾选)->应用主SS->打开上方的开关 -------------------------------------------------------------------------------- /resources/views/material/user/markdown/shadowrocket.md: -------------------------------------------------------------------------------- 1 | 1:前往用户中心查看App Store账号,国区App Store已下架) 2 | 3 | ![](/images/c_ios_1.jpg) 4 | 5 | 2:打开App Store 切换账号,并下载App 6 | 7 | ![](/images/c_ios_2.jpg) 8 | 9 | 3:打开Safari,登录到 SSPANEL 的用户中心导入节点 10 | 11 | ![](/images/c_ios_3.jpg) 12 | 13 | 附加:iOS快速连接 14 | 15 | ![](/images/c_ios_4.jpg) -------------------------------------------------------------------------------- /resources/views/material/user/markdown/ss-qt5.md: -------------------------------------------------------------------------------- 1 | ### Ubuntu使用Shadowsocks-qt5科学上网 2 | 3 | #### 说明:shadowsocks-qt5是ubuntu上一个可视化的版本 4 | 5 | * * * 6 | 7 | ##### 安装shadowsocks-qt5 8 | 9 | \`\`\`bash 10 | $ sudo add-apt-repository ppa:hzwhuang/ss-qt5 2.$ sudo apt-get update 3.$ sudo apt-get install shadowsocks-qt5 11 | \`\`\` 12 | 13 | ##### 如果安装成功之后,按\`win\`键搜索应该能够找到软件,如下图所示: 14 | 15 | ![](/images/c-linux-1.png) 16 | 17 | ##### 配置shadowsocks-qt5 18 | 19 | ###### 填写对应的服务器IP,端口,密码,加密方式,红色标注地方请与图片一样 20 | 21 | ![](/images/c-linux-4.png) 22 | 23 | ##### 配置系统代理模式 24 | 25 | ![](/images/c-linux-5.png) 26 | 27 | ##### 配置浏览器代理模式(本次为Ubuntu自带FireFox浏览器为例) 28 | 29 | ![](/images/c-linux-6.png) 30 | 31 | ##### 连接并开始上网 32 | 33 | ![](/images/c-linux-7.png) 34 | -------------------------------------------------------------------------------- /resources/views/material/user/markdown/ssd-android.md: -------------------------------------------------------------------------------- 1 | 打开 ShadowsocksD,点击右上角的“加号”,选择“添加订阅”,将剪贴板中的内容粘贴进去,点击“OK”,稍等片刻即可看见订阅的节点 -------------------------------------------------------------------------------- /resources/views/material/user/markdown/ssd-windows.md: -------------------------------------------------------------------------------- 1 | 1. 下载 SSD,解压至任意磁盘并运行 2 | 2. 任务栏右下角右键纸飞机图标->服务器订阅->SSD服务器订阅设置,将订阅链接设置为下面的地址,确定之后再更新SSD服务器订阅 3 | 3. 然后选择一个合适的服务器,代理规则选“绕过局域网和大陆”,然后即可上网 4 | 4. 备用导入节点方法:复制节点链接,然后右键小飞机->从剪贴板复制地址 5 | -------------------------------------------------------------------------------- /resources/views/material/user/markdown/ssr-android.md: -------------------------------------------------------------------------------- 1 | 1:下载app 2 | 3 | ![](/images/c_android_1.jpg) 4 | 5 | 2:添加订阅并更新 6 | 7 | ![](/images/c_android_2.jpg) 8 | 9 | ![](/images/c_android_3.jpg) 10 | 11 | ![](/images/c_android_4.jpg) 12 | 13 | ![](/images/c_android_5.jpg) 14 | 15 | 3:选择一个节点并设置路由 16 | 17 | ![](/images/c_android_6.jpg) 18 | 19 | ![](/images/c_android_7.jpg) 20 | 21 | 4:连接 22 | 23 | ![](/images/c_android_8.jpg) 24 | 25 | 注释:国产安卓系统为定制系统,如需要Youtube、Google套件等,需要安装Google框架,具体机型如何安装各不相同,请直接查找教程 -------------------------------------------------------------------------------- /resources/views/material/user/markdown/ssr-mac.md: -------------------------------------------------------------------------------- 1 | 1:把下载的DMG包放入应用程序列表 2 | 3 | ![](/images/c_mac_1.png) 4 | 5 | 2:打开程式 6 | 7 | ![](/images/c_mac_2.png) 8 | 9 | 3:如提示不安全,请到系统偏好设置打开程式 10 | 11 | ![](/images/c_mac_3.png) 12 | 13 | 4:服务器-编辑订阅 14 | 15 | ![](/images/c_mac_4.png) 16 | 17 | 5:点击+号后填入订阅链接后手动更新订阅 18 | 19 | ![](/images/c_mac_5.png) 20 | 21 | ![](/images/c_mac_4.png) 22 | 23 | 6:选择一个节点 24 | 25 | ![](/images/c_mac_6.png) 26 | 27 | 7:打开谷歌测试一下吧 28 | 29 | ![](/images/c_mac_7.png) -------------------------------------------------------------------------------- /resources/views/material/user/markdown/ssr-win.md: -------------------------------------------------------------------------------- 1 | ## 下载软件 2 | 3 | ![](/images/c_win_1.png) 4 | 5 | ## 导入节点 6 | 7 | 解压客户端,双击shadowsocksr4.0的客户端(打不开就用2.0,2.0打不开请下载安装net.framework3.0,还打不开麻烦升级到win7) 8 | 9 | ### 方法一: 10 | 11 | 1. 在快速添加节点中找到【备用节点导入方法】 12 | 2. 点击其中的链接 13 | 14 | ![](/images/c_win_2.png) 15 | 16 | 4. 找到系统托盘菜单中的SSR纸飞机图标右键调出菜单 17 | 5. 点击剪贴板批量导入ssr://链接 18 | 19 | ![](/images/c_win_3.png) 20 | 21 | ### 方法二(推荐): 22 | 23 | 1. 在快速添加节点中找到节点订阅地址 24 | 2. 点击按钮复制订阅链接 25 | 26 | ![](/images/c_win_4.png) 27 | 28 | 1. 找到系统托盘菜单中的SSR纸飞机图标右键调出菜单 29 | 2. 打开SSR服务器订阅链接设置 30 | 31 | ![](/images/c_win_5.png) 32 | 33 | 7. 点击add添加一个订阅,将复制的链接填入右侧框内点击确定 34 | 35 | ![](/images/c_win_6.png) 36 | 37 | 9. 找到系统托盘菜单中的SSR纸飞机图标右键调出菜单 38 | 10. 点击更新SSR服务器订阅(不通过代理) 39 | 40 | ![](/images/c_win_7.png) 41 | 42 | ## 选择节点 43 | 44 | 1. 找到系统托盘菜单中的SSR纸飞机图标右键调出菜单 45 | 2. 服务器->找到对应本站的节点组->选择一个节点单击 46 | 47 | ![](/images/c_win_8.png) 48 | 49 | 4. 打开浏览器输入www.google.com试试吧! 50 | 51 | 以上教程均为电脑没有安装过任何代理软件的步骤,如果安装过其他代理软件可能产生冲突 -------------------------------------------------------------------------------- /resources/views/material/user/markdown/sstap.md: -------------------------------------------------------------------------------- 1 | 1. 安装 SSTap 2 | 2. 期间会安装虚拟网卡,请点击允许或确认 3 | 3. 打开桌面程序SSTap 4 | 4. 齿轮图标-SSR订阅-SSR订阅管理添加以下订阅链接即可 5 | 5. 更新后选择其中一个节点闪电图标测试节点-测试UDP转发...通过!(UDP通过即可连接并开始游戏),如测试不通过,点击齿轮图标设置DNS,推荐谷歌DNS 6 | -------------------------------------------------------------------------------- /resources/views/material/user/markdown/ssx.md: -------------------------------------------------------------------------------- 1 | 1. 下载 ShadowsocksX-NG并安装 2 | 2. 复制全部节点链接,然后右击托盘小飞机图标->从剪贴板导入服务器配置链接 3 | 3. 再次右击托盘小飞机图标->服务器,选择一个服务器即可上网 -------------------------------------------------------------------------------- /resources/views/material/user/markdown/v2rayn.md: -------------------------------------------------------------------------------- 1 | 1. 下载 V2RayN,解压至任意磁盘并运行 2 | 2. 双击任务栏右下角V2RayN图标->订阅->订阅设置->添加->填入下方的地址,点击确定 3 | 3. 再次点击订阅->更新订阅,右击任务栏右下角V2RayN图标->启动Http代理 4 | 4. 自行选择“Http代理模式”和“服务器” 5 | -------------------------------------------------------------------------------- /resources/views/material/user/markdown/v2rayng.md: -------------------------------------------------------------------------------- 1 | 1. 下载 V2RayNG 并安装 2 | 2. 点击左上角菜单按钮展开菜单->订阅设置->点击右上角“+”,URL填写以下地址并点击右上角“√”保存 3 | 3. 回到软件主界面->点击右上角“更多”按钮->更新订阅 4 | 4. 选择一个节点,点击右下角按钮订阅 5 | -------------------------------------------------------------------------------- /resources/views/material/user/pay_success.tpl: -------------------------------------------------------------------------------- 1 | {include file='user/main.tpl'} 2 | 3 | 4 |
5 |
6 |
7 |

充值结果

8 | 9 | 10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | {if ($success == 1)} 19 |

已充值成功 {$money} 元!请进入 套餐购买 页面来选购您的套餐。

20 | {else} 21 |

正在处理您的支付,请您稍等。此页面会自动刷新,或者您可以选择关闭此页面,余额将自动到账

22 | 25 | {/if} 26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 | 34 | 35 | {include file='user/footer.tpl'} -------------------------------------------------------------------------------- /resources/views/material/user/sys.tpl: -------------------------------------------------------------------------------- 1 | {include file='user/main.tpl'} 2 | 3 |
4 |
5 |

6 | 统计信息 7 | A 8 |

9 |
10 | 11 | 12 |
13 |
14 | 15 |
16 | 17 |
18 |
19 |

Coming soon...

20 |
21 |
22 |
23 |
24 |
25 |
26 | {include file='user/footer.tpl'} -------------------------------------------------------------------------------- /sql/clean.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE invite_code; 2 | 3 | ALTER TABLE `user` 4 | DROP `node_class`, 5 | DROP `node_speed`, 6 | DROP `node_period`; 7 | 8 | DROP TABLE ss_reset_pwd; 9 | 10 | ALTER TABLE `ss_node` 11 | DROP `offset`, 12 | DROP `node_speed_sum`, 13 | DROP `node_ping`; -------------------------------------------------------------------------------- /sql/fix_unable_to_reg.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE `user` CHANGE `plan` `plan` VARCHAR(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'A'; 2 | -------------------------------------------------------------------------------- /src/Controllers/BaseController.php: -------------------------------------------------------------------------------- 1 | view = View::getSmarty(); 33 | $this->user = Auth::getUser(); 34 | } 35 | 36 | /** 37 | * Get smarty 38 | * 39 | * @return Smarty 40 | */ 41 | public function view() 42 | { 43 | return $this->view; 44 | } 45 | 46 | // TODO: remove 47 | /** 48 | * Output JSON 49 | * 50 | * @param Response $response 51 | * @param array|object $resource 52 | * 53 | * @return ResponseInterface 54 | */ 55 | public function echoJson(Response $response, $resource) 56 | { 57 | return $response->withJson($resource); 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /src/Controllers/ResController.php: -------------------------------------------------------------------------------- 1 | build(); 15 | //$builder->getPhrase(); 16 | $newResponse = $response->withHeader('Content-type', ' image/jpeg');//->getBody()->write($builder->output()); 17 | $newResponse->getBody()->write($builder->output()); 18 | return $newResponse; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/Middleware/Admin.php: -------------------------------------------------------------------------------- 1 | isLogin) { 20 | return $response->withStatus(302)->withHeader('Location', '/auth/login'); 21 | } 22 | if (!$user->isAdmin()) { 23 | return $response->withStatus(302)->withHeader('Location', '/user'); 24 | } 25 | return $next($request, $response); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/Middleware/Auth.php: -------------------------------------------------------------------------------- 1 | isLogin) { 20 | return $response->withStatus(302)->withHeader('Location', '/auth/login'); 21 | } 22 | $enablePages = array('/user/disable', '/user/backtoadmin', '/user/logout'); 23 | if ($user->enable == 0 && !in_array($_SERVER['REQUEST_URI'], $enablePages)) { 24 | return $response->withStatus(302)->withHeader('Location', '/user/disable'); 25 | } 26 | return $next($request, $response); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/Middleware/Guest.php: -------------------------------------------------------------------------------- 1 | isLogin) { 20 | return $response->withStatus(302)->withHeader('Location', '/user'); 21 | } 22 | return $next($request, $response); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/Middleware/Mod_Mu.php: -------------------------------------------------------------------------------- 1 | getQueryParam('key'); 20 | if ($key === null) { 21 | return $response->withjson([ 22 | 'ret' => 0, 23 | 'data' => 'Your key is null.' 24 | ]); 25 | } 26 | 27 | $keys = Config::getMuKey(); 28 | $auth = in_array($key, $keys); 29 | 30 | $node = Node::where('node_ip', 'LIKE', $_SERVER['REMOTE_ADDR'] . '%')->first(); 31 | if ($auth === false 32 | || ($node === null && $_SERVER['REMOTE_ADDR'] != '127.0.0.1') 33 | ) { 34 | return $response->withJson([ 35 | 'ret' => 0, 36 | 'data' => 'Token or IP is invalid. Now, your IP address is ' . $_SERVER['REMOTE_ADDR'] 37 | ]); 38 | } 39 | 40 | return $next($request, $response); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/Models/Ann.php: -------------------------------------------------------------------------------- 1 | attributes['datetime']); 14 | } 15 | 16 | public function content() 17 | { 18 | return str_replace(PHP_EOL, '
', $this->attributes['value']); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/Models/BlockIp.php: -------------------------------------------------------------------------------- 1 | attributes['nodeid'])->first(); 15 | } 16 | 17 | public function time() 18 | { 19 | return date('Y-m-d H:i:s', $this->attributes['datetime']); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/Models/Bought.php: -------------------------------------------------------------------------------- 1 | attributes['renew']); 13 | } 14 | 15 | public function datetime() 16 | { 17 | return date('Y-m-d H:i:s', $this->attributes['datetime']); 18 | } 19 | 20 | public function user() 21 | { 22 | $user = User::where('id', $this->attributes['userid'])->first(); 23 | if ($user == null) { 24 | self::where('id', '=', $this->attributes['id'])->delete(); 25 | return null; 26 | } 27 | 28 | return $user; 29 | } 30 | 31 | public function shop() 32 | { 33 | return Shop::where('id', $this->attributes['shopid'])->first(); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/Models/CheckInLog.php: -------------------------------------------------------------------------------- 1 | attributes['userid'])->first(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/Models/Config.php: -------------------------------------------------------------------------------- 1 | attributes['expire']); 13 | } 14 | 15 | public function order($shop) 16 | { 17 | if ($this->attributes['shop'] == '') { 18 | return true; 19 | } 20 | 21 | $shop_array = explode(',', $this->attributes['shop']); 22 | 23 | foreach ($shop_array as $shopid) { 24 | if ($shopid == $shop) { 25 | return true; 26 | } 27 | } 28 | 29 | return false; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/Models/DetectLog.php: -------------------------------------------------------------------------------- 1 | attributes['list_id'])->first(); 13 | if ($rule == null) { 14 | self::where('id', '=', $this->attributes['id'])->delete(); 15 | return null; 16 | } 17 | 18 | return $rule; 19 | } 20 | 21 | public function User() 22 | { 23 | $user = User::where('id', $this->attributes['user_id'])->first(); 24 | if ($user == null) { 25 | self::where('id', '=', $this->attributes['id'])->delete(); 26 | return null; 27 | } 28 | 29 | return $user; 30 | } 31 | 32 | public function Node() 33 | { 34 | $node = Node::where('id', $this->attributes['node_id'])->first(); 35 | if ($node == null) { 36 | self::where('id', '=', $this->attributes['id'])->delete(); 37 | return null; 38 | } 39 | 40 | return $node; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/Models/DetectRule.php: -------------------------------------------------------------------------------- 1 | attributes['userid'])->first(); 16 | if ($user == null) { 17 | self::where('id', '=', $this->attributes['id'])->delete(); 18 | return null; 19 | } 20 | 21 | return $user; 22 | } 23 | 24 | public function Node() 25 | { 26 | $node = Node::where('id', $this->attributes['nodeid'])->first(); 27 | if ($node == null) { 28 | self::where('id', '=', $this->attributes['id'])->delete(); 29 | return null; 30 | } 31 | 32 | return $node; 33 | } 34 | 35 | 36 | public function ip() 37 | { 38 | return str_replace('::ffff:', '', $this->attributes['ip']); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/Models/Link.php: -------------------------------------------------------------------------------- 1 | attributes['userid'])->first(); 16 | if ($user == null) { 17 | self::where('id', '=', $this->attributes['id'])->delete(); 18 | return null; 19 | } 20 | 21 | return $user; 22 | } 23 | 24 | public function datetime() 25 | { 26 | return date('Y-m-d H:i:s', $this->attributes['datetime']); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/Models/Model.php: -------------------------------------------------------------------------------- 1 | attributes['load']; 13 | $exp = explode(' ', $load); 14 | return $exp[0]; 15 | } 16 | 17 | public function getTime() 18 | { 19 | $time = $this->attributes['log_time']; 20 | return date('Y-m-d H:i:s', $time); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/Models/NodeOnlineLog.php: -------------------------------------------------------------------------------- 1 | attributes['userid'])->first(); 13 | if ($user == null) { 14 | Bought::where('id', '=', $this->attributes['id'])->delete(); 15 | return null; 16 | } 17 | 18 | return $user; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/Models/Paylist.php: -------------------------------------------------------------------------------- 1 | attributes['user_id'])->first(); 16 | if ($user == null) { 17 | self::where('id', '=', $this->attributes['id'])->delete(); 18 | return null; 19 | } 20 | 21 | return $user; 22 | } 23 | 24 | public function Source_Node() 25 | { 26 | $node = Node::where('id', $this->attributes['source_node_id'])->first(); 27 | if ($node == null && $this->attributes['source_node_id'] != 0) { 28 | self::where('id', '=', $this->attributes['id'])->delete(); 29 | return null; 30 | } 31 | 32 | return $node; 33 | } 34 | 35 | public function Dist_Node() 36 | { 37 | if ($this->attributes['dist_node_id'] == -1) { 38 | return null; 39 | } 40 | 41 | $node = Node::where('id', $this->attributes['dist_node_id'])->first(); 42 | if ($node == null) { 43 | self::where('id', '=', $this->attributes['id'])->delete(); 44 | return null; 45 | } 46 | 47 | return $node; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/Models/Role.php: -------------------------------------------------------------------------------- 1 | attributes['datetime']); 16 | } 17 | 18 | public function User() 19 | { 20 | $user = User::where('id', $this->attributes['user_id'])->first(); 21 | if ($user == null) { 22 | Ticket::where('id', '=', $this->attributes['id'])->delete(); 23 | return null; 24 | } 25 | 26 | return $user; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/Models/Ticket.php: -------------------------------------------------------------------------------- 1 | attributes['datetime']); 16 | } 17 | 18 | public function User() 19 | { 20 | $user = User::where('id', $this->attributes['userid'])->first(); 21 | if ($user == null) { 22 | self::where('id', '=', $this->attributes['id'])->delete(); 23 | return null; 24 | } 25 | 26 | return $user; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/Models/Token.php: -------------------------------------------------------------------------------- 1 | attributes['node_id'])->first(); 16 | if ($node == null) { 17 | self::where('id', '=', $this->attributes['id'])->delete(); 18 | return null; 19 | } 20 | 21 | return $node; 22 | } 23 | 24 | public function user() 25 | { 26 | $user = User::where('id', $this->attributes['user_id'])->first(); 27 | if ($user == null) { 28 | self::where('id', '=', $this->attributes['id'])->delete(); 29 | return null; 30 | } 31 | 32 | return $user; 33 | } 34 | 35 | public function totalUsed() 36 | { 37 | return Tools::flowAutoShow($this->attributes['u'] + $this->attributes['d']); 38 | } 39 | 40 | public function totalUsedRaw() 41 | { 42 | return number_format(($this->attributes['u'] + $this->attributes['d']) / 1024, 2, '.', ''); 43 | } 44 | 45 | public function logTime() 46 | { 47 | return Tools::toDateTime($this->attributes['log_time']); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/Models/UnblockIp.php: -------------------------------------------------------------------------------- 1 | attributes['userid'])->first(); 14 | if ($user == null) { 15 | self::where('id', '=', $this->attributes['id'])->delete(); 16 | return null; 17 | } 18 | 19 | return $user; 20 | } 21 | 22 | public function time() 23 | { 24 | return date('Y-m-d H:i:s', $this->attributes['datetime']); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/Services/Analytic.php: -------------------------------------------------------------------------------- 1 | count(); 13 | } 14 | 15 | public function checkinUserCount() 16 | { 17 | return User::where('last_checkin_time', '>', 1)->count(); 18 | } 19 | 20 | public function activedUserCount() 21 | { 22 | return User::where('t', '>', 1)->count(); 23 | } 24 | 25 | public function totalTraffic() 26 | { 27 | $u = User::all()->sum('u'); 28 | $d = User::all()->sum('d'); 29 | return Tools::flowAutoShow($u + $d); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/Services/Auth.php: -------------------------------------------------------------------------------- 1 | login($uid, $time); 18 | } 19 | 20 | /** 21 | * Get current user(cached) 22 | * 23 | * @return \App\Models\User 24 | */ 25 | public static function getUser() 26 | { 27 | global $user; 28 | if ($user === null) { 29 | $user = self::getDriver()->getUser(); 30 | } 31 | return $user; 32 | } 33 | 34 | public static function logout() 35 | { 36 | self::getDriver()->logout(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/Services/Auth/Base.php: -------------------------------------------------------------------------------- 1 | $uid, 15 | 'expire_time' => $expireTime 16 | ]; 17 | $decode = Jwt::encode($ary); 18 | Utils\Cookie::set([ 19 | //"uid" => $uid, 20 | 'token' => $decode 21 | ], $expireTime); 22 | } 23 | 24 | public function logout() 25 | { 26 | Utils\Cookie::set([ 27 | //"uid" => $uid, 28 | 'token' => '' 29 | ], time() - 3600); 30 | } 31 | 32 | public function getUser() 33 | { 34 | $token = Utils\Cookie::get('token'); 35 | $tokenInfo = Jwt::decodeArray($token); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/Services/Aws/Client.php: -------------------------------------------------------------------------------- 1 | 'us-west-2', 13 | 'version' => 'latest', 14 | 'DynamoDb' => [ 15 | 'region' => 'eu-central-1' 16 | ] 17 | ]); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/Services/Aws/Factory.php: -------------------------------------------------------------------------------- 1 | array( 14 | 'key' => Config::get('aws_access_key_id'), 15 | 'secret' => Config::get('aws_secret_access_key'), 16 | ), 17 | 'region' => Config::get('aws_region'), 18 | 'version' => 'latest', 19 | 'DynamoDb' => [ 20 | 'region' => Config::get('aws_region') 21 | ] 22 | ]); 23 | return $sdk; 24 | } 25 | 26 | public static function createDynamodb() 27 | { 28 | return self::createAwsClient()->createDynamoDb(); 29 | } 30 | 31 | public static function createSes() 32 | { 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/Services/BitPayment.php: -------------------------------------------------------------------------------- 1 | notify($request, $response, $args); 21 | } 22 | public static function returnHTML($request, $response, $args) 23 | { 24 | return self::getClient()->getReturnHTML($request, $response, $args); 25 | } 26 | public static function purchaseHTML() 27 | { 28 | $bitpayConfig = Config::get('bitpay_secret'); 29 | if (self::getClient() != null && $bitpayConfig != '') { 30 | return self::getClient()->getPurchaseHTML(); 31 | } 32 | 33 | return ''; 34 | } 35 | public static function getStatus($request, $response, $args) 36 | { 37 | return self::getClient()->getStatus($request, $response, $args); 38 | } 39 | public static function purchase($request, $response, $args) 40 | { 41 | return self::getClient()->purchase($request, $response, $args); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/Services/Boot.php: -------------------------------------------------------------------------------- 1 | addConnection(Config::getDbConfig()); 20 | if (Config::get('enable_radius') == true) { 21 | $capsule->addConnection(Config::getRadiusDbConfig(), 'radius'); 22 | } 23 | $capsule->bootEloquent(); 24 | 25 | View::$connection = $capsule->getDatabaseManager(); 26 | $capsule->getDatabaseManager()->connection('default')->enableQueryLog(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/Services/Factory.php: -------------------------------------------------------------------------------- 1 | pay_config = [ 15 | "return_url" => "/user/code", 16 | "type" => "aliPay" 17 | ]; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/Services/Jwt.php: -------------------------------------------------------------------------------- 1 | client = Factory::createSes(); 15 | } 16 | 17 | public function getSender() 18 | { 19 | return Config::get('aws_ses_sender'); 20 | } 21 | 22 | public function send($to, $subject, $text) 23 | { 24 | $this->client->sendEmail([ 25 | 'Destination' => [ // REQUIRED 26 | 'ToAddresses' => [$to], 27 | ], 28 | 'Message' => [ // REQUIRED 29 | 'Body' => [ // REQUIRED 30 | 'Html' => [ 31 | 'Data' => $text, // REQUIRED 32 | ], 33 | 'Text' => [ 34 | 'Data' => $text, // REQUIRED 35 | ], 36 | ], 37 | 'Subject' => [ // REQUIRED 38 | 'Data' => $subject, // REQUIRED 39 | ], 40 | ], 41 | 'Source' => $this->getSender(), // REQUIRED 42 | ]); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/Services/Password.php: -------------------------------------------------------------------------------- 1 | email = $email; 24 | $pwdRst->init_time = time(); 25 | $pwdRst->expire_time = time() + 3600 * 24; // @todo 26 | $pwdRst->token = Tools::genRandomChar(64); 27 | if (!$pwdRst->save()) { 28 | return false; 29 | } 30 | $subject = Config::get('appName') . '重置密码'; 31 | $resetUrl = Config::get('baseUrl') . '/password/token/' . $pwdRst->token; 32 | try { 33 | Mail::send($email, $subject, 'password/reset.tpl', [ 34 | 'resetUrl' => $resetUrl 35 | ], [ 36 | //BASE_PATH.'/public/assets/email/styles.css' 37 | ]); 38 | } catch (Exception $e) { 39 | return false; 40 | } 41 | return true; 42 | } 43 | 44 | public static function resetBy($token, $password) 45 | { 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/Services/RedisClient.php: -------------------------------------------------------------------------------- 1 | Config::get('redis_scheme'), 16 | 'password' => Config::get('redis_password'), 17 | 'host' => Config::get('redis_host'), 18 | 'port' => Config::get('redis_port'), 19 | 'database' => Config::get('redis_database'), 20 | ]; 21 | $this->client = new Client($config); 22 | } 23 | 24 | public function getClient() 25 | { 26 | return $this->client; 27 | } 28 | 29 | public function get($key) 30 | { 31 | return $this->client->get($key); 32 | } 33 | 34 | public function set($key, $value) 35 | { 36 | $this->client->set($key, $value); 37 | } 38 | 39 | public function setex($key, $time, $value) 40 | { 41 | $this->client->setex($key, $time, $value); 42 | } 43 | 44 | public function del($key) 45 | { 46 | $this->client->del($key); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/Utils/Check.php: -------------------------------------------------------------------------------- 1 | settemplatedir(BASE_PATH . '/resources/conf/'); 22 | $smarty->setcompiledir(BASE_PATH . '/storage/framework/smarty/compile/'); 23 | $smarty->setcachedir(BASE_PATH . '/storage/framework/smarty/cache/'); 24 | $smarty->registerClass('config', Config::class); 25 | return $smarty; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/Utils/Cookie.php: -------------------------------------------------------------------------------- 1 | $value) { 10 | setcookie($key, $value, $time, '/'); 11 | } 12 | } 13 | 14 | public static function setwithdomain($arg, $time, $domain) 15 | { 16 | foreach ($arg as $key => $value) { 17 | setcookie($key, $value, $time, '/', $domain); 18 | } 19 | } 20 | 21 | public static function get($key) 22 | { 23 | return $_COOKIE[$key] ?? ''; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Utils/Geetest.php: -------------------------------------------------------------------------------- 1 | pre_process($user_id); 18 | $ret = json_decode($GtSdk->get_response_str()); 19 | session_start(); 20 | $_SESSION['gtserver'] = $status; 21 | $_SESSION['user_id'] = $user_id; 22 | return $ret; 23 | } 24 | 25 | public static function verify($geetest_challenge, $geetest_validate, $geetest_seccode) 26 | { 27 | session_start(); 28 | $GtSdk = new GeetestLib(Config::get('geetest_id'), Config::get('geetest_key')); 29 | $user_id = $_SESSION['user_id']; 30 | if ($_SESSION['gtserver'] == 1) { 31 | $result = $GtSdk->success_validate($geetest_challenge, $geetest_validate, $geetest_seccode, $user_id); 32 | if ($result) { 33 | return true; 34 | } 35 | 36 | return false; 37 | } 38 | 39 | if ($GtSdk->fail_validate($geetest_challenge, $geetest_validate, $geetest_seccode)) { 40 | return true; 41 | } 42 | 43 | return false; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/Utils/QRcode.php: -------------------------------------------------------------------------------- 1 | text(); 22 | if ($text == false || $text == '') { 23 | return null; 24 | } 25 | return $text; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/Utils/Telegram.php: -------------------------------------------------------------------------------- 1 | sendMessage(Config::get('telegram_chatid'), $messageText); 21 | } catch (Exception $e) { 22 | echo $e->getMessage(); 23 | } 24 | } 25 | } 26 | 27 | 28 | public static function SendMarkdown($messageText) 29 | { 30 | if (Config::get('enable_telegram') == true) { 31 | $bot = new BotApi(Config::get('telegram_token')); 32 | try { 33 | $bot->sendMessage(Config::get('telegram_chatid'), $messageText, 'Markdown'); 34 | } catch (Exception $e) { 35 | echo $e->getMessage(); 36 | } 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/Utils/Tuling.php: -------------------------------------------------------------------------------- 1 | connect('www.tuling123.com', 80); 22 | $sock->set_method('POST'); 23 | $sock->add_header('Content-Type', 'application/json'); 24 | $sock->query('/openapi/api', $param); 25 | 26 | $result = $sock->fetch_body(); 27 | $result_array = json_decode($result, true); 28 | return $result_array['text']; 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /storage/framework/smarty/cache/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/storage/framework/smarty/cache/.gitkeep -------------------------------------------------------------------------------- /storage/framework/smarty/compile/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/storage/framework/smarty/compile/.gitkeep -------------------------------------------------------------------------------- /storage/framework/views/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/storage/framework/views/.gitkeep -------------------------------------------------------------------------------- /test/listTpl.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | find ./ -name "*.tpl" > ./test/tpl_files.txt 3 | 4 | while read LINE 5 | do 6 | echo '--------------------------------------------------' 7 | echo $LINE 8 | echo '--------------------------------------------------' 9 | ./test/smarty-lint/smarty-lint "$LINE" y 10 | done < ./test/tpl_files.txt 11 | -------------------------------------------------------------------------------- /test/route.list: -------------------------------------------------------------------------------- 1 | /paolu.html 2 | / 3 | /index.php 4 | /user 5 | /user/profile 6 | /user/edit 7 | /user/trafficlog 8 | /user/ticket 9 | /user/ticket/create 10 | /user/invite 11 | /user/node 12 | /user/relay 13 | /user/lookingglass 14 | /user/announcement 15 | /user/tutorial 16 | /user/detect 17 | /user/detect/log 18 | /user/code 19 | /user/shop 20 | /user/bought 21 | /admin 22 | /admin/announcement 23 | /admin/announcement/create 24 | /admin/auto 25 | /admin/node 26 | /admin/trafficlog 27 | /admin/block 28 | /admin/unblock 29 | /admin/user 30 | /admin/relay 31 | /admin/invite 32 | /admin/login 33 | /admin/alive 34 | /admin/detect 35 | /admin/detect/log 36 | /admin/code 37 | /admin/shop 38 | /admin/code/create 39 | /admin/coupon 40 | /admin/bought -------------------------------------------------------------------------------- /test/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "" 4 | echo "key=$1" 5 | echo "expire_in=$2" 6 | echo '--------------------------------------------------' 7 | 8 | cookie="uid=1; email=test@example.com; key=$1; expire_in=$2" 9 | 10 | num=0 11 | x=1 12 | success=0 13 | 14 | while read ROUTE 15 | do 16 | http_code=$(curl -o /dev/null -H"Cookie: $cookie" -s -m 10 --connect-timeout 5 -w %{http_code} "http://sspanel.test:23480$ROUTE") 17 | num=$[num+x] 18 | [[ "$http_code" = "200" ]] && success=$[success+x] 19 | echo "$ROUTE - http code: $http_code" 20 | done < ./test/route.list 21 | 22 | echo '--------------------------------------------------' 23 | echo "Success route: $success / $num" 24 | -------------------------------------------------------------------------------- /test/travis-ci.conf: -------------------------------------------------------------------------------- 1 | server { 2 | listen 23480; 3 | listen [::]:23480; 4 | root %TRAVIS_BUILD_DIR%/public; 5 | index index.php; 6 | server_name sspanel.test; 7 | location / { 8 | autoindex on; 9 | try_files $uri /index.php$is_args$args; 10 | } 11 | 12 | location ~ \.php$ { 13 | include snippets/fastcgi-php.conf; 14 | fastcgi_pass unix:/run/php/php7.3-fpm.sock; 15 | } 16 | } -------------------------------------------------------------------------------- /uim-index-dev/.editorconfig: -------------------------------------------------------------------------------- 1 | [*.{js,jsx,ts,tsx,vue}] 2 | indent_style = space 3 | indent_size = 2 4 | trim_trailing_whitespace = true 5 | insert_final_newline = true 6 | -------------------------------------------------------------------------------- /uim-index-dev/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | # local env files 6 | .env.local 7 | .env.*.local 8 | 9 | # Log files 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # Editor directories and files 15 | .idea 16 | .vscode 17 | *.suo 18 | *.ntvs* 19 | *.njsproj 20 | *.sln 21 | *.sw* 22 | -------------------------------------------------------------------------------- /uim-index-dev/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/app' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /uim-index-dev/createIndexTpl.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | npm run build 4 | cp -u ../public/vuedist/index.html ../resources/views/material/index.tpl -------------------------------------------------------------------------------- /uim-index-dev/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/uim-index-dev/public/favicon.ico -------------------------------------------------------------------------------- /uim-index-dev/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glzjin/SSPanel-Uim/1b8297835249e713754f0c92efd7c36a5a3a93af/uim-index-dev/src/assets/logo.png -------------------------------------------------------------------------------- /uim-index-dev/src/components/anchor.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | 15 | 57 | -------------------------------------------------------------------------------- /uim-index-dev/src/components/messager.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 20 | 21 | 49 | -------------------------------------------------------------------------------- /uim-index-dev/src/components/panel/UserAnnouncement.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 18 | -------------------------------------------------------------------------------- /uim-index-dev/src/components/panel/UserSettings.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 24 | -------------------------------------------------------------------------------- /uim-index-dev/src/components/payment/code.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 48 | -------------------------------------------------------------------------------- /uim-index-dev/src/components/table.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 15 | 16 | 41 | -------------------------------------------------------------------------------- /uim-index-dev/src/components/tooltip.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 14 | 15 | 48 | -------------------------------------------------------------------------------- /uim-index-dev/src/directives/uimclip.js: -------------------------------------------------------------------------------- 1 | export default { 2 | inserted: function (el, binding) { 3 | el.addEventListener('click', (e) => { 4 | let input = document.createElement('input') 5 | let value = el.dataset.uimclip 6 | input.setAttribute('type', 'text') 7 | input.setAttribute('value', value) 8 | el.after(input) 9 | input.focus() 10 | input.setSelectionRange(0, value.length) 11 | document.execCommand('copy') 12 | input.remove(); 13 | binding.value.onSuccess(); 14 | }) 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /uim-index-dev/src/mixins/nodeMap.js: -------------------------------------------------------------------------------- 1 | import { 2 | mapActions, 3 | mapState, 4 | mapMutations 5 | } from 'vuex' 6 | 7 | import tmp from '../store' 8 | 9 | export default { 10 | store: tmp, 11 | computed: mapState({ 12 | nodeList: state => state.nodeState.nodeList 13 | }), 14 | methods: { 15 | ...mapActions({}), 16 | ...mapMutations({ 17 | setNodeList: 'SET_NODELIST' 18 | }) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /uim-index-dev/src/mixins/userMixin.js: -------------------------------------------------------------------------------- 1 | import { 2 | _get 3 | } from '../js/fetch' 4 | 5 | export default { 6 | methods: { 7 | reConfigResourse() { 8 | _get('/getallresourse', 'include').then((r) => { 9 | if (r.ret === 1) { 10 | this.updateUserSet(r.resourse) 11 | } else { 12 | this.ajaxNotLogin() 13 | } 14 | }) 15 | }, 16 | updateUserSet(resourse) { 17 | this.setAllResourse(resourse) 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /uim-index-dev/src/mixins/userSetMixin.js: -------------------------------------------------------------------------------- 1 | export default { 2 | props: ['resourseTrans'], 3 | methods: { 4 | wheelChange (e) { 5 | this.$emit('turnPageByWheel', e.deltaY) 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /uim-index-dev/src/stores/NodeStore.js: -------------------------------------------------------------------------------- 1 | export default { 2 | state: { 3 | nodeList: '' 4 | }, 5 | mutations: { 6 | SET_NODELIST(state, config) { 7 | state.nodeList = config 8 | } 9 | }, 10 | actions: { 11 | 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /uim-index-dev/src/views/Password.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 14 | -------------------------------------------------------------------------------- /uim-index-dev/src/views/Root.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 21 | -------------------------------------------------------------------------------- /uim-index-dev/src/views/User.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | -------------------------------------------------------------------------------- /uim-index-dev/vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | publicPath: '/vuedist/', 3 | outputDir: '../public/vuedist/' 4 | } 5 | -------------------------------------------------------------------------------- /xcat: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | boot(); 18 | --------------------------------------------------------------------------------