Full Code of oitone/wemall for AI

v7 685d0aab69a6 cached
1835 files
21.9 MB
5.8M tokens
8733 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (23,898K chars total). Download the full file to get everything.
Repository: oitone/wemall
Branch: v7
Commit: 685d0aab69a6
Files: 1835
Total size: 21.9 MB

Directory structure:
gitextract_l5oxnja2/

├── .htaccess
├── .travis.yml
├── LICENSE.txt
├── README.md
├── addons/
│   ├── common/
│   │   └── config.php
│   └── putong/
│       ├── config.php
│       └── demo/
│           ├── Demo.php
│           ├── config.php
│           ├── controller/
│           │   ├── Admin.php
│           │   └── Index.php
│           ├── data/
│           │   ├── install.sql
│           │   └── uninstall.sql
│           ├── info.html
│           ├── model/
│           │   └── AddonsPutongDemoConfig.php
│           └── view/
│               ├── admin_add.html
│               ├── admin_index.html
│               ├── index_index.html
│               └── public_left.html
├── application/
│   ├── .htaccess
│   ├── admin/
│   │   ├── common.php
│   │   ├── config.php
│   │   ├── controller/
│   │   │   ├── AddonsController.php
│   │   │   ├── BaseController.php
│   │   │   ├── FileController.php
│   │   │   ├── HelpController.php
│   │   │   ├── IndexController.php
│   │   │   ├── PublicController.php
│   │   │   ├── WechatController.php
│   │   │   ├── article/
│   │   │   │   ├── CategoryController.php
│   │   │   │   └── IndexController.php
│   │   │   ├── auth/
│   │   │   │   ├── AdminController.php
│   │   │   │   └── GroupController.php
│   │   │   ├── config/
│   │   │   │   ├── MailController.php
│   │   │   │   ├── SiteController.php
│   │   │   │   └── SmsController.php
│   │   │   ├── tpl/
│   │   │   │   ├── MailController.php
│   │   │   │   ├── ShopController.php
│   │   │   │   └── SmsController.php
│   │   │   ├── user/
│   │   │   │   ├── IndexController.php
│   │   │   │   └── LevelController.php
│   │   │   └── wx/
│   │   │       ├── ConfigController.php
│   │   │       ├── KefuController.php
│   │   │       ├── MenuController.php
│   │   │       ├── PrintController.php
│   │   │       ├── ReplyController.php
│   │   │       └── TplmsgController.php
│   │   ├── validate/
│   │   │   └── Admin.php
│   │   └── view/
│   │       ├── addons_index.html
│   │       ├── addons_shop.html
│   │       ├── analysis_user.html
│   │       ├── article/
│   │       │   ├── category_add.html
│   │       │   ├── category_index.html
│   │       │   ├── index_add.html
│   │       │   └── index_index.html
│   │       ├── auth/
│   │       │   ├── admin_add.html
│   │       │   ├── admin_index.html
│   │       │   ├── group_add.html
│   │       │   └── group_index.html
│   │       ├── config/
│   │       │   ├── mail_index.html
│   │       │   ├── site_index.html
│   │       │   └── sms_index.html
│   │       ├── file_index.html
│   │       ├── help_index.html
│   │       ├── index_index.html
│   │       ├── layout.html
│   │       ├── layout_addons.html
│   │       ├── public_footer.html
│   │       ├── public_header.html
│   │       ├── public_left.html
│   │       ├── public_login.html
│   │       ├── tpl/
│   │       │   ├── mail_add.html
│   │       │   ├── mail_index.html
│   │       │   ├── shop_index.html
│   │       │   ├── sms_add.html
│   │       │   └── sms_index.html
│   │       ├── user/
│   │       │   ├── index_add.html
│   │       │   ├── index_index.html
│   │       │   ├── level_add.html
│   │       │   └── level_index.html
│   │       └── wx/
│   │           ├── config_index.html
│   │           ├── kefu_index.html
│   │           ├── menu_add.html
│   │           ├── menu_index.html
│   │           ├── print_index.html
│   │           ├── reply_add.html
│   │           ├── reply_index.html
│   │           ├── tplmsg_add.html
│   │           └── tplmsg_index.html
│   ├── app/
│   │   └── controller/
│   │       ├── AddonsController.php
│   │       └── IndexController.php
│   ├── command.php
│   ├── common/
│   │   ├── behavior/
│   │   │   └── Config.php
│   │   └── model/
│   │       ├── Admin.php
│   │       ├── Analysis.php
│   │       ├── Article.php
│   │       ├── ArticleCategory.php
│   │       ├── AuthGroup.php
│   │       ├── AuthGroupAccess.php
│   │       ├── AuthRule.php
│   │       ├── Config.php
│   │       ├── File.php
│   │       ├── Mail.php
│   │       ├── MailTpl.php
│   │       ├── Sms.php
│   │       ├── SmsTpl.php
│   │       ├── User.php
│   │       ├── UserLevel.php
│   │       ├── WxConfig.php
│   │       ├── WxKefu.php
│   │       ├── WxMenu.php
│   │       ├── WxPrint.php
│   │       ├── WxReply.php
│   │       └── WxTplmsg.php
│   ├── common.php
│   ├── config.php
│   ├── database.php
│   ├── install/
│   │   ├── common.php
│   │   ├── config.php
│   │   ├── controller/
│   │   │   └── IndexController.php
│   │   ├── data/
│   │   │   └── database.tpl
│   │   └── view/
│   │       ├── index.html
│   │       ├── index_header.html
│   │       ├── index_index.html
│   │       ├── index_setup1.html
│   │       ├── index_setup2.html
│   │       └── index_setup3.html
│   ├── route.php
│   └── tags.php
├── build.php
├── composer.json
├── data/
│   └── index.html
├── extend/
│   └── com/
│       └── Auth.php
├── index.php
├── public/
│   ├── .htaccess
│   ├── index.php
│   ├── install/
│   │   ├── css/
│   │   │   ├── base.css
│   │   │   └── style.css
│   │   └── js/
│   │       └── install.js
│   ├── robots.txt
│   ├── router.php
│   └── static/
│       ├── article/
│       │   ├── page_mp_article_improve2756b8.css
│       │   ├── page_mp_article_improve_combo2805ea.css
│       │   └── page_mp_article_improve_pc2637ae.css
│       ├── dist/
│       │   ├── css/
│       │   │   └── AdminLTE.css
│       │   ├── fonts/
│       │   │   └── FontAwesome.otf
│       │   └── js/
│       │       ├── app.js
│       │       └── wemall.js
│       ├── layui/
│       │   ├── css/
│       │   │   ├── layui.css
│       │   │   └── modules/
│       │   │       ├── code.css
│       │   │       ├── laydate/
│       │   │       │   └── laydate.css
│       │   │       └── layer/
│       │   │           └── default/
│       │   │               └── layer.css
│       │   ├── lay/
│       │   │   ├── dest/
│       │   │   │   └── layui.all.js
│       │   │   ├── lib/
│       │   │   │   └── jquery.js
│       │   │   └── modules/
│       │   │       ├── code.js
│       │   │       ├── element.js
│       │   │       ├── flow.js
│       │   │       ├── form.js
│       │   │       ├── laydate.js
│       │   │       ├── layedit.js
│       │   │       ├── layer.js
│       │   │       ├── laypage.js
│       │   │       ├── laytpl.js
│       │   │       ├── tree.js
│       │   │       ├── upload.js
│       │   │       └── util.js
│       │   └── layui.js
│       ├── plugins/
│       │   ├── bootbox/
│       │   │   └── bootbox.js
│       │   ├── bootstrap/
│       │   │   ├── css/
│       │   │   │   └── bootstrap.css
│       │   │   └── js/
│       │   │       ├── bootstrap.js
│       │   │       └── npm.js
│       │   ├── bootstrap-datetimepicker/
│       │   │   ├── css/
│       │   │   │   └── bootstrap-datetimepicker.css
│       │   │   └── js/
│       │   │       ├── bootstrap-datetimepicker.js
│       │   │       └── locales/
│       │   │           ├── bootstrap-datetimepicker.ar.js
│       │   │           ├── bootstrap-datetimepicker.bg.js
│       │   │           ├── bootstrap-datetimepicker.ca.js
│       │   │           ├── bootstrap-datetimepicker.cs.js
│       │   │           ├── bootstrap-datetimepicker.da.js
│       │   │           ├── bootstrap-datetimepicker.de.js
│       │   │           ├── bootstrap-datetimepicker.ee.js
│       │   │           ├── bootstrap-datetimepicker.el.js
│       │   │           ├── bootstrap-datetimepicker.es.js
│       │   │           ├── bootstrap-datetimepicker.fi.js
│       │   │           ├── bootstrap-datetimepicker.fr.js
│       │   │           ├── bootstrap-datetimepicker.he.js
│       │   │           ├── bootstrap-datetimepicker.hr.js
│       │   │           ├── bootstrap-datetimepicker.hu.js
│       │   │           ├── bootstrap-datetimepicker.hy.js
│       │   │           ├── bootstrap-datetimepicker.id.js
│       │   │           ├── bootstrap-datetimepicker.is.js
│       │   │           ├── bootstrap-datetimepicker.it.js
│       │   │           ├── bootstrap-datetimepicker.ja.js
│       │   │           ├── bootstrap-datetimepicker.ko.js
│       │   │           ├── bootstrap-datetimepicker.lt.js
│       │   │           ├── bootstrap-datetimepicker.lv.js
│       │   │           ├── bootstrap-datetimepicker.ms.js
│       │   │           ├── bootstrap-datetimepicker.nb.js
│       │   │           ├── bootstrap-datetimepicker.nl.js
│       │   │           ├── bootstrap-datetimepicker.no.js
│       │   │           ├── bootstrap-datetimepicker.pl.js
│       │   │           ├── bootstrap-datetimepicker.pt-BR.js
│       │   │           ├── bootstrap-datetimepicker.pt.js
│       │   │           ├── bootstrap-datetimepicker.ro.js
│       │   │           ├── bootstrap-datetimepicker.rs-latin.js
│       │   │           ├── bootstrap-datetimepicker.rs.js
│       │   │           ├── bootstrap-datetimepicker.ru.js
│       │   │           ├── bootstrap-datetimepicker.sk.js
│       │   │           ├── bootstrap-datetimepicker.sl.js
│       │   │           ├── bootstrap-datetimepicker.sv.js
│       │   │           ├── bootstrap-datetimepicker.sw.js
│       │   │           ├── bootstrap-datetimepicker.th.js
│       │   │           ├── bootstrap-datetimepicker.tr.js
│       │   │           ├── bootstrap-datetimepicker.ua.js
│       │   │           ├── bootstrap-datetimepicker.uk.js
│       │   │           ├── bootstrap-datetimepicker.zh-CN.js
│       │   │           └── bootstrap-datetimepicker.zh-TW.js
│       │   ├── bootstrap-slider/
│       │   │   ├── bootstrap-slider.js
│       │   │   └── slider.css
│       │   ├── bootstrap-switch/
│       │   │   ├── css/
│       │   │   │   └── bootstrap-switch.css
│       │   │   └── js/
│       │   │       └── bootstrap-switch.js
│       │   ├── bootstrap-wysihtml5/
│       │   │   ├── bootstrap3-wysihtml5.all.js
│       │   │   └── bootstrap3-wysihtml5.css
│       │   ├── chartjs/
│       │   │   └── Chart.js
│       │   ├── ckeditor/
│       │   │   ├── CHANGES.md
│       │   │   ├── LICENSE.md
│       │   │   ├── README.md
│       │   │   ├── adapters/
│       │   │   │   └── jquery.js
│       │   │   ├── build-config.js
│       │   │   ├── ckeditor.js
│       │   │   ├── config.js
│       │   │   ├── contents.css
│       │   │   ├── lang/
│       │   │   │   ├── af.js
│       │   │   │   ├── ar.js
│       │   │   │   ├── bg.js
│       │   │   │   ├── bn.js
│       │   │   │   ├── bs.js
│       │   │   │   ├── ca.js
│       │   │   │   ├── cs.js
│       │   │   │   ├── cy.js
│       │   │   │   ├── da.js
│       │   │   │   ├── de.js
│       │   │   │   ├── el.js
│       │   │   │   ├── en-au.js
│       │   │   │   ├── en-ca.js
│       │   │   │   ├── en-gb.js
│       │   │   │   ├── en.js
│       │   │   │   ├── eo.js
│       │   │   │   ├── es.js
│       │   │   │   ├── et.js
│       │   │   │   ├── eu.js
│       │   │   │   ├── fa.js
│       │   │   │   ├── fi.js
│       │   │   │   ├── fo.js
│       │   │   │   ├── fr-ca.js
│       │   │   │   ├── fr.js
│       │   │   │   ├── gl.js
│       │   │   │   ├── gu.js
│       │   │   │   ├── he.js
│       │   │   │   ├── hi.js
│       │   │   │   ├── hr.js
│       │   │   │   ├── hu.js
│       │   │   │   ├── id.js
│       │   │   │   ├── is.js
│       │   │   │   ├── it.js
│       │   │   │   ├── ja.js
│       │   │   │   ├── ka.js
│       │   │   │   ├── km.js
│       │   │   │   ├── ko.js
│       │   │   │   ├── ku.js
│       │   │   │   ├── lt.js
│       │   │   │   ├── lv.js
│       │   │   │   ├── mk.js
│       │   │   │   ├── mn.js
│       │   │   │   ├── ms.js
│       │   │   │   ├── nb.js
│       │   │   │   ├── nl.js
│       │   │   │   ├── no.js
│       │   │   │   ├── pl.js
│       │   │   │   ├── pt-br.js
│       │   │   │   ├── pt.js
│       │   │   │   ├── ro.js
│       │   │   │   ├── ru.js
│       │   │   │   ├── si.js
│       │   │   │   ├── sk.js
│       │   │   │   ├── sl.js
│       │   │   │   ├── sq.js
│       │   │   │   ├── sr-latn.js
│       │   │   │   ├── sr.js
│       │   │   │   ├── sv.js
│       │   │   │   ├── th.js
│       │   │   │   ├── tr.js
│       │   │   │   ├── ug.js
│       │   │   │   ├── uk.js
│       │   │   │   ├── vi.js
│       │   │   │   ├── zh-cn.js
│       │   │   │   └── zh.js
│       │   │   ├── plugins/
│       │   │   │   ├── a11yhelp/
│       │   │   │   │   └── dialogs/
│       │   │   │   │       ├── a11yhelp.js
│       │   │   │   │       └── lang/
│       │   │   │   │           ├── _translationstatus.txt
│       │   │   │   │           ├── ar.js
│       │   │   │   │           ├── bg.js
│       │   │   │   │           ├── ca.js
│       │   │   │   │           ├── cs.js
│       │   │   │   │           ├── cy.js
│       │   │   │   │           ├── da.js
│       │   │   │   │           ├── de.js
│       │   │   │   │           ├── el.js
│       │   │   │   │           ├── en.js
│       │   │   │   │           ├── eo.js
│       │   │   │   │           ├── es.js
│       │   │   │   │           ├── et.js
│       │   │   │   │           ├── fa.js
│       │   │   │   │           ├── fi.js
│       │   │   │   │           ├── fr-ca.js
│       │   │   │   │           ├── fr.js
│       │   │   │   │           ├── gl.js
│       │   │   │   │           ├── gu.js
│       │   │   │   │           ├── he.js
│       │   │   │   │           ├── hi.js
│       │   │   │   │           ├── hr.js
│       │   │   │   │           ├── hu.js
│       │   │   │   │           ├── id.js
│       │   │   │   │           ├── it.js
│       │   │   │   │           ├── ja.js
│       │   │   │   │           ├── km.js
│       │   │   │   │           ├── ko.js
│       │   │   │   │           ├── ku.js
│       │   │   │   │           ├── lt.js
│       │   │   │   │           ├── lv.js
│       │   │   │   │           ├── mk.js
│       │   │   │   │           ├── mn.js
│       │   │   │   │           ├── nb.js
│       │   │   │   │           ├── nl.js
│       │   │   │   │           ├── no.js
│       │   │   │   │           ├── pl.js
│       │   │   │   │           ├── pt-br.js
│       │   │   │   │           ├── pt.js
│       │   │   │   │           ├── ro.js
│       │   │   │   │           ├── ru.js
│       │   │   │   │           ├── si.js
│       │   │   │   │           ├── sk.js
│       │   │   │   │           ├── sl.js
│       │   │   │   │           ├── sq.js
│       │   │   │   │           ├── sr-latn.js
│       │   │   │   │           ├── sr.js
│       │   │   │   │           ├── sv.js
│       │   │   │   │           ├── th.js
│       │   │   │   │           ├── tr.js
│       │   │   │   │           ├── ug.js
│       │   │   │   │           ├── uk.js
│       │   │   │   │           ├── vi.js
│       │   │   │   │           ├── zh-cn.js
│       │   │   │   │           └── zh.js
│       │   │   │   ├── about/
│       │   │   │   │   └── dialogs/
│       │   │   │   │       └── about.js
│       │   │   │   ├── clipboard/
│       │   │   │   │   └── dialogs/
│       │   │   │   │       └── paste.js
│       │   │   │   ├── dialog/
│       │   │   │   │   └── dialogDefinition.js
│       │   │   │   ├── image/
│       │   │   │   │   └── dialogs/
│       │   │   │   │       └── image.js
│       │   │   │   ├── link/
│       │   │   │   │   └── dialogs/
│       │   │   │   │       ├── anchor.js
│       │   │   │   │       └── link.js
│       │   │   │   ├── pastefromword/
│       │   │   │   │   └── filter/
│       │   │   │   │       └── default.js
│       │   │   │   ├── scayt/
│       │   │   │   │   ├── LICENSE.md
│       │   │   │   │   ├── README.md
│       │   │   │   │   └── dialogs/
│       │   │   │   │       ├── options.js
│       │   │   │   │       └── toolbar.css
│       │   │   │   ├── specialchar/
│       │   │   │   │   └── dialogs/
│       │   │   │   │       ├── lang/
│       │   │   │   │       │   ├── _translationstatus.txt
│       │   │   │   │       │   ├── ar.js
│       │   │   │   │       │   ├── bg.js
│       │   │   │   │       │   ├── ca.js
│       │   │   │   │       │   ├── cs.js
│       │   │   │   │       │   ├── cy.js
│       │   │   │   │       │   ├── de.js
│       │   │   │   │       │   ├── el.js
│       │   │   │   │       │   ├── en.js
│       │   │   │   │       │   ├── eo.js
│       │   │   │   │       │   ├── es.js
│       │   │   │   │       │   ├── et.js
│       │   │   │   │       │   ├── fa.js
│       │   │   │   │       │   ├── fi.js
│       │   │   │   │       │   ├── fr-ca.js
│       │   │   │   │       │   ├── fr.js
│       │   │   │   │       │   ├── gl.js
│       │   │   │   │       │   ├── he.js
│       │   │   │   │       │   ├── hr.js
│       │   │   │   │       │   ├── hu.js
│       │   │   │   │       │   ├── id.js
│       │   │   │   │       │   ├── it.js
│       │   │   │   │       │   ├── ja.js
│       │   │   │   │       │   ├── km.js
│       │   │   │   │       │   ├── ku.js
│       │   │   │   │       │   ├── lv.js
│       │   │   │   │       │   ├── nb.js
│       │   │   │   │       │   ├── nl.js
│       │   │   │   │       │   ├── no.js
│       │   │   │   │       │   ├── pl.js
│       │   │   │   │       │   ├── pt-br.js
│       │   │   │   │       │   ├── pt.js
│       │   │   │   │       │   ├── ru.js
│       │   │   │   │       │   ├── si.js
│       │   │   │   │       │   ├── sk.js
│       │   │   │   │       │   ├── sl.js
│       │   │   │   │       │   ├── sq.js
│       │   │   │   │       │   ├── sv.js
│       │   │   │   │       │   ├── th.js
│       │   │   │   │       │   ├── tr.js
│       │   │   │   │       │   ├── ug.js
│       │   │   │   │       │   ├── uk.js
│       │   │   │   │       │   ├── vi.js
│       │   │   │   │       │   ├── zh-cn.js
│       │   │   │   │       │   └── zh.js
│       │   │   │   │       └── specialchar.js
│       │   │   │   ├── table/
│       │   │   │   │   └── dialogs/
│       │   │   │   │       └── table.js
│       │   │   │   ├── tabletools/
│       │   │   │   │   └── dialogs/
│       │   │   │   │       └── tableCell.js
│       │   │   │   └── wsc/
│       │   │   │       ├── LICENSE.md
│       │   │   │       ├── README.md
│       │   │   │       └── dialogs/
│       │   │   │           ├── ciframe.html
│       │   │   │           ├── tmp.html
│       │   │   │           ├── tmpFrameset.html
│       │   │   │           ├── wsc.css
│       │   │   │           ├── wsc.js
│       │   │   │           └── wsc_ie.js
│       │   │   ├── skins/
│       │   │   │   └── moono/
│       │   │   │       ├── dialog.css
│       │   │   │       ├── dialog_ie.css
│       │   │   │       ├── dialog_ie7.css
│       │   │   │       ├── dialog_ie8.css
│       │   │   │       ├── dialog_iequirks.css
│       │   │   │       ├── dialog_opera.css
│       │   │   │       ├── editor.css
│       │   │   │       ├── editor_gecko.css
│       │   │   │       ├── editor_ie.css
│       │   │   │       ├── editor_ie7.css
│       │   │   │       ├── editor_ie8.css
│       │   │   │       ├── editor_iequirks.css
│       │   │   │       └── readme.md
│       │   │   └── styles.js
│       │   ├── colorpicker/
│       │   │   ├── bootstrap-colorpicker.css
│       │   │   └── bootstrap-colorpicker.js
│       │   ├── datatables/
│       │   │   ├── dataTables.bootstrap.css
│       │   │   ├── dataTables.bootstrap.js
│       │   │   ├── extensions/
│       │   │   │   ├── AutoFill/
│       │   │   │   │   ├── Readme.txt
│       │   │   │   │   ├── css/
│       │   │   │   │   │   └── dataTables.autoFill.css
│       │   │   │   │   ├── examples/
│       │   │   │   │   │   ├── columns.html
│       │   │   │   │   │   ├── complete-callback.html
│       │   │   │   │   │   ├── fill-both.html
│       │   │   │   │   │   ├── fill-horizontal.html
│       │   │   │   │   │   ├── index.html
│       │   │   │   │   │   ├── scrolling.html
│       │   │   │   │   │   ├── simple.html
│       │   │   │   │   │   └── step-callback.html
│       │   │   │   │   └── js/
│       │   │   │   │       └── dataTables.autoFill.js
│       │   │   │   ├── ColReorder/
│       │   │   │   │   ├── License.txt
│       │   │   │   │   ├── Readme.md
│       │   │   │   │   ├── css/
│       │   │   │   │   │   └── dataTables.colReorder.css
│       │   │   │   │   ├── examples/
│       │   │   │   │   │   ├── alt_insert.html
│       │   │   │   │   │   ├── col_filter.html
│       │   │   │   │   │   ├── colvis.html
│       │   │   │   │   │   ├── fixedcolumns.html
│       │   │   │   │   │   ├── fixedheader.html
│       │   │   │   │   │   ├── index.html
│       │   │   │   │   │   ├── jqueryui.html
│       │   │   │   │   │   ├── new_init.html
│       │   │   │   │   │   ├── predefined.html
│       │   │   │   │   │   ├── realtime.html
│       │   │   │   │   │   ├── reset.html
│       │   │   │   │   │   ├── scrolling.html
│       │   │   │   │   │   ├── server_side.html
│       │   │   │   │   │   ├── simple.html
│       │   │   │   │   │   └── state_save.html
│       │   │   │   │   └── js/
│       │   │   │   │       └── dataTables.colReorder.js
│       │   │   │   ├── ColVis/
│       │   │   │   │   ├── License.txt
│       │   │   │   │   ├── Readme.md
│       │   │   │   │   ├── css/
│       │   │   │   │   │   ├── dataTables.colVis.css
│       │   │   │   │   │   └── dataTables.colvis.jqueryui.css
│       │   │   │   │   ├── examples/
│       │   │   │   │   │   ├── button_order.html
│       │   │   │   │   │   ├── exclude_columns.html
│       │   │   │   │   │   ├── group_columns.html
│       │   │   │   │   │   ├── index.html
│       │   │   │   │   │   ├── jqueryui.html
│       │   │   │   │   │   ├── mouseover.html
│       │   │   │   │   │   ├── new_init.html
│       │   │   │   │   │   ├── restore.html
│       │   │   │   │   │   ├── simple.html
│       │   │   │   │   │   ├── text.html
│       │   │   │   │   │   ├── title_callback.html
│       │   │   │   │   │   ├── two_tables.html
│       │   │   │   │   │   └── two_tables_identical.html
│       │   │   │   │   └── js/
│       │   │   │   │       └── dataTables.colVis.js
│       │   │   │   ├── FixedColumns/
│       │   │   │   │   ├── License.txt
│       │   │   │   │   ├── Readme.md
│       │   │   │   │   ├── css/
│       │   │   │   │   │   └── dataTables.fixedColumns.css
│       │   │   │   │   ├── examples/
│       │   │   │   │   │   ├── bootstrap.html
│       │   │   │   │   │   ├── col_filter.html
│       │   │   │   │   │   ├── colvis.html
│       │   │   │   │   │   ├── css_size.html
│       │   │   │   │   │   ├── index.html
│       │   │   │   │   │   ├── index_column.html
│       │   │   │   │   │   ├── left_right_columns.html
│       │   │   │   │   │   ├── right_column.html
│       │   │   │   │   │   ├── rowspan.html
│       │   │   │   │   │   ├── server-side-processing.html
│       │   │   │   │   │   ├── simple.html
│       │   │   │   │   │   ├── size_fixed.html
│       │   │   │   │   │   ├── size_fluid.html
│       │   │   │   │   │   └── two_columns.html
│       │   │   │   │   └── js/
│       │   │   │   │       └── dataTables.fixedColumns.js
│       │   │   │   ├── FixedHeader/
│       │   │   │   │   ├── Readme.txt
│       │   │   │   │   ├── css/
│       │   │   │   │   │   └── dataTables.fixedHeader.css
│       │   │   │   │   ├── examples/
│       │   │   │   │   │   ├── header_footer.html
│       │   │   │   │   │   ├── index.html
│       │   │   │   │   │   ├── simple.html
│       │   │   │   │   │   ├── top_left_right.html
│       │   │   │   │   │   ├── two_tables.html
│       │   │   │   │   │   └── zIndexes.html
│       │   │   │   │   └── js/
│       │   │   │   │       └── dataTables.fixedHeader.js
│       │   │   │   ├── KeyTable/
│       │   │   │   │   ├── Readme.txt
│       │   │   │   │   ├── css/
│       │   │   │   │   │   └── dataTables.keyTable.css
│       │   │   │   │   ├── examples/
│       │   │   │   │   │   ├── events.html
│       │   │   │   │   │   ├── html.html
│       │   │   │   │   │   ├── index.html
│       │   │   │   │   │   ├── scrolling.html
│       │   │   │   │   │   └── simple.html
│       │   │   │   │   └── js/
│       │   │   │   │       └── dataTables.keyTable.js
│       │   │   │   ├── Responsive/
│       │   │   │   │   ├── License.txt
│       │   │   │   │   ├── Readme.md
│       │   │   │   │   ├── css/
│       │   │   │   │   │   ├── dataTables.responsive.css
│       │   │   │   │   │   └── dataTables.responsive.scss
│       │   │   │   │   ├── examples/
│       │   │   │   │   │   ├── child-rows/
│       │   │   │   │   │   │   ├── column-control.html
│       │   │   │   │   │   │   ├── custom-renderer.html
│       │   │   │   │   │   │   ├── disable-child-rows.html
│       │   │   │   │   │   │   ├── index.html
│       │   │   │   │   │   │   ├── right-column.html
│       │   │   │   │   │   │   └── whole-row-control.html
│       │   │   │   │   │   ├── display-control/
│       │   │   │   │   │   │   ├── auto.html
│       │   │   │   │   │   │   ├── classes.html
│       │   │   │   │   │   │   ├── complexHeader.html
│       │   │   │   │   │   │   ├── fixedHeader.html
│       │   │   │   │   │   │   ├── index.html
│       │   │   │   │   │   │   └── init-classes.html
│       │   │   │   │   │   ├── index.html
│       │   │   │   │   │   ├── initialisation/
│       │   │   │   │   │   │   ├── ajax.html
│       │   │   │   │   │   │   ├── className.html
│       │   │   │   │   │   │   ├── default.html
│       │   │   │   │   │   │   ├── index.html
│       │   │   │   │   │   │   ├── new.html
│       │   │   │   │   │   │   └── option.html
│       │   │   │   │   │   └── styling/
│       │   │   │   │   │       ├── bootstrap.html
│       │   │   │   │   │       ├── compact.html
│       │   │   │   │   │       ├── foundation.html
│       │   │   │   │   │       ├── index.html
│       │   │   │   │   │       └── scrolling.html
│       │   │   │   │   └── js/
│       │   │   │   │       └── dataTables.responsive.js
│       │   │   │   ├── Scroller/
│       │   │   │   │   ├── Readme.txt
│       │   │   │   │   ├── css/
│       │   │   │   │   │   └── dataTables.scroller.css
│       │   │   │   │   ├── examples/
│       │   │   │   │   │   ├── api_scrolling.html
│       │   │   │   │   │   ├── data/
│       │   │   │   │   │   │   └── 2500.txt
│       │   │   │   │   │   ├── index.html
│       │   │   │   │   │   ├── large_js_source.html
│       │   │   │   │   │   ├── server-side_processing.html
│       │   │   │   │   │   ├── simple.html
│       │   │   │   │   │   └── state_saving.html
│       │   │   │   │   └── js/
│       │   │   │   │       └── dataTables.scroller.js
│       │   │   │   └── TableTools/
│       │   │   │       ├── Readme.md
│       │   │   │       ├── css/
│       │   │   │       │   └── dataTables.tableTools.css
│       │   │   │       ├── examples/
│       │   │   │       │   ├── ajax.html
│       │   │   │       │   ├── alter_buttons.html
│       │   │   │       │   ├── bootstrap.html
│       │   │   │       │   ├── button_text.html
│       │   │   │       │   ├── collection.html
│       │   │   │       │   ├── defaults.html
│       │   │   │       │   ├── index.html
│       │   │   │       │   ├── jqueryui.html
│       │   │   │       │   ├── multi_instance.html
│       │   │   │       │   ├── multiple_tables.html
│       │   │   │       │   ├── new_init.html
│       │   │   │       │   ├── pdf_message.html
│       │   │   │       │   ├── plug-in.html
│       │   │   │       │   ├── select_column.html
│       │   │   │       │   ├── select_multi.html
│       │   │   │       │   ├── select_os.html
│       │   │   │       │   ├── select_single.html
│       │   │   │       │   ├── simple.html
│       │   │   │       │   └── swf_path.html
│       │   │   │       ├── images/
│       │   │   │       │   └── psd/
│       │   │   │       │       ├── collection.psd
│       │   │   │       │       ├── copy document.psd
│       │   │   │       │       ├── file_types.psd
│       │   │   │       │       └── printer.psd
│       │   │   │       ├── js/
│       │   │   │       │   └── dataTables.tableTools.js
│       │   │   │       └── swf/
│       │   │   │           ├── copy_csv_xls.swf
│       │   │   │           └── copy_csv_xls_pdf.swf
│       │   │   ├── jquery.dataTables.css
│       │   │   ├── jquery.dataTables.js
│       │   │   └── jquery.dataTables_themeroller.css
│       │   ├── datepicker/
│       │   │   ├── bootstrap-datepicker.js
│       │   │   ├── datepicker3.css
│       │   │   └── locales/
│       │   │       ├── bootstrap-datepicker.ar.js
│       │   │       ├── bootstrap-datepicker.az.js
│       │   │       ├── bootstrap-datepicker.bg.js
│       │   │       ├── bootstrap-datepicker.ca.js
│       │   │       ├── bootstrap-datepicker.cs.js
│       │   │       ├── bootstrap-datepicker.cy.js
│       │   │       ├── bootstrap-datepicker.da.js
│       │   │       ├── bootstrap-datepicker.de.js
│       │   │       ├── bootstrap-datepicker.el.js
│       │   │       ├── bootstrap-datepicker.es.js
│       │   │       ├── bootstrap-datepicker.et.js
│       │   │       ├── bootstrap-datepicker.fa.js
│       │   │       ├── bootstrap-datepicker.fi.js
│       │   │       ├── bootstrap-datepicker.fr.js
│       │   │       ├── bootstrap-datepicker.gl.js
│       │   │       ├── bootstrap-datepicker.he.js
│       │   │       ├── bootstrap-datepicker.hr.js
│       │   │       ├── bootstrap-datepicker.hu.js
│       │   │       ├── bootstrap-datepicker.id.js
│       │   │       ├── bootstrap-datepicker.is.js
│       │   │       ├── bootstrap-datepicker.it.js
│       │   │       ├── bootstrap-datepicker.ja.js
│       │   │       ├── bootstrap-datepicker.ka.js
│       │   │       ├── bootstrap-datepicker.kk.js
│       │   │       ├── bootstrap-datepicker.kr.js
│       │   │       ├── bootstrap-datepicker.lt.js
│       │   │       ├── bootstrap-datepicker.lv.js
│       │   │       ├── bootstrap-datepicker.mk.js
│       │   │       ├── bootstrap-datepicker.ms.js
│       │   │       ├── bootstrap-datepicker.nb.js
│       │   │       ├── bootstrap-datepicker.nl-BE.js
│       │   │       ├── bootstrap-datepicker.nl.js
│       │   │       ├── bootstrap-datepicker.no.js
│       │   │       ├── bootstrap-datepicker.pl.js
│       │   │       ├── bootstrap-datepicker.pt-BR.js
│       │   │       ├── bootstrap-datepicker.pt.js
│       │   │       ├── bootstrap-datepicker.ro.js
│       │   │       ├── bootstrap-datepicker.rs-latin.js
│       │   │       ├── bootstrap-datepicker.rs.js
│       │   │       ├── bootstrap-datepicker.ru.js
│       │   │       ├── bootstrap-datepicker.sk.js
│       │   │       ├── bootstrap-datepicker.sl.js
│       │   │       ├── bootstrap-datepicker.sq.js
│       │   │       ├── bootstrap-datepicker.sv.js
│       │   │       ├── bootstrap-datepicker.sw.js
│       │   │       ├── bootstrap-datepicker.th.js
│       │   │       ├── bootstrap-datepicker.tr.js
│       │   │       ├── bootstrap-datepicker.ua.js
│       │   │       ├── bootstrap-datepicker.vi.js
│       │   │       ├── bootstrap-datepicker.zh-CN.js
│       │   │       └── bootstrap-datepicker.zh-TW.js
│       │   ├── daterangepicker/
│       │   │   ├── daterangepicker-bs3.css
│       │   │   ├── daterangepicker.js
│       │   │   └── moment.js
│       │   ├── fastclick/
│       │   │   └── fastclick.js
│       │   ├── flot/
│       │   │   ├── excanvas.js
│       │   │   ├── jquery.colorhelpers.js
│       │   │   ├── jquery.flot.canvas.js
│       │   │   ├── jquery.flot.categories.js
│       │   │   ├── jquery.flot.crosshair.js
│       │   │   ├── jquery.flot.errorbars.js
│       │   │   ├── jquery.flot.fillbetween.js
│       │   │   ├── jquery.flot.image.js
│       │   │   ├── jquery.flot.js
│       │   │   ├── jquery.flot.navigate.js
│       │   │   ├── jquery.flot.pie.js
│       │   │   ├── jquery.flot.resize.js
│       │   │   ├── jquery.flot.selection.js
│       │   │   ├── jquery.flot.stack.js
│       │   │   ├── jquery.flot.symbol.js
│       │   │   ├── jquery.flot.threshold.js
│       │   │   └── jquery.flot.time.js
│       │   ├── form/
│       │   │   └── jquery.form.js
│       │   ├── fullcalendar/
│       │   │   ├── fullcalendar.css
│       │   │   ├── fullcalendar.js
│       │   │   └── fullcalendar.print.css
│       │   ├── iCheck/
│       │   │   ├── all.css
│       │   │   ├── flat/
│       │   │   │   ├── _all.css
│       │   │   │   ├── aero.css
│       │   │   │   ├── blue.css
│       │   │   │   ├── flat.css
│       │   │   │   ├── green.css
│       │   │   │   ├── grey.css
│       │   │   │   ├── orange.css
│       │   │   │   ├── pink.css
│       │   │   │   ├── purple.css
│       │   │   │   ├── red.css
│       │   │   │   └── yellow.css
│       │   │   ├── futurico/
│       │   │   │   └── futurico.css
│       │   │   ├── icheck.js
│       │   │   ├── line/
│       │   │   │   ├── _all.css
│       │   │   │   ├── aero.css
│       │   │   │   ├── blue.css
│       │   │   │   ├── green.css
│       │   │   │   ├── grey.css
│       │   │   │   ├── line.css
│       │   │   │   ├── orange.css
│       │   │   │   ├── pink.css
│       │   │   │   ├── purple.css
│       │   │   │   ├── red.css
│       │   │   │   └── yellow.css
│       │   │   ├── minimal/
│       │   │   │   ├── _all.css
│       │   │   │   ├── aero.css
│       │   │   │   ├── blue.css
│       │   │   │   ├── green.css
│       │   │   │   ├── grey.css
│       │   │   │   ├── minimal.css
│       │   │   │   ├── orange.css
│       │   │   │   ├── pink.css
│       │   │   │   ├── purple.css
│       │   │   │   ├── red.css
│       │   │   │   └── yellow.css
│       │   │   ├── polaris/
│       │   │   │   └── polaris.css
│       │   │   └── square/
│       │   │       ├── _all.css
│       │   │       ├── aero.css
│       │   │       ├── blue.css
│       │   │       ├── green.css
│       │   │       ├── grey.css
│       │   │       ├── orange.css
│       │   │       ├── pink.css
│       │   │       ├── purple.css
│       │   │       ├── red.css
│       │   │       ├── square.css
│       │   │       └── yellow.css
│       │   ├── input-mask/
│       │   │   ├── jquery.inputmask.date.extensions.js
│       │   │   ├── jquery.inputmask.extensions.js
│       │   │   ├── jquery.inputmask.js
│       │   │   ├── jquery.inputmask.numeric.extensions.js
│       │   │   ├── jquery.inputmask.phone.extensions.js
│       │   │   ├── jquery.inputmask.regex.extensions.js
│       │   │   └── phone-codes/
│       │   │       ├── phone-be.json
│       │   │       ├── phone-codes.json
│       │   │       └── readme.txt
│       │   ├── ionslider/
│       │   │   ├── ion.rangeSlider.css
│       │   │   ├── ion.rangeSlider.skinFlat.css
│       │   │   └── ion.rangeSlider.skinNice.css
│       │   ├── jQueryUI/
│       │   │   └── jquery-ui.js
│       │   ├── jvectormap/
│       │   │   ├── jquery-jvectormap-1.2.2.css
│       │   │   ├── jquery-jvectormap-usa-en.js
│       │   │   └── jquery-jvectormap-world-mill-en.js
│       │   ├── knob/
│       │   │   └── jquery.knob.js
│       │   ├── layer/
│       │   │   ├── extend/
│       │   │   │   └── layer.ext.js
│       │   │   ├── layer.js
│       │   │   └── skin/
│       │   │       ├── layer.css
│       │   │       └── layer.ext.css
│       │   ├── morris/
│       │   │   ├── morris.css
│       │   │   └── morris.js
│       │   ├── nprogress/
│       │   │   ├── nprogress.css
│       │   │   └── nprogress.js
│       │   ├── pace/
│       │   │   ├── pace.css
│       │   │   └── pace.js
│       │   ├── pjax/
│       │   │   └── jquery.pjax.js
│       │   ├── select2/
│       │   │   ├── i18n/
│       │   │   │   ├── ar.js
│       │   │   │   ├── az.js
│       │   │   │   ├── bg.js
│       │   │   │   ├── ca.js
│       │   │   │   ├── cs.js
│       │   │   │   ├── da.js
│       │   │   │   ├── de.js
│       │   │   │   ├── en.js
│       │   │   │   ├── es.js
│       │   │   │   ├── et.js
│       │   │   │   ├── eu.js
│       │   │   │   ├── fa.js
│       │   │   │   ├── fi.js
│       │   │   │   ├── fr.js
│       │   │   │   ├── gl.js
│       │   │   │   ├── he.js
│       │   │   │   ├── hi.js
│       │   │   │   ├── hr.js
│       │   │   │   ├── hu.js
│       │   │   │   ├── id.js
│       │   │   │   ├── is.js
│       │   │   │   ├── it.js
│       │   │   │   ├── ja.js
│       │   │   │   ├── ko.js
│       │   │   │   ├── lt.js
│       │   │   │   ├── lv.js
│       │   │   │   ├── mk.js
│       │   │   │   ├── ms.js
│       │   │   │   ├── nb.js
│       │   │   │   ├── nl.js
│       │   │   │   ├── pl.js
│       │   │   │   ├── pt-BR.js
│       │   │   │   ├── pt.js
│       │   │   │   ├── ro.js
│       │   │   │   ├── ru.js
│       │   │   │   ├── sk.js
│       │   │   │   ├── sr-Cyrl.js
│       │   │   │   ├── sr.js
│       │   │   │   ├── sv.js
│       │   │   │   ├── th.js
│       │   │   │   ├── tr.js
│       │   │   │   ├── uk.js
│       │   │   │   ├── vi.js
│       │   │   │   ├── zh-CN.js
│       │   │   │   └── zh-TW.js
│       │   │   ├── select2.css
│       │   │   ├── select2.full.js
│       │   │   └── select2.js
│       │   ├── slimScroll/
│       │   │   └── jquery.slimscroll.js
│       │   ├── sparkline/
│       │   │   └── jquery.sparkline.js
│       │   ├── timepicker/
│       │   │   ├── bootstrap-timepicker.css
│       │   │   └── bootstrap-timepicker.js
│       │   ├── toastr/
│       │   │   └── toastr.css
│       │   └── wangeditor/
│       │       ├── css/
│       │       │   ├── wangEditor.css
│       │       │   ├── wangEditor.less
│       │       │   └── wangEditor2.css
│       │       └── js/
│       │           ├── lib/
│       │           │   └── jquery-2.2.1.js
│       │           └── wangEditor.js
│       └── ueditor/
│           ├── dialogs/
│           │   ├── anchor/
│           │   │   └── anchor.html
│           │   ├── attachment/
│           │   │   ├── attachment.css
│           │   │   ├── attachment.html
│           │   │   └── attachment.js
│           │   ├── background/
│           │   │   ├── background.css
│           │   │   ├── background.html
│           │   │   └── background.js
│           │   ├── charts/
│           │   │   ├── chart.config.js
│           │   │   ├── charts.css
│           │   │   ├── charts.html
│           │   │   └── charts.js
│           │   ├── emotion/
│           │   │   ├── emotion.css
│           │   │   ├── emotion.html
│           │   │   └── emotion.js
│           │   ├── gmap/
│           │   │   └── gmap.html
│           │   ├── help/
│           │   │   ├── help.css
│           │   │   ├── help.html
│           │   │   └── help.js
│           │   ├── image/
│           │   │   ├── image.css
│           │   │   ├── image.html
│           │   │   └── image.js
│           │   ├── insertframe/
│           │   │   └── insertframe.html
│           │   ├── internal.js
│           │   ├── link/
│           │   │   └── link.html
│           │   ├── map/
│           │   │   ├── map.html
│           │   │   └── show.html
│           │   ├── music/
│           │   │   ├── music.css
│           │   │   ├── music.html
│           │   │   └── music.js
│           │   ├── preview/
│           │   │   └── preview.html
│           │   ├── scrawl/
│           │   │   ├── scrawl.css
│           │   │   ├── scrawl.html
│           │   │   └── scrawl.js
│           │   ├── searchreplace/
│           │   │   ├── searchreplace.html
│           │   │   └── searchreplace.js
│           │   ├── snapscreen/
│           │   │   └── snapscreen.html
│           │   ├── spechars/
│           │   │   ├── spechars.html
│           │   │   └── spechars.js
│           │   ├── table/
│           │   │   ├── edittable.css
│           │   │   ├── edittable.html
│           │   │   ├── edittable.js
│           │   │   ├── edittd.html
│           │   │   └── edittip.html
│           │   ├── template/
│           │   │   ├── config.js
│           │   │   ├── template.css
│           │   │   ├── template.html
│           │   │   └── template.js
│           │   ├── video/
│           │   │   ├── video.css
│           │   │   ├── video.html
│           │   │   └── video.js
│           │   ├── webapp/
│           │   │   └── webapp.html
│           │   └── wordimage/
│           │       ├── fClipboard_ueditor.swf
│           │       ├── imageUploader.swf
│           │       ├── tangram.js
│           │       ├── wordimage.html
│           │       └── wordimage.js
│           ├── index.html
│           ├── lang/
│           │   ├── en/
│           │   │   └── en.js
│           │   └── zh-cn/
│           │       └── zh-cn.js
│           ├── php/
│           │   ├── Uploader.class.php
│           │   ├── action_crawler.php
│           │   ├── action_list.php
│           │   ├── action_upload.php
│           │   ├── config.json
│           │   └── controller.php
│           ├── themes/
│           │   ├── default/
│           │   │   ├── css/
│           │   │   │   └── ueditor.css
│           │   │   └── dialogbase.css
│           │   └── iframe.css
│           ├── third-party/
│           │   ├── SyntaxHighlighter/
│           │   │   ├── shCore.js
│           │   │   └── shCoreDefault.css
│           │   ├── codemirror/
│           │   │   ├── codemirror.css
│           │   │   └── codemirror.js
│           │   ├── highcharts/
│           │   │   ├── adapters/
│           │   │   │   ├── mootools-adapter.js
│           │   │   │   ├── mootools-adapter.src.js
│           │   │   │   ├── prototype-adapter.js
│           │   │   │   ├── prototype-adapter.src.js
│           │   │   │   ├── standalone-framework.js
│           │   │   │   └── standalone-framework.src.js
│           │   │   ├── highcharts-more.js
│           │   │   ├── highcharts-more.src.js
│           │   │   ├── highcharts.js
│           │   │   ├── highcharts.src.js
│           │   │   ├── modules/
│           │   │   │   ├── annotations.js
│           │   │   │   ├── annotations.src.js
│           │   │   │   ├── canvas-tools.js
│           │   │   │   ├── canvas-tools.src.js
│           │   │   │   ├── data.js
│           │   │   │   ├── data.src.js
│           │   │   │   ├── drilldown.js
│           │   │   │   ├── drilldown.src.js
│           │   │   │   ├── exporting.js
│           │   │   │   ├── exporting.src.js
│           │   │   │   ├── funnel.js
│           │   │   │   ├── funnel.src.js
│           │   │   │   ├── heatmap.js
│           │   │   │   ├── heatmap.src.js
│           │   │   │   ├── map.js
│           │   │   │   ├── map.src.js
│           │   │   │   ├── no-data-to-display.js
│           │   │   │   └── no-data-to-display.src.js
│           │   │   └── themes/
│           │   │       ├── dark-blue.js
│           │   │       ├── dark-green.js
│           │   │       ├── gray.js
│           │   │       ├── grid.js
│           │   │       └── skies.js
│           │   ├── jquery-1.10.2.js
│           │   ├── video-js/
│           │   │   ├── video-js.css
│           │   │   ├── video-js.swf
│           │   │   ├── video.dev.js
│           │   │   └── video.js
│           │   ├── webuploader/
│           │   │   ├── Uploader.swf
│           │   │   ├── webuploader.css
│           │   │   ├── webuploader.custom.js
│           │   │   ├── webuploader.flashonly.js
│           │   │   ├── webuploader.html5only.js
│           │   │   ├── webuploader.js
│           │   │   └── webuploader.withoutimage.js
│           │   └── zeroclipboard/
│           │       ├── ZeroClipboard.js
│           │       └── ZeroClipboard.swf
│           ├── ueditor.all.js
│           ├── ueditor.config.js
│           └── ueditor.parse.js
├── think
├── thinkphp/
│   ├── .gitignore
│   ├── .htaccess
│   ├── .travis.yml
│   ├── CONTRIBUTING.md
│   ├── LICENSE.txt
│   ├── README.md
│   ├── base.php
│   ├── codecov.yml
│   ├── composer.json
│   ├── console.php
│   ├── convention.php
│   ├── helper.php
│   ├── lang/
│   │   └── zh-cn.php
│   ├── library/
│   │   ├── think/
│   │   │   ├── App.php
│   │   │   ├── Build.php
│   │   │   ├── Cache.php
│   │   │   ├── Collection.php
│   │   │   ├── Config.php
│   │   │   ├── Console.php
│   │   │   ├── Controller.php
│   │   │   ├── Cookie.php
│   │   │   ├── Db.php
│   │   │   ├── Debug.php
│   │   │   ├── Env.php
│   │   │   ├── Error.php
│   │   │   ├── Exception.php
│   │   │   ├── File.php
│   │   │   ├── Hook.php
│   │   │   ├── Lang.php
│   │   │   ├── Loader.php
│   │   │   ├── Log.php
│   │   │   ├── Model.php
│   │   │   ├── Paginator.php
│   │   │   ├── Process.php
│   │   │   ├── Request.php
│   │   │   ├── Response.php
│   │   │   ├── Route.php
│   │   │   ├── Session.php
│   │   │   ├── Template.php
│   │   │   ├── Url.php
│   │   │   ├── Validate.php
│   │   │   ├── View.php
│   │   │   ├── cache/
│   │   │   │   ├── Driver.php
│   │   │   │   └── driver/
│   │   │   │       ├── File.php
│   │   │   │       ├── Lite.php
│   │   │   │       ├── Memcache.php
│   │   │   │       ├── Memcached.php
│   │   │   │       ├── Redis.php
│   │   │   │       ├── Sqlite.php
│   │   │   │       ├── Wincache.php
│   │   │   │       └── Xcache.php
│   │   │   ├── config/
│   │   │   │   └── driver/
│   │   │   │       ├── Ini.php
│   │   │   │       ├── Json.php
│   │   │   │       └── Xml.php
│   │   │   ├── console/
│   │   │   │   ├── Command.php
│   │   │   │   ├── Input.php
│   │   │   │   ├── LICENSE
│   │   │   │   ├── Output.php
│   │   │   │   ├── bin/
│   │   │   │   │   └── README.md
│   │   │   │   ├── command/
│   │   │   │   │   ├── Build.php
│   │   │   │   │   ├── Clear.php
│   │   │   │   │   ├── Help.php
│   │   │   │   │   ├── Lists.php
│   │   │   │   │   ├── Make.php
│   │   │   │   │   ├── make/
│   │   │   │   │   │   ├── Controller.php
│   │   │   │   │   │   ├── Model.php
│   │   │   │   │   │   └── stubs/
│   │   │   │   │   │       ├── controller.plain.stub
│   │   │   │   │   │       ├── controller.stub
│   │   │   │   │   │       └── model.stub
│   │   │   │   │   └── optimize/
│   │   │   │   │       ├── Autoload.php
│   │   │   │   │       ├── Config.php
│   │   │   │   │       ├── Route.php
│   │   │   │   │       └── Schema.php
│   │   │   │   ├── input/
│   │   │   │   │   ├── Argument.php
│   │   │   │   │   ├── Definition.php
│   │   │   │   │   └── Option.php
│   │   │   │   └── output/
│   │   │   │       ├── Ask.php
│   │   │   │       ├── Descriptor.php
│   │   │   │       ├── Formatter.php
│   │   │   │       ├── Question.php
│   │   │   │       ├── descriptor/
│   │   │   │       │   └── Console.php
│   │   │   │       ├── driver/
│   │   │   │       │   ├── Buffer.php
│   │   │   │       │   ├── Console.php
│   │   │   │       │   └── Nothing.php
│   │   │   │       ├── formatter/
│   │   │   │       │   ├── Stack.php
│   │   │   │       │   └── Style.php
│   │   │   │       └── question/
│   │   │   │           ├── Choice.php
│   │   │   │           └── Confirmation.php
│   │   │   ├── controller/
│   │   │   │   ├── Rest.php
│   │   │   │   └── Yar.php
│   │   │   ├── db/
│   │   │   │   ├── Builder.php
│   │   │   │   ├── Connection.php
│   │   │   │   ├── Query.php
│   │   │   │   ├── builder/
│   │   │   │   │   ├── Mysql.php
│   │   │   │   │   ├── Pgsql.php
│   │   │   │   │   ├── Sqlite.php
│   │   │   │   │   └── Sqlsrv.php
│   │   │   │   ├── connector/
│   │   │   │   │   ├── Mysql.php
│   │   │   │   │   ├── Pgsql.php
│   │   │   │   │   ├── Sqlite.php
│   │   │   │   │   ├── Sqlsrv.php
│   │   │   │   │   └── pgsql.sql
│   │   │   │   └── exception/
│   │   │   │       ├── BindParamException.php
│   │   │   │       ├── DataNotFoundException.php
│   │   │   │       └── ModelNotFoundException.php
│   │   │   ├── debug/
│   │   │   │   ├── Console.php
│   │   │   │   └── Html.php
│   │   │   ├── exception/
│   │   │   │   ├── ClassNotFoundException.php
│   │   │   │   ├── DbException.php
│   │   │   │   ├── ErrorException.php
│   │   │   │   ├── Handle.php
│   │   │   │   ├── HttpException.php
│   │   │   │   ├── HttpResponseException.php
│   │   │   │   ├── PDOException.php
│   │   │   │   ├── RouteNotFoundException.php
│   │   │   │   ├── TemplateNotFoundException.php
│   │   │   │   ├── ThrowableError.php
│   │   │   │   └── ValidateException.php
│   │   │   ├── log/
│   │   │   │   └── driver/
│   │   │   │       ├── File.php
│   │   │   │       ├── Socket.php
│   │   │   │       └── Test.php
│   │   │   ├── model/
│   │   │   │   ├── Collection.php
│   │   │   │   ├── Merge.php
│   │   │   │   ├── Pivot.php
│   │   │   │   ├── Relation.php
│   │   │   │   └── relation/
│   │   │   │       ├── BelongsTo.php
│   │   │   │       ├── BelongsToMany.php
│   │   │   │       ├── HasMany.php
│   │   │   │       ├── HasManyThrough.php
│   │   │   │       ├── HasOne.php
│   │   │   │       ├── MorphMany.php
│   │   │   │       ├── MorphOne.php
│   │   │   │       ├── MorphTo.php
│   │   │   │       └── OneToOne.php
│   │   │   ├── paginator/
│   │   │   │   └── driver/
│   │   │   │       └── Bootstrap.php
│   │   │   ├── process/
│   │   │   │   ├── Builder.php
│   │   │   │   ├── Utils.php
│   │   │   │   ├── exception/
│   │   │   │   │   ├── Failed.php
│   │   │   │   │   └── Timeout.php
│   │   │   │   └── pipes/
│   │   │   │       ├── Pipes.php
│   │   │   │       ├── Unix.php
│   │   │   │       └── Windows.php
│   │   │   ├── response/
│   │   │   │   ├── Json.php
│   │   │   │   ├── Jsonp.php
│   │   │   │   ├── Redirect.php
│   │   │   │   ├── View.php
│   │   │   │   └── Xml.php
│   │   │   ├── session/
│   │   │   │   └── driver/
│   │   │   │       ├── Memcache.php
│   │   │   │       ├── Memcached.php
│   │   │   │       └── Redis.php
│   │   │   ├── template/
│   │   │   │   ├── TagLib.php
│   │   │   │   ├── driver/
│   │   │   │   │   └── File.php
│   │   │   │   └── taglib/
│   │   │   │       └── Cx.php
│   │   │   └── view/
│   │   │       └── driver/
│   │   │           ├── Php.php
│   │   │           └── Think.php
│   │   └── traits/
│   │       ├── controller/
│   │       │   └── Jump.php
│   │       ├── model/
│   │       │   └── SoftDelete.php
│   │       └── think/
│   │           └── Instance.php
│   ├── phpunit.xml
│   ├── start.php
│   └── tpl/
│       ├── default_index.tpl
│       ├── dispatch_jump.tpl
│       ├── page_trace.tpl
│       └── think_exception.tpl
├── tpl/
│   ├── addons/
│   │   └── index.html
│   └── theme/
│       └── default/
│           └── index.html
├── vendor/
│   ├── autoload.php
│   ├── composer/
│   │   ├── ClassLoader.php
│   │   ├── LICENSE
│   │   ├── autoload_classmap.php
│   │   ├── autoload_files.php
│   │   ├── autoload_namespaces.php
│   │   ├── autoload_psr4.php
│   │   ├── autoload_real.php
│   │   ├── autoload_static.php
│   │   └── installed.json
│   ├── dodgepudding/
│   │   └── wechat-php-sdk/
│   │       ├── .gitignore
│   │       ├── JSSDK.class.php
│   │       ├── README.md
│   │       ├── Thinkphp/
│   │       │   ├── EasyWechat.class.php
│   │       │   └── TPWechat.class.php
│   │       ├── WxPrint.class.php
│   │       ├── composer.json
│   │       ├── demo.php
│   │       ├── errCode.php
│   │       ├── old_version/
│   │       │   ├── Thinkphp/
│   │       │   │   ├── Snoopy.class.php
│   │       │   │   ├── Wechatauth.class.php
│   │       │   │   ├── Wechatext.class.php
│   │       │   │   └── Wechatpay.class.php
│   │       │   ├── snoopy.class.php
│   │       │   ├── test/
│   │       │   │   ├── test2.php
│   │       │   │   ├── test3.php
│   │       │   │   └── weshare.html
│   │       │   ├── wechat.js
│   │       │   ├── wechatauth.class.php
│   │       │   ├── wechatext.class.php
│   │       │   └── wechatpay.class.php
│   │       ├── qyerrCode.php
│   │       ├── qywechat.class.php
│   │       ├── test/
│   │       │   ├── auth.php
│   │       │   ├── jsapi/
│   │       │   │   ├── jsapi-demo-6.1.js
│   │       │   │   ├── jsapi_demo.php
│   │       │   │   └── style.css
│   │       │   ├── qydemo.php
│   │       │   └── test1.php
│   │       ├── wechat.class.php
│   │       └── wiki/
│   │           ├── %B5%C4%EA%B5%D8%E2%FE%D6+%DA%D6%E5%FE%A6+զ%F4.md
│   │           ├── %B5%F9%BA%FE%EB%EAե%AB%F5+%ED%B5%F6%BB%F5+V2%B5%C4%D1%D5%C5%FA%FE%A6+զ%F4.md
│   │           ├── %D5%E5%E0%D5%C1%EEJS.md
│   │           ├── %DA%D8%D7ի%B5%FB%A6%B5%EB%AEզ%F2%FE%A6+զ%F4.md
│   │           ├── %F5%A9%A6%D5+%C7%D5%C5%E6%B5%ED%E5%B5%D7%C2%DE+%F8%DE%ED%EE%DA%C7%E9%DA%E0%EC.md
│   │           ├── %F5+%FC%F5%A9%DC%D5%C5%C0API%FE%A6+զ%F4.md
│   │           ├── API%B5%C4%D1%D5%C5%FA%DA%F6%D6޻%BB%FE%E1%FC.md
│   │           ├── Home.md
│   │           ├── README.md
│   │           └── ի%B5%FB%A6API%FE%A6+զ%F4.md
│   ├── phpmailer/
│   │   └── phpmailer/
│   │       ├── LICENSE
│   │       ├── PHPMailerAutoload.php
│   │       ├── VERSION
│   │       ├── class.phpmailer.php
│   │       ├── class.phpmaileroauth.php
│   │       ├── class.phpmaileroauthgoogle.php
│   │       ├── class.pop3.php
│   │       ├── class.smtp.php
│   │       ├── composer.json
│   │       ├── examples/
│   │       │   ├── DKIM.phps
│   │       │   ├── code_generator.phps
│   │       │   ├── contactform.phps
│   │       │   ├── contents.html
│   │       │   ├── contentsutf8.html
│   │       │   ├── exceptions.phps
│   │       │   ├── gmail.phps
│   │       │   ├── gmail_xoauth.phps
│   │       │   ├── index.html
│   │       │   ├── mail.phps
│   │       │   ├── mailing_list.phps
│   │       │   ├── pop_before_smtp.phps
│   │       │   ├── scripts/
│   │       │   │   ├── XRegExp.js
│   │       │   │   ├── shAutoloader.js
│   │       │   │   ├── shBrushPhp.js
│   │       │   │   ├── shCore.js
│   │       │   │   └── shLegacy.js
│   │       │   ├── send_file_upload.phps
│   │       │   ├── send_multiple_file_upload.phps
│   │       │   ├── sendmail.phps
│   │       │   ├── signed-mail.phps
│   │       │   ├── smtp.phps
│   │       │   ├── smtp_check.phps
│   │       │   ├── smtp_no_auth.phps
│   │       │   ├── ssl_options.phps
│   │       │   └── styles/
│   │       │       ├── shCore.css
│   │       │       ├── shCoreDefault.css
│   │       │       ├── shCoreDjango.css
│   │       │       ├── shCoreEclipse.css
│   │       │       ├── shCoreEmacs.css
│   │       │       ├── shCoreFadeToGrey.css
│   │       │       ├── shCoreMDUltra.css
│   │       │       ├── shCoreMidnight.css
│   │       │       ├── shCoreRDark.css
│   │       │       ├── shThemeAppleScript.css
│   │       │       ├── shThemeDefault.css
│   │       │       ├── shThemeDjango.css
│   │       │       ├── shThemeEclipse.css
│   │       │       ├── shThemeEmacs.css
│   │       │       ├── shThemeFadeToGrey.css
│   │       │       ├── shThemeMDUltra.css
│   │       │       ├── shThemeMidnight.css
│   │       │       ├── shThemeRDark.css
│   │       │       └── shThemeVisualStudio.css
│   │       ├── extras/
│   │       │   ├── EasyPeasyICS.php
│   │       │   ├── README.md
│   │       │   ├── htmlfilter.php
│   │       │   └── ntlm_sasl_client.php
│   │       ├── get_oauth_token.php
│   │       └── language/
│   │           ├── phpmailer.lang-am.php
│   │           ├── phpmailer.lang-ar.php
│   │           ├── phpmailer.lang-az.php
│   │           ├── phpmailer.lang-be.php
│   │           ├── phpmailer.lang-bg.php
│   │           ├── phpmailer.lang-ca.php
│   │           ├── phpmailer.lang-ch.php
│   │           ├── phpmailer.lang-cs.php
│   │           ├── phpmailer.lang-da.php
│   │           ├── phpmailer.lang-de.php
│   │           ├── phpmailer.lang-el.php
│   │           ├── phpmailer.lang-eo.php
│   │           ├── phpmailer.lang-es.php
│   │           ├── phpmailer.lang-et.php
│   │           ├── phpmailer.lang-fa.php
│   │           ├── phpmailer.lang-fi.php
│   │           ├── phpmailer.lang-fo.php
│   │           ├── phpmailer.lang-fr.php
│   │           ├── phpmailer.lang-gl.php
│   │           ├── phpmailer.lang-he.php
│   │           ├── phpmailer.lang-hr.php
│   │           ├── phpmailer.lang-hu.php
│   │           ├── phpmailer.lang-id.php
│   │           ├── phpmailer.lang-it.php
│   │           ├── phpmailer.lang-ja.php
│   │           ├── phpmailer.lang-ka.php
│   │           ├── phpmailer.lang-ko.php
│   │           ├── phpmailer.lang-lt.php
│   │           ├── phpmailer.lang-lv.php
│   │           ├── phpmailer.lang-ms.php
│   │           ├── phpmailer.lang-nb.php
│   │           ├── phpmailer.lang-nl.php
│   │           ├── phpmailer.lang-pl.php
│   │           ├── phpmailer.lang-pt.php
│   │           ├── phpmailer.lang-pt_br.php
│   │           ├── phpmailer.lang-ro.php
│   │           ├── phpmailer.lang-ru.php
│   │           ├── phpmailer.lang-sk.php
│   │           ├── phpmailer.lang-sl.php
│   │           ├── phpmailer.lang-sr.php
│   │           ├── phpmailer.lang-sv.php
│   │           ├── phpmailer.lang-tr.php
│   │           ├── phpmailer.lang-uk.php
│   │           ├── phpmailer.lang-vi.php
│   │           ├── phpmailer.lang-zh.php
│   │           └── phpmailer.lang-zh_cn.php
│   └── phpoffice/
│       └── phpexcel/
│           ├── .gitattributes
│           ├── .gitignore
│           ├── .travis.yml
│           ├── Classes/
│           │   ├── PHPExcel/
│           │   │   ├── Autoloader.php
│           │   │   ├── CachedObjectStorage/
│           │   │   │   ├── APC.php
│           │   │   │   ├── CacheBase.php
│           │   │   │   ├── DiscISAM.php
│           │   │   │   ├── ICache.php
│           │   │   │   ├── Igbinary.php
│           │   │   │   ├── Memcache.php
│           │   │   │   ├── Memory.php
│           │   │   │   ├── MemoryGZip.php
│           │   │   │   ├── MemorySerialized.php
│           │   │   │   ├── PHPTemp.php
│           │   │   │   ├── SQLite.php
│           │   │   │   ├── SQLite3.php
│           │   │   │   └── Wincache.php
│           │   │   ├── CachedObjectStorageFactory.php
│           │   │   ├── CalcEngine/
│           │   │   │   ├── CyclicReferenceStack.php
│           │   │   │   └── Logger.php
│           │   │   ├── Calculation/
│           │   │   │   ├── Database.php
│           │   │   │   ├── DateTime.php
│           │   │   │   ├── Engineering.php
│           │   │   │   ├── Exception.php
│           │   │   │   ├── ExceptionHandler.php
│           │   │   │   ├── Financial.php
│           │   │   │   ├── FormulaParser.php
│           │   │   │   ├── FormulaToken.php
│           │   │   │   ├── Function.php
│           │   │   │   ├── Functions.php
│           │   │   │   ├── Logical.php
│           │   │   │   ├── LookupRef.php
│           │   │   │   ├── MathTrig.php
│           │   │   │   ├── Statistical.php
│           │   │   │   ├── TextData.php
│           │   │   │   ├── Token/
│           │   │   │   │   └── Stack.php
│           │   │   │   └── functionlist.txt
│           │   │   ├── Calculation.php
│           │   │   ├── Cell/
│           │   │   │   ├── AdvancedValueBinder.php
│           │   │   │   ├── DataType.php
│           │   │   │   ├── DataValidation.php
│           │   │   │   ├── DefaultValueBinder.php
│           │   │   │   ├── Hyperlink.php
│           │   │   │   └── IValueBinder.php
│           │   │   ├── Cell.php
│           │   │   ├── Chart/
│           │   │   │   ├── Axis.php
│           │   │   │   ├── DataSeries.php
│           │   │   │   ├── DataSeriesValues.php
│           │   │   │   ├── Exception.php
│           │   │   │   ├── GridLines.php
│           │   │   │   ├── Layout.php
│           │   │   │   ├── Legend.php
│           │   │   │   ├── PlotArea.php
│           │   │   │   ├── Properties.php
│           │   │   │   ├── Renderer/
│           │   │   │   │   ├── PHP Charting Libraries.txt
│           │   │   │   │   └── jpgraph.php
│           │   │   │   └── Title.php
│           │   │   ├── Chart.php
│           │   │   ├── Comment.php
│           │   │   ├── DocumentProperties.php
│           │   │   ├── DocumentSecurity.php
│           │   │   ├── Exception.php
│           │   │   ├── HashTable.php
│           │   │   ├── Helper/
│           │   │   │   └── HTML.php
│           │   │   ├── IComparable.php
│           │   │   ├── IOFactory.php
│           │   │   ├── NamedRange.php
│           │   │   ├── Reader/
│           │   │   │   ├── Abstract.php
│           │   │   │   ├── CSV.php
│           │   │   │   ├── DefaultReadFilter.php
│           │   │   │   ├── Excel2003XML.php
│           │   │   │   ├── Excel2007/
│           │   │   │   │   ├── Chart.php
│           │   │   │   │   └── Theme.php
│           │   │   │   ├── Excel2007.php
│           │   │   │   ├── Excel5/
│           │   │   │   │   ├── Escher.php
│           │   │   │   │   ├── MD5.php
│           │   │   │   │   └── RC4.php
│           │   │   │   ├── Excel5.php
│           │   │   │   ├── Exception.php
│           │   │   │   ├── Gnumeric.php
│           │   │   │   ├── HTML.php
│           │   │   │   ├── IReadFilter.php
│           │   │   │   ├── IReader.php
│           │   │   │   ├── OOCalc.php
│           │   │   │   └── SYLK.php
│           │   │   ├── ReferenceHelper.php
│           │   │   ├── RichText/
│           │   │   │   ├── ITextElement.php
│           │   │   │   ├── Run.php
│           │   │   │   └── TextElement.php
│           │   │   ├── RichText.php
│           │   │   ├── Settings.php
│           │   │   ├── Shared/
│           │   │   │   ├── CodePage.php
│           │   │   │   ├── Date.php
│           │   │   │   ├── Drawing.php
│           │   │   │   ├── Escher/
│           │   │   │   │   ├── DgContainer/
│           │   │   │   │   │   ├── SpgrContainer/
│           │   │   │   │   │   │   └── SpContainer.php
│           │   │   │   │   │   └── SpgrContainer.php
│           │   │   │   │   ├── DgContainer.php
│           │   │   │   │   ├── DggContainer/
│           │   │   │   │   │   ├── BstoreContainer/
│           │   │   │   │   │   │   ├── BSE/
│           │   │   │   │   │   │   │   └── Blip.php
│           │   │   │   │   │   │   └── BSE.php
│           │   │   │   │   │   └── BstoreContainer.php
│           │   │   │   │   └── DggContainer.php
│           │   │   │   ├── Escher.php
│           │   │   │   ├── Excel5.php
│           │   │   │   ├── File.php
│           │   │   │   ├── Font.php
│           │   │   │   ├── JAMA/
│           │   │   │   │   ├── CHANGELOG.TXT
│           │   │   │   │   ├── CholeskyDecomposition.php
│           │   │   │   │   ├── EigenvalueDecomposition.php
│           │   │   │   │   ├── LUDecomposition.php
│           │   │   │   │   ├── Matrix.php
│           │   │   │   │   ├── QRDecomposition.php
│           │   │   │   │   ├── SingularValueDecomposition.php
│           │   │   │   │   └── utils/
│           │   │   │   │       ├── Error.php
│           │   │   │   │       └── Maths.php
│           │   │   │   ├── OLE/
│           │   │   │   │   ├── ChainedBlockStream.php
│           │   │   │   │   ├── PPS/
│           │   │   │   │   │   ├── File.php
│           │   │   │   │   │   └── Root.php
│           │   │   │   │   └── PPS.php
│           │   │   │   ├── OLE.php
│           │   │   │   ├── OLERead.php
│           │   │   │   ├── PCLZip/
│           │   │   │   │   ├── gnu-lgpl.txt
│           │   │   │   │   ├── pclzip.lib.php
│           │   │   │   │   └── readme.txt
│           │   │   │   ├── PasswordHasher.php
│           │   │   │   ├── String.php
│           │   │   │   ├── TimeZone.php
│           │   │   │   ├── XMLWriter.php
│           │   │   │   ├── ZipArchive.php
│           │   │   │   ├── ZipStreamWrapper.php
│           │   │   │   └── trend/
│           │   │   │       ├── bestFitClass.php
│           │   │   │       ├── exponentialBestFitClass.php
│           │   │   │       ├── linearBestFitClass.php
│           │   │   │       ├── logarithmicBestFitClass.php
│           │   │   │       ├── polynomialBestFitClass.php
│           │   │   │       ├── powerBestFitClass.php
│           │   │   │       └── trendClass.php
│           │   │   ├── Style/
│           │   │   │   ├── Alignment.php
│           │   │   │   ├── Border.php
│           │   │   │   ├── Borders.php
│           │   │   │   ├── Color.php
│           │   │   │   ├── Conditional.php
│           │   │   │   ├── Fill.php
│           │   │   │   ├── Font.php
│           │   │   │   ├── NumberFormat.php
│           │   │   │   ├── Protection.php
│           │   │   │   └── Supervisor.php
│           │   │   ├── Style.php
│           │   │   ├── Worksheet/
│           │   │   │   ├── AutoFilter/
│           │   │   │   │   ├── Column/
│           │   │   │   │   │   └── Rule.php
│           │   │   │   │   └── Column.php
│           │   │   │   ├── AutoFilter.php
│           │   │   │   ├── BaseDrawing.php
│           │   │   │   ├── CellIterator.php
│           │   │   │   ├── Column.php
│           │   │   │   ├── ColumnCellIterator.php
│           │   │   │   ├── ColumnDimension.php
│           │   │   │   ├── ColumnIterator.php
│           │   │   │   ├── Drawing/
│           │   │   │   │   └── Shadow.php
│           │   │   │   ├── Drawing.php
│           │   │   │   ├── HeaderFooter.php
│           │   │   │   ├── HeaderFooterDrawing.php
│           │   │   │   ├── MemoryDrawing.php
│           │   │   │   ├── PageMargins.php
│           │   │   │   ├── PageSetup.php
│           │   │   │   ├── Protection.php
│           │   │   │   ├── Row.php
│           │   │   │   ├── RowCellIterator.php
│           │   │   │   ├── RowDimension.php
│           │   │   │   ├── RowIterator.php
│           │   │   │   └── SheetView.php
│           │   │   ├── Worksheet.php
│           │   │   ├── WorksheetIterator.php
│           │   │   ├── Writer/
│           │   │   │   ├── Abstract.php
│           │   │   │   ├── CSV.php
│           │   │   │   ├── Excel2007/
│           │   │   │   │   ├── Chart.php
│           │   │   │   │   ├── Comments.php
│           │   │   │   │   ├── ContentTypes.php
│           │   │   │   │   ├── DocProps.php
│           │   │   │   │   ├── Drawing.php
│           │   │   │   │   ├── Rels.php
│           │   │   │   │   ├── RelsRibbon.php
│           │   │   │   │   ├── RelsVBA.php
│           │   │   │   │   ├── StringTable.php
│           │   │   │   │   ├── Style.php
│           │   │   │   │   ├── Theme.php
│           │   │   │   │   ├── Workbook.php
│           │   │   │   │   ├── Worksheet.php
│           │   │   │   │   └── WriterPart.php
│           │   │   │   ├── Excel2007.php
│           │   │   │   ├── Excel5/
│           │   │   │   │   ├── BIFFwriter.php
│           │   │   │   │   ├── Escher.php
│           │   │   │   │   ├── Font.php
│           │   │   │   │   ├── Parser.php
│           │   │   │   │   ├── Workbook.php
│           │   │   │   │   ├── Worksheet.php
│           │   │   │   │   └── Xf.php
│           │   │   │   ├── Excel5.php
│           │   │   │   ├── Exception.php
│           │   │   │   ├── HTML.php
│           │   │   │   ├── IWriter.php
│           │   │   │   ├── OpenDocument/
│           │   │   │   │   ├── Cell/
│           │   │   │   │   │   └── Comment.php
│           │   │   │   │   ├── Content.php
│           │   │   │   │   ├── Meta.php
│           │   │   │   │   ├── MetaInf.php
│           │   │   │   │   ├── Mimetype.php
│           │   │   │   │   ├── Settings.php
│           │   │   │   │   ├── Styles.php
│           │   │   │   │   ├── Thumbnails.php
│           │   │   │   │   └── WriterPart.php
│           │   │   │   ├── OpenDocument.php
│           │   │   │   ├── PDF/
│           │   │   │   │   ├── Core.php
│           │   │   │   │   ├── DomPDF.php
│           │   │   │   │   ├── mPDF.php
│           │   │   │   │   └── tcPDF.php
│           │   │   │   └── PDF.php
│           │   │   └── locale/
│           │   │       ├── bg/
│           │   │       │   └── config
│           │   │       ├── cs/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── da/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── de/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── en/
│           │   │       │   └── uk/
│           │   │       │       └── config
│           │   │       ├── es/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── fi/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── fr/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── hu/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── it/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── nl/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── no/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── pl/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── pt/
│           │   │       │   ├── br/
│           │   │       │   │   ├── config
│           │   │       │   │   └── functions
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── ru/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── sv/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       └── tr/
│           │   │           ├── config
│           │   │           └── functions
│           │   └── PHPExcel.php
│           ├── Examples/
│           │   ├── .gitignore
│           │   ├── 01pharSimple.php
│           │   ├── 01simple-download-ods.php
│           │   ├── 01simple-download-pdf.php
│           │   ├── 01simple-download-xls.php
│           │   ├── 01simple-download-xlsx.php
│           │   ├── 01simple.php
│           │   ├── 01simplePCLZip.php
│           │   ├── 02types-xls.php
│           │   ├── 02types.php
│           │   ├── 03formulas.php
│           │   ├── 04printing.php
│           │   ├── 05featuredemo.inc.php
│           │   ├── 05featuredemo.php
│           │   ├── 06largescale-with-cellcaching-sqlite.php
│           │   ├── 06largescale-with-cellcaching-sqlite3.php
│           │   ├── 06largescale-with-cellcaching.php
│           │   ├── 06largescale-xls.php
│           │   ├── 06largescale.php
│           │   ├── 07reader.php
│           │   ├── 07readerPCLZip.php
│           │   ├── 08conditionalformatting.php
│           │   ├── 08conditionalformatting2.php
│           │   ├── 09pagebreaks.php
│           │   ├── 10autofilter-selection-1.php
│           │   ├── 10autofilter-selection-2.php
│           │   ├── 10autofilter-selection-display.php
│           │   ├── 10autofilter.php
│           │   ├── 11documentsecurity-xls.php
│           │   ├── 11documentsecurity.php
│           │   ├── 12cellProtection.php
│           │   ├── 13calculation.php
│           │   ├── 14excel5.php
│           │   ├── 15datavalidation-xls.php
│           │   ├── 15datavalidation.php
│           │   ├── 16csv.php
│           │   ├── 17html.php
│           │   ├── 18extendedcalculation.php
│           │   ├── 19namedrange.php
│           │   ├── 20readexcel5.php
│           │   ├── 21pdf.php
│           │   ├── 22heavilyformatted.php
│           │   ├── 23sharedstyles.php
│           │   ├── 24readfilter.php
│           │   ├── 25inmemoryimage.php
│           │   ├── 26utf8.php
│           │   ├── 27imagesexcel5.php
│           │   ├── 28iterator.php
│           │   ├── 29advancedvaluebinder.php
│           │   ├── 30template.php
│           │   ├── 31docproperties_write-xls.php
│           │   ├── 31docproperties_write.php
│           │   ├── 32chartreadwrite.php
│           │   ├── 33chartcreate-area.php
│           │   ├── 33chartcreate-bar-stacked.php
│           │   ├── 33chartcreate-bar.php
│           │   ├── 33chartcreate-column-2.php
│           │   ├── 33chartcreate-column.php
│           │   ├── 33chartcreate-composite.php
│           │   ├── 33chartcreate-line.php
│           │   ├── 33chartcreate-multiple-charts.php
│           │   ├── 33chartcreate-pie.php
│           │   ├── 33chartcreate-radar.php
│           │   ├── 33chartcreate-scatter.php
│           │   ├── 33chartcreate-stock.php
│           │   ├── 34chartupdate.php
│           │   ├── 35chartrender.php
│           │   ├── 36chartreadwriteHTML.php
│           │   ├── 36chartreadwritePDF.php
│           │   ├── 37page_layout_view.php
│           │   ├── 38cloneWorksheet.php
│           │   ├── 39dropdown.php
│           │   ├── 40duplicateStyle.php
│           │   ├── 41password.php
│           │   ├── 42richText.php
│           │   ├── Excel2003XMLReader.php
│           │   ├── Excel2003XMLTest.xml
│           │   ├── GnumericReader.php
│           │   ├── GnumericTest.gnumeric
│           │   ├── OOCalcReader.php
│           │   ├── OOCalcReaderPCLZip.php
│           │   ├── OOCalcTest.ods
│           │   ├── Quadratic.php
│           │   ├── Quadratic2.php
│           │   ├── SylkReader.php
│           │   ├── SylkTest.slk
│           │   ├── XMLReader.php
│           │   ├── XMLTest.xml
│           │   ├── data/
│           │   │   └── continents/
│           │   │       ├── Africa.txt
│           │   │       ├── Asia.txt
│           │   │       ├── Europe.txt
│           │   │       ├── North America.txt
│           │   │       ├── Oceania.txt
│           │   │       └── South America.txt
│           │   └── runall.php
│           ├── changelog.txt
│           ├── composer.json
│           ├── install.txt
│           ├── license.md
│           └── unitTests/
│               ├── Classes/
│               │   └── PHPExcel/
│               │       ├── AutoloaderTest.php
│               │       ├── Calculation/
│               │       │   ├── DateTimeTest.php
│               │       │   ├── EngineeringTest.php
│               │       │   ├── FinancialTest.php
│               │       │   ├── FunctionsTest.php
│               │       │   ├── LogicalTest.php
│               │       │   ├── LookupRefTest.php
│               │       │   ├── MathTrigTest.php
│               │       │   └── TextDataTest.php
│               │       ├── CalculationTest.php
│               │       ├── Cell/
│               │       │   ├── AdvancedValueBinderTest.php
│               │       │   ├── DataTypeTest.php
│               │       │   ├── DefaultValueBinderTest.php
│               │       │   └── HyperlinkTest.php
│               │       ├── CellTest.php
│               │       ├── Chart/
│               │       │   ├── DataSeriesValuesTest.php
│               │       │   ├── LayoutTest.php
│               │       │   └── LegendTest.php
│               │       ├── Reader/
│               │       │   └── XEEValidatorTest.php
│               │       ├── ReferenceHelperTest.php
│               │       ├── Shared/
│               │       │   ├── CodePageTest.php
│               │       │   ├── DateTest.php
│               │       │   ├── FileTest.php
│               │       │   ├── FontTest.php
│               │       │   ├── PasswordHasherTest.php
│               │       │   ├── StringTest.php
│               │       │   └── TimeZoneTest.php
│               │       ├── Style/
│               │       │   ├── ColorTest.php
│               │       │   └── NumberFormatTest.php
│               │       └── Worksheet/
│               │           ├── AutoFilter/
│               │           │   ├── Column/
│               │           │   │   └── RuleTest.php
│               │           │   └── ColumnTest.php
│               │           ├── AutoFilterTest.php
│               │           ├── CellCollectionTest.php
│               │           ├── ColumnCellIteratorTest.php
│               │           ├── ColumnIteratorTest.php
│               │           ├── RowCellIteratorTest.php
│               │           ├── RowIteratorTest.php
│               │           ├── WorksheetColumnTest.php
│               │           └── WorksheetRowTest.php
│               ├── bootstrap.php
│               ├── custom/
│               │   ├── Complex.php
│               │   └── complexAssert.php
│               ├── phpunit-cc.xml
│               ├── phpunit.xml
│               ├── rawTestData/
│               │   ├── Calculation/
│               │   │   ├── DateTime/
│               │   │   │   ├── DATE.data
│               │   │   │   ├── DATEDIF.data
│               │   │   │   ├── DATEVALUE.data
│               │   │   │   ├── DAY.data
│               │   │   │   ├── DAYS360.data
│               │   │   │   ├── EDATE.data
│               │   │   │   ├── EOMONTH.data
│               │   │   │   ├── HOUR.data
│               │   │   │   ├── MINUTE.data
│               │   │   │   ├── MONTH.data
│               │   │   │   ├── NETWORKDAYS.data
│               │   │   │   ├── SECOND.data
│               │   │   │   ├── TIME.data
│               │   │   │   ├── TIMEVALUE.data
│               │   │   │   ├── WEEKDAY.data
│               │   │   │   ├── WEEKNUM.data
│               │   │   │   ├── WORKDAY.data
│               │   │   │   ├── YEAR.data
│               │   │   │   └── YEARFRAC.data
│               │   │   ├── Engineering/
│               │   │   │   ├── BESSELI.data
│               │   │   │   ├── BESSELJ.data
│               │   │   │   ├── BESSELK.data
│               │   │   │   ├── BESSELY.data
│               │   │   │   ├── BIN2DEC.data
│               │   │   │   ├── BIN2HEX.data
│               │   │   │   ├── BIN2OCT.data
│               │   │   │   ├── COMPLEX.data
│               │   │   │   ├── CONVERTUOM.data
│               │   │   │   ├── DEC2BIN.data
│               │   │   │   ├── DEC2HEX.data
│               │   │   │   ├── DEC2OCT.data
│               │   │   │   ├── DELTA.data
│               │   │   │   ├── ERF.data
│               │   │   │   ├── ERFC.data
│               │   │   │   ├── GESTEP.data
│               │   │   │   ├── HEX2BIN.data
│               │   │   │   ├── HEX2DEC.data
│               │   │   │   ├── HEX2OCT.data
│               │   │   │   ├── IMABS.data
│               │   │   │   ├── IMAGINARY.data
│               │   │   │   ├── IMARGUMENT.data
│               │   │   │   ├── IMCONJUGATE.data
│               │   │   │   ├── IMCOS.data
│               │   │   │   ├── IMDIV.data
│               │   │   │   ├── IMEXP.data
│               │   │   │   ├── IMLN.data
│               │   │   │   ├── IMLOG10.data
│               │   │   │   ├── IMLOG2.data
│               │   │   │   ├── IMPOWER.data
│               │   │   │   ├── IMPRODUCT.data
│               │   │   │   ├── IMREAL.data
│               │   │   │   ├── IMSIN.data
│               │   │   │   ├── IMSQRT.data
│               │   │   │   ├── IMSUB.data
│               │   │   │   ├── IMSUM.data
│               │   │   │   ├── OCT2BIN.data
│               │   │   │   ├── OCT2DEC.data
│               │   │   │   └── OCT2HEX.data
│               │   │   ├── Financial/
│               │   │   │   ├── ACCRINT.data
│               │   │   │   ├── ACCRINTM.data
│               │   │   │   ├── AMORDEGRC.data
│               │   │   │   ├── AMORLINC.data
│               │   │   │   ├── COUPDAYBS.data
│               │   │   │   ├── COUPDAYS.data
│               │   │   │   ├── COUPDAYSNC.data
│               │   │   │   ├── COUPNCD.data
│               │   │   │   ├── COUPNUM.data
│               │   │   │   ├── COUPPCD.data
│               │   │   │   ├── CUMIPMT.data
│               │   │   │   ├── CUMPRINC.data
│               │   │   │   ├── DB.data
│               │   │   │   ├── DDB.data
│               │   │   │   ├── DISC.data
│               │   │   │   ├── DOLLARDE.data
│               │   │   │   ├── DOLLARFR.data
│               │   │   │   ├── EFFECT.data
│               │   │   │   ├── FV.data
│               │   │   │   ├── FVSCHEDULE.data
│               │   │   │   ├── INTRATE.data
│               │   │   │   ├── IPMT.data
│               │   │   │   ├── IRR.data
│               │   │   │   ├── ISPMT.data
│               │   │   │   ├── MIRR.data
│               │   │   │   ├── NOMINAL.data
│               │   │   │   ├── NPER.data
│               │   │   │   ├── NPV.data
│               │   │   │   ├── PRICE.data
│               │   │   │   ├── RATE.data
│               │   │   │   └── XIRR.data
│               │   │   ├── Functions/
│               │   │   │   ├── ERROR_TYPE.data
│               │   │   │   ├── IS_BLANK.data
│               │   │   │   ├── IS_ERR.data
│               │   │   │   ├── IS_ERROR.data
│               │   │   │   ├── IS_EVEN.data
│               │   │   │   ├── IS_LOGICAL.data
│               │   │   │   ├── IS_NA.data
│               │   │   │   ├── IS_NONTEXT.data
│               │   │   │   ├── IS_NUMBER.data
│               │   │   │   ├── IS_ODD.data
│               │   │   │   ├── IS_TEXT.data
│               │   │   │   ├── N.data
│               │   │   │   └── TYPE.data
│               │   │   ├── Logical/
│               │   │   │   ├── AND.data
│               │   │   │   ├── IF.data
│               │   │   │   ├── IFERROR.data
│               │   │   │   ├── NOT.data
│               │   │   │   └── OR.data
│               │   │   ├── LookupRef/
│               │   │   │   ├── HLOOKUP.data
│               │   │   │   └── VLOOKUP.data
│               │   │   ├── MathTrig/
│               │   │   │   ├── ATAN2.data
│               │   │   │   ├── CEILING.data
│               │   │   │   ├── COMBIN.data
│               │   │   │   ├── EVEN.data
│               │   │   │   ├── FACT.data
│               │   │   │   ├── FACTDOUBLE.data
│               │   │   │   ├── FLOOR.data
│               │   │   │   ├── GCD.data
│               │   │   │   ├── INT.data
│               │   │   │   ├── LCM.data
│               │   │   │   ├── LOG.data
│               │   │   │   ├── MDETERM.data
│               │   │   │   ├── MINVERSE.data
│               │   │   │   ├── MMULT.data
│               │   │   │   ├── MOD.data
│               │   │   │   ├── MROUND.data
│               │   │   │   ├── MULTINOMIAL.data
│               │   │   │   ├── ODD.data
│               │   │   │   ├── POWER.data
│               │   │   │   ├── PRODUCT.data
│               │   │   │   ├── QUOTIENT.data
│               │   │   │   ├── ROMAN.data
│               │   │   │   ├── ROUNDDOWN.data
│               │   │   │   ├── ROUNDUP.data
│               │   │   │   ├── SERIESSUM.data
│               │   │   │   ├── SIGN.data
│               │   │   │   ├── SQRTPI.data
│               │   │   │   ├── SUMSQ.data
│               │   │   │   └── TRUNC.data
│               │   │   └── TextData/
│               │   │       ├── CHAR.data
│               │   │       ├── CLEAN.data
│               │   │       ├── CODE.data
│               │   │       ├── CONCATENATE.data
│               │   │       ├── DOLLAR.data
│               │   │       ├── FIND.data
│               │   │       ├── FIXED.data
│               │   │       ├── LEFT.data
│               │   │       ├── LEN.data
│               │   │       ├── LOWER.data
│               │   │       ├── MID.data
│               │   │       ├── PROPER.data
│               │   │       ├── REPLACE.data
│               │   │       ├── RIGHT.data
│               │   │       ├── SEARCH.data
│               │   │       ├── SUBSTITUTE.data
│               │   │       ├── T.data
│               │   │       ├── TEXT.data
│               │   │       ├── TRIM.data
│               │   │       ├── UPPER.data
│               │   │       └── VALUE.data
│               │   ├── CalculationBinaryComparisonOperation.data
│               │   ├── Cell/
│               │   │   └── DefaultValueBinder.data
│               │   ├── CellAbsoluteCoordinate.data
│               │   ├── CellAbsoluteReference.data
│               │   ├── CellBuildRange.data
│               │   ├── CellCoordinates.data
│               │   ├── CellExtractAllCellReferencesInRange.data
│               │   ├── CellGetRangeBoundaries.data
│               │   ├── CellRangeBoundaries.data
│               │   ├── CellRangeDimension.data
│               │   ├── CellSplitRange.data
│               │   ├── ColumnIndex.data
│               │   ├── ColumnString.data
│               │   ├── Reader/
│               │   │   ├── XEETestInvalidUTF-16.xml
│               │   │   ├── XEETestInvalidUTF-16BE.xml
│               │   │   ├── XEETestInvalidUTF-16LE.xml
│               │   │   ├── XEETestInvalidUTF-8.xml
│               │   │   ├── XEETestValidUTF-16.xml
│               │   │   ├── XEETestValidUTF-16BE.xml
│               │   │   ├── XEETestValidUTF-16LE.xml
│               │   │   └── XEETestValidUTF-8.xml
│               │   ├── Shared/
│               │   │   ├── CentimeterSizeToPixels.data
│               │   │   ├── CodePage.data
│               │   │   ├── DateTimeExcelToPHP1900.data
│               │   │   ├── DateTimeExcelToPHP1900Timezone.data
│               │   │   ├── DateTimeExcelToPHP1904.data
│               │   │   ├── DateTimeFormatCodes.data
│               │   │   ├── DateTimeFormattedPHPToExcel1900.data
│               │   │   ├── DateTimePHPToExcel1900.data
│               │   │   ├── DateTimePHPToExcel1904.data
│               │   │   ├── FontSizeToPixels.data
│               │   │   ├── InchSizeToPixels.data
│               │   │   └── PasswordHashes.data
│               │   └── Style/
│               │       ├── ColorChangeBrightness.data
│               │       ├── ColorGetBlue.data
│               │       ├── ColorGetGreen.data
│               │       ├── ColorGetRed.data
│               │       └── NumberFormat.data
│               └── testDataFileIterator.php
└── wemall7.sql

================================================
FILE CONTENTS
================================================

================================================
FILE: .htaccess
================================================
<IfModule mod_rewrite.c>
  Options +FollowSymlinks -Multiviews
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>


================================================
FILE: .travis.yml
================================================
sudo: false

language: php

branches:
  only:
    - stable

cache:
  directories:
    - $HOME/.composer/cache

before_install:
  - composer self-update

install:
  - composer install --no-dev --no-interaction --ignore-platform-reqs
  - zip -r --exclude='*.git*' --exclude='*.zip' --exclude='*.travis.yml' ThinkPHP_Core.zip .
  - composer require --update-no-dev --no-interaction "topthink/think-image:^1.0"
  - composer require --update-no-dev --no-interaction "topthink/think-migration:^1.0"
  - composer require --update-no-dev --no-interaction "topthink/think-captcha:^1.0"
  - composer require --update-no-dev --no-interaction "topthink/think-mongo:^1.0"
  - composer require --update-no-dev --no-interaction "topthink/think-worker:^1.0"
  - composer require --update-no-dev --no-interaction "topthink/think-helper:^1.0"
  - composer require --update-no-dev --no-interaction "topthink/think-queue:^1.0"
  - composer require --update-no-dev --no-interaction "topthink/think-angular:^1.0"
  - composer require --dev --update-no-dev --no-interaction "topthink/think-testing:^1.0"
  - zip -r --exclude='*.git*' --exclude='*.zip' --exclude='*.travis.yml' ThinkPHP_Full.zip .

script:
  - php think unit

deploy:
  provider: releases
  api_key:
    secure: TSF6bnl2JYN72UQOORAJYL+CqIryP2gHVKt6grfveQ7d9rleAEoxlq6PWxbvTI4jZ5nrPpUcBUpWIJHNgVcs+bzLFtyh5THaLqm39uCgBbrW7M8rI26L8sBh/6nsdtGgdeQrO/cLu31QoTzbwuz1WfAVoCdCkOSZeXyT/CclH99qV6RYyQYqaD2wpRjrhA5O4fSsEkiPVuk0GaOogFlrQHx+C+lHnf6pa1KxEoN1A0UxxVfGX6K4y5g4WQDO5zT4bLeubkWOXK0G51XSvACDOZVIyLdjApaOFTwamPcD3S1tfvuxRWWvsCD5ljFvb2kSmx5BIBNwN80MzuBmrGIC27XLGOxyMerwKxB6DskNUO9PflKHDPI61DRq0FTy1fv70SFMSiAtUv9aJRT41NQh9iJJ0vC8dl+xcxrWIjU1GG6+l/ZcRqVx9V1VuGQsLKndGhja7SQ+X1slHl76fRq223sMOql7MFCd0vvvxVQ2V39CcFKao/LB1aPH3VhODDEyxwx6aXoTznvC/QPepgWsHOWQzKj9ftsgDbsNiyFlXL4cu8DWUty6rQy8zT2b4O8b1xjcwSUCsy+auEjBamzQkMJFNlZAIUrukL/NbUhQU37TAbwsFyz7X0E/u/VMle/nBCNAzgkMwAUjiHM6FqrKKBRWFbPrSIixjfjkCnrMEPw=
  file:
    - ThinkPHP_Core.zip
    - ThinkPHP_Full.zip
  skip_cleanup: true
  on:
    tags: true


================================================
FILE: LICENSE.txt
================================================

ThinkPHP遵循Apache2开源协议发布,并提供免费使用。
版权所有Copyright © 2006-2016 by ThinkPHP (http://thinkphp.cn)
All rights reserved。
ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。

Apache Licence是著名的非盈利开源组织Apache采用的协议。
该协议和BSD类似,鼓励代码共享和尊重原作者的著作权,
允许代码修改,再作为开源或商业软件发布。需要满足
的条件: 
1. 需要给代码的用户一份Apache Licence ;
2. 如果你修改了代码,需要在被修改的文件中说明;
3. 在延伸的代码中(修改和有源代码衍生的代码中)需要
带有原来代码中的协议,商标,专利声明和其他原来作者规
定需要包含的说明;
4. 如果再发布的产品中包含一个Notice文件,则在Notice文
件中需要带有本协议内容。你可以在Notice中增加自己的
许可,但不可以表现为对Apache Licence构成更改。 
具体的协议参考:http://www.apache.org/licenses/LICENSE-2.0

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.


================================================
FILE: README.md
================================================
WeMall商城 7.0 (不含商城)
===============



​	wemall7.0 开源系统,基于thinkphp5开发,支持composer,优化核心,减少依赖,基于全新的架构思想和命名空间。



### thinkphp5.0特性

- 基于命名空间和众多PHP新特性
- 核心功能组件化
- 强化路由功能
- 更灵活的控制器
- 重构的模型和数据库类
- 配置文件可分离
- 重写的自动验证和完成
- 简化扩展机制
- API支持完善
- 改进的Log类
- 命令行访问支持
- REST支持
- 引导文件支持
- 方便的自动生成定义
- 真正惰性加载
- 分布式环境支持
- 更多的社交类库

> ThinkPHP5的运行环境要求PHP5.4以上。



### wemall7.0特性

- 基于TP5,性能优越
- 前后分离,简单方便
- 插件扩展,功能丰富
- 钩子机制,高度扩展
- 自动升级,维护简单
- 使用pjax,体验提升
- rest架构,耦合度低


> ##### 功能列表
>
> 1. 首页=》系统首页
>
> 2. 设置=》站点设置,短信配置,邮件配置
>
> 3. 微信=》微信配置,微信菜单,自定义回复,模版消息,多客服设置,微信打印机
>
> 4. 内容=》文章分类,文章列表
>
> 5. 模版=》模版设置,邮件模版,短信模版
>
> 6. 用户=》管理员用户组,管理员列表,用户列表,会员列表
>
> 7. 插件=》插件管理,插件商店
>
> 8. 帮助=》使用帮助
>
>    ...




## 插件钩子机制

### 安装

> composer require qingyuexi/think-addons

### 配置

#### 公共配置

```
'addons'=>[
    // 可以定义多个钩子
    'testhook'=>'putong\demo\demo' // 键为钩子名称,用于在业务中自定义钩子处理,值为实现该钩子的插件,
                    // 多个插件可以用数组也可以用逗号分割
]

```

或者在application\extra目录中新建`addons.php`,内容为:

```
<?php
return [
    // 可以定义多个钩子
    'testhook'=>'putong\demo\demo' // 键为钩子名称,用于在业务中自定义钩子处理,值为实现该钩子的插件,
                    // 多个插件可以用数组也可以用逗号分割
]

```

### 创建插件

> 创建的插件可以在view视图中使用,也可以在php业务中使用

安装完成后访问系统时会在项目根目录生成名为`addons`的目录,在该目录中创建需要的插件。

下面写一个例子:

#### 创建putong分类插件

> 在addons目录中创建putong目录

#### 创建插件分类配置文件

> 在putong目录中创建config.php类文件,插件配置文件可以省略。

```
<?php
return [
    'name' => 'putong',
    'title' => 'putong',
    'description' => 'putong类插件',
    'status' => 1,
    'author' => '清月曦'
];

```

#### 在putong分类下创建demo插件

> 在addons目录下的putong目录下创建demo目录

#### 创建钩子实现类

> 在test目录中创建Demo.php类文件。注意:类文件首字母需大写

```
<?php
namespace addons\putong\demo;   // 注意命名空间规范

use think\Addons;

/**
 * 插件测试
 * @author byron sampson
 */
class Demo extends Addons   // 需继承think\addons\Addons类
{
    // 该插件的基础信息
    public $info = [
        'name' => 'test',   // 插件标识
        'title' => '插件测试',  // 插件名称
        'description' => 'thinkph5插件测试',    // 插件简介
        'status' => 0,  // 状态
        'author' => 'byron sampson',
        'version' => '0.1'
    ];

    /**
     * 插件安装方法
     * @return bool
     */
    public function install()
    {
        return true;
    }

    /**
     * 插件卸载方法
     * @return bool
     */
    public function uninstall()
    {
        return true;
    }

    /**
     * 实现的testhook钩子方法
     * @return mixed
     */
    public function testhook($param)
    {
        // 调用钩子时候的参数信息
        print_r($param);
        // 当前插件的配置信息,配置信息存在当前目录的config.php文件中,见下方
        print_r($this->getConfig());
        // 可以返回模板,模板文件默认读取的为插件目录中的文件。模板名不能为空!
        return $this->fetch('info');
    }

}

```

#### 创建插件配置文件

> 在test目录中创建config.php类文件,插件配置文件可以省略。

```
<?php
return [
    'name' => 'demo',
    'title' => 'demo',
    'description' => 'demo插件',
    'status' => 1,
    'url' => true,
    'author' => '清月曦',
    'version' => '0.1'
];

```

#### 创建钩子模板文件

> 在demo目录中创建info.html模板文件,钩子在使用fetch方法时对应的模板文件。

```
<h1>hello tpl</h1>

如果插件中需要有链接或提交数据的业务,可以在插件中创建controller业务文件,
要访问插件中的controller时使用addon_url生成url链接。
如下:
<a href="{:addon_url('putong://demo/admin/index')}">link demo</a>
格式为:
demo为插件名,admin为controller中的类名,index为controller中的方法

```

#### 创建插件的controller文件

> 在test目录中创建controller目录,在controller目录中创建Action.php文件 controller类的用法与tp5中的controller一致

```
<?php
namespace addons\putong\demo\controller;

class Admin
{
    public function index()
    {
        echo 'hello link';
    }
}

```

> 如果需要使用view模板则需要继承`\think\addons\Controller`类 模板文件所在位置为插件目录的view中,规则与模块中的view规则一致

```
<?php
namespace addons\putong\demo\controller;

use think\addons\Controller;

class Admin extends Controller
{
    public function index()
    {
        return $this->fetch();
    }
}

```

### 使用钩子

> 创建好插件后就可以在正常业务中使用该插件中的钩子了 使用钩子的时候第二个参数可以省略

#### 模板中使用钩子

```
<div>{:hook('testhook', ['id'=>1])}</div>

```

#### php业务中使用

> 只要是thinkphp5正常流程中的任意位置均可以使用

```
hook('testhook', ['id'=>1])

```

### 插件目录结构

#### 最终生成的目录结构为

```
tp5
 - addons
 -- putong
 --- demo
 ---- controller
 ----- Admin.php
 ---- view
 ---- action
 ----- link.html
 --- config.php
 --- info.html
 --- Demo.php
 - application
 - thinkphp
 - extend
 - vendor
 - public
```



## 版权信息

wemall7开源版遵循Apache2开源协议发布,并提供免费使用。本项目包含的第三方源码和二进制文件之版权信息另行标注。版权所有Copyright © 2016-2017 by wemallshop.com ([http://www.wemallshop.com](http://www.wemallshop.com)) All rights reserved。

================================================
FILE: addons/common/config.php
================================================
<?php
/**
 * 
 * @authors 清月曦 (1604583867@qq.com)
 * @date    2017-03-07 23:29:12
 * @version $Id$
 */
return [
    'name' => 'common',
    'title' => '公共插件',
    'description' => '公共插件列表',
    'author' => '清月曦'
];

================================================
FILE: addons/putong/config.php
================================================
<?php
/**
 * 
 * @authors 清月曦 (1604583867@qq.com)
 * @date    2017-03-07 23:29:12
 * @version $Id$
 */
return [
    'name' => 'putong',
    'title' => '普通版',
    'description' => '普通版插件列表',
    'status' => 1,
    'url' => true,
    'author' => '清月曦',
    'version' => '0.1'
];

================================================
FILE: addons/putong/demo/Demo.php
================================================
<?php
// +----------------------------------------------------------------------
// | thinkphp5 Addons [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016 http://www.zzstudio.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Byron Sampson <xiaobo.sun@qq.com>
// +----------------------------------------------------------------------
namespace addons\putong\demo;

use think\Addons;

/**
 * 插件测试
 * @author byron sampson
 */
class Demo extends Addons
{
    public $info = [
        'name' => 'test',
        'title' => '插件测试',
        'description' => 'thinkph5插件测试',
        'status' => 0,
        'author' => 'byron sampson',
        'version' => '0.1'
    ];

    /**
     * 插件安装方法
     * @return bool
     */
    public function install()
    {
        return true;
    }

    /**
     * 插件卸载方法
     * @return bool
     */
    public function uninstall()
    {
        return true;
    }

    /**
     * 实现的testHook钩子方法
     * @return mixed
     */
    public function temphook($param)
    {
        echo '<p><font color="red">开始处理钩子啦</font></p>';
        echo '<p><font color="green">打印传给钩子的参数:</font></p>';
        dump($param);
        echo '<p><font color="green">打印插件配置:</font></p>';
        dump($this->getConfig());

        // 这里可以通过钩子来调用钩子模板
        return $this->fetch('info');
    }

}


================================================
FILE: addons/putong/demo/config.php
================================================
<?php
// +----------------------------------------------------------------------
// | thinkphp5 Addons [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016 http://www.zzstudio.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Byron Sampson <xiaobo.sun@qq.com>
// +----------------------------------------------------------------------
return [
    'name' => 'demo',
    'title' => 'demo',
    'description' => 'demo插件',
    'status' => 1,
    'url' => true,
    'author' => '清月曦',
    'version' => '0.1'
];


================================================
FILE: addons/putong/demo/controller/Admin.php
================================================
<?php
namespace addons\putong\demo\controller;

use think\addons\Controller;
use addons\putong\demo\model\AddonsPutongDemoConfig;

class Admin extends Controller
{
	public function _initialize(){
        // 判断是否登录,没有登录跳转登录页面
        if(!session('user_auth') || !session('user_auth_sign')){
            $this->redirect('admin/public/login');
        }
        if ($this->request->isPjax()){
            $this->view->engine->layout(false);
        }else{
            $this->view->engine->layout('./application/admin/view/layout_addons.html');
        }
	}
	
    //活动列表
    public function index()
    {
        $configList = AddonsPutongDemoConfig::with('file')->order('id desc')->paginate();
        // dump($configList->toArray());
        cookie("prevUrl", request()->url());

        $this->assign('configList', $configList);
        return view('admin_index');
    }

    //新增修改活动
    public function add()
    {   
        if (request()->isPost()){
            $data = input('post.');
            $data['status'] = input('?post.status') ? $data['status'] : 0;

            if(input('post.id')){
                $result = AddonsPutongDemoConfig::update($data);
            }else{
                $result = AddonsPutongDemoConfig::create($data);
            }

            if($result){
                $this->success("保存成功", cookie("prevUrl"));
            }else{
                $this->error('保存失败', cookie("prevUrl"));
            }
        }else{
            $id = input('param.id');
            if($id){
                $config = AddonsPutongDemoConfig::with('file')->find($id);
                $this->assign('config', $config);
            }

            return view('admin_add');
        }
    }

    //更新状态
    public function update()
    {
        $data = input('param.');

        $result = AddonsPutongDemoConfig::where('id','in',$data['id'])->update(['status' => $data['status']]);
        if($result){
            $this->success("修改成功", cookie("prevUrl"));
        }else{
            $this->error('修改失败', cookie("prevUrl"));
        }
    }


}


================================================
FILE: addons/putong/demo/controller/Index.php
================================================
<?php
namespace addons\putong\demo\controller;

use think\addons\Controller;

class Index extends Controller
{
	public function _initialize(){
        //插件资源文件
        $this->view->replace([
                '__CSS__'       =>  request()->root(true).'/addons/putong/demo/view/public/css',
                '__IMG__'       =>  request()->root(true).'/addons/putong/demo/view/public/image',
            ]);
	}
	
    public function index()
    {

        return view('index_index');
    }





}


================================================
FILE: addons/putong/demo/data/install.sql
================================================
--
-- 表的结构 `addons_putong_demo_config`
--

CREATE TABLE `addons_putong_demo_config` (
  `id` int(10) unsigned NOT NULL,
  `name` text NOT NULL COMMENT '活动名称',
  `file_id` int(11) NOT NULL COMMENT '活动图片',
  `sub` text NOT NULL COMMENT '活动描述',
  `detail` text NOT NULL COMMENT '活动详情',
  `timerange` text NOT NULL COMMENT '活动时间',
  `remark` text NOT NULL COMMENT '备注',
  `status` int(1) NOT NULL DEFAULT '1' COMMENT '1:开启0:关闭',
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

--
-- 转存表中的数据 `addons_putong_demo_config`
--

INSERT INTO `addons_putong_demo_config` (`id`, `name`, `file_id`, `sub`, `detail`, `timerange`, `remark`, `status`, `created_at`, `updated_at`) VALUES
(1, '活动名称', 1, '这里是活动描述', '', '2017-05-01 12:00:00 --- 2017-05-25 11:59:59', '', 1, '2017-05-01 10:25:26', '2017-05-01 12:12:04'),
(2, '活动2', 1, '活动描述', '<p>111</p>', '2017-05-01 12:00:00 --- 2017-05-11 11:59:59', '', 1, '2017-05-01 10:37:35', '2017-05-01 12:11:06');

================================================
FILE: addons/putong/demo/data/uninstall.sql
================================================
/* 
* @Author: qingyuexi
* @Date:   2016-10-04 14:24:05
* @Last Modified by:   qingyuexi
* @Last Modified time: 2016-02-18 15:11:31
*/
DROP TABLE IF EXISTS `addons_putong_demo_config`;


================================================
FILE: addons/putong/demo/info.html
================================================
<p>我是钩子模板</p>
<p>我是在钩子中生成的url</p>
<p>
<a href="{:addon_url('putong://demo/index/index')}">
	{:addon_url('putong://demo/admin/index', [], true, true)}
</a>
</p>
<p><font color="red">钩子处理结束啦</font></p>
<a href=""></a>


================================================
FILE: addons/putong/demo/model/AddonsPutongDemoConfig.php
================================================
<?php
namespace addons\putong\demo\model;
use think\Model;

class AddonsPutongDemoConfig extends Model
{

	protected $resultSetType = 'collection';
	protected $autoWriteTimestamp = 'timestamp';
    // 定义时间戳字段名
    protected $createTime = 'created_at';
    protected $updateTime = 'updated_at';

	public function file()
    {
        return $this->hasOne('app\common\model\File','id','file_id');
    }

}

================================================
FILE: addons/putong/demo/view/admin_add.html
================================================

<!-- Main content -->
<section class="content">
    <div class="row">
        <div class="col-md-12">
            <!-- general form elements -->
            <div class="box box-default">
                <div class="box-header with-border">
                    <h3 class="box-title">新增/修改活动</h3>
                </div>
                <!-- form start -->
                <form class="form-horizontal layui-form" action="{:addon_url('putong://demo/admin/add')}" method="post">
                    <div class="box-body">
                        <input class="form-control" name="id" placeholder="" value="{$config.id|default=0}"
                               type="hidden">
                        <div class="form-group">
                            <label class="col-sm-2 control-label">活动名称</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="name" placeholder="" value="{$config.name|default=''}"
                                       type="text">
                            </div>
                        </div>
                        <div class="form-group">
                            <label class="col-sm-2 control-label">活动描述</label>

                            <div class="col-sm-10">
                                <textarea class="form-control" name="sub" rows="3">{$config.sub|default=''}</textarea>
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">活动图片</label>

                            <div class="col-sm-10">
                                <div class="fileupload fileupload-new" data-provides="fileupload">
                                    <div class="fileupload-new img-thumbnail">
                                        {empty name="config.file_id"}
                                            <img src="__PUBLIC__/static/dist/img/noimage.gif">
                                        {else /}
                                            <img src="__PUBLIC__/uploads/{$config['file']['savepath']}{$config['file']['savename']}">
                                        {/empty}
                                        <input class="form-control" name="file_id" id="file_id" placeholder=""
                                               value="{$config.file_id|default=''}" type="hidden">

                                        <div class="edit_pic_mask">
                                            <i class="fa fa-plus-circle" onclick="imageUploader(this,false)"></i>
                                            <i class="fa fa-minus-circle" onclick="removeImage(this,false)"></i>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="control-label col-md-2">活动时间</label>
                            <div class="col-md-7">
                                <input class="form-control pull-right" name="timerange"
                                           id="reservationtime" value="{$config.timerange|default=''}" type="text" >
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">活动详情</label>

                            <div class="col-md-10">
                                <!-- 加载编辑器的容器 -->
                                <script id="UEditor" name="detail" type="text/plain" style="height:500px;">
                                    {$config.detail|default=''}
                                </script>
                            </div>
                        </div>

          
                        <div class="form-group">
                            <label class="control-label col-md-2">活动状态</label>

                            <div class="col-md-7">
                                <input type="checkbox" name="status" lay-skin="switch" value="1"
                                {notempty name="config.status"}checked{/notempty}>
                            </div>
                        </div>
                    </div>

                    <!-- /.box-body -->

                    <div class="box-footer">
                        <div class="col-sm-2">
                            <button class="btn btn-block btn-danger" lay-submit lay-filter="save">保存</button>
                        </div>

                        <div class="col-sm-2">
                            <button type="button" class="btn btn-block btn-default" onclick="history.go(-1)">取消
                            </button>
                        </div>
                    </div>
                </form>
            </div>
            <!-- /.box -->
        </div>
        <!--/.col (right) -->
    </div>
</section>
<script type="text/javascript">
	if('{$ads.position_id|default=''}'){
        $('select[name="position_id"]').val('{$ads.position_id|default=''}');
    }
    $(function () {
    	//实例化编辑器异步载入
        var editor = new UE.ui.Editor();
        editor.render("UEditor");

        //时间段插件
        $('#reservationtime').daterangepicker({
            timePicker: true,
            timePickerIncrement: 30,
            format: 'YYYY-MM-DD h:mm:ss',
            separator: ' --- ',
        });

        layui.use('form', function() {
            var form = layui.form();
            form.render(); //更新全部
        });
    });
</script>


================================================
FILE: addons/putong/demo/view/admin_index.html
================================================

<section class="content">
    <div class="row">
        <!-- /.col -->
        <div class="col-md-12">
            <div class="box box-default">
                <div class="box-header with-border">
                    <h3 class="box-title">活动列表</h3>
                </div>
                <div style="margin-top: 10px;">
                    <div class="btn-group" style="margin-left: 10px;">
                        <a href="{:addon_url('putong://demo/admin/add')}" class="btn btn-danger ">
                            新增活动
                        </a>
                    </div>
                </div>
                <div class="box-body table-responsive">
                    <table class="table table-bordered table-hover">
                        <tbody>
                        <tr>
                            <th>活动编号</th>
                            <th>活动名称</th>
                            <th>活动图片</th>
                            <th>活动时间</th>
                            <th>活动状态</th>
                            <th>操作</th>
                        </tr>
                        {volist name="configList" id="config" empty="暂时没有数据"}
                            <tr>
                                <td>{$config.id}</td>
                                <td>{$config.name}</td>
                                <td>
                                	{empty name="config.file_id"}
                                        <img style="width: 60px;" src="__PUBLIC__/static/dist/img/noimage.gif">
                                    {else /}
                                        <img style="width: 60px;"
                                        src="__PUBLIC__/uploads/{$config['file']['savepath']}{$config['file']['savename']}">
                                    {/empty}
                                </td>
                                <td>{$config.timerange}</td>
                                <td>
                                    {eq name="config.status" value="1"}
                                        <span class="label label-success">已开启</span>
                                    {else/}
                                        <span class="label label-default">已关闭</span>
                                    {/eq}
                                </td>
                                <td>
                                	<a href="{:addon_url('putong://demo/admin/add',array('id'=>$config['id']))}">编辑</a>
                                	{eq name="config.status" value="0"}
                                    <a href="{:addon_url('putong://demo/admin/update',array('id'=>$config['id'],'status'=>1))}">开启</a> 
                                    {/eq}
                                    {eq name="config.status" value="1"}
                                    <a href="{:addon_url('putong://demo/admin/update',array('id'=>$config['id'],'status'=>0))}">关闭</a> 
                                    {/eq}
                                </td>
                            </tr>
                        {/volist}
                        </tbody>
                    </table>
                </div>
                <div class="box-footer no-padding">
                    <div class="mailbox-controls">
                        <div class="pull-right">
                            {$configList->render()}
                        </div>
                    </div>
                </div>
            </div>
            <!-- /. box -->
        </div>
        <!-- /.col -->
    </div>
</section>

================================================
FILE: addons/putong/demo/view/index_index.html
================================================
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Examples</title>
    <meta name="description" content="">
    <meta name="keywords" content="">
    <link href="__CSS__/style.css" rel="stylesheet">
</head>

<body>
	这里是插件前台
</body>

</html>


================================================
FILE: addons/putong/demo/view/public_left.html
================================================
<li class="treeview">
    <a href="#">
        <i class="fa fa-dashboard"></i> <span>Demo</span> 
    </a>
    <ul class="treeview-menu">
        <li><a href="{:addon_url('putong://demo/admin/index')}"><i class="fa "></i>demo插件</a></li>
    </ul>
</li>

================================================
FILE: application/.htaccess
================================================
deny from all

================================================
FILE: application/admin/common.php
================================================
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 流年 <liu21st@gmail.com>
// +----------------------------------------------------------------------

// 应用公共文件














================================================
FILE: application/admin/config.php
================================================
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 流年 <liu21st@gmail.com>
// +----------------------------------------------------------------------

// 应用公共文件
return [
    'template'               => [
        // 模板引擎类型 支持 php think 支持扩展
        'type'         => 'Think',
        // 模板路径
        'view_path'    => '',
        // 模板后缀
        'view_suffix'  => 'html',
        // 模板文件名分隔符
        'view_depr'    => '_',
        // 模板引擎普通标签开始标记
        'tpl_begin'    => '{',
        // 模板引擎普通标签结束标记
        'tpl_end'      => '}',
        // 标签库标签开始标记
        'taglib_begin' => '{',
        // 标签库标签结束标记
        'taglib_end'   => '}',

        'tpl_cache'    => false,
    ],
];

================================================
FILE: application/admin/controller/AddonsController.php
================================================
<?php
/**
 * 
 * @authors 清月曦 (1604583867@qq.com)
 * @date    2017-05-01 13:21:11
 * @version $Id$
 */
namespace app\admin\controller;
use ZipArchive;
class AddonsController extends BaseController
{
	public $appUrl = "";
    private static $addonUrl = "http://addon.wemallshop.com";

    public function _initialize()
    {
        parent::_initialize();
        $this->appUrl = request()->root(true);
    }
    //插件列表
    public function index()
    {
    	$item = getDir(ADDON_PATH);

        $info = array();
        if($item){
            foreach ($item as $key => $value) {
                if (is_file(ADDON_PATH . '/' . $value . '/' . 'config.php')) {
                    $item_config = require ADDON_PATH . '/' . $value . '/' . 'config.php';
                    $info[$value] = $item_config;
                    $info[$value]['sub'] = array();
                }
                
                $addons = getDir(ADDON_PATH.$value);
                foreach ($addons as $k => $v) {
                    if ($v && is_file(ADDON_PATH . '/' . $value . '/' . $v . '/' . 'config.php')) {
                        $config = require ADDON_PATH . '/' . $value . '/'  . $v . '/' . 'config.php';
                        $config['addons_admin_url'] = addon_url($value . '://'.$v.'/admin/index',[]);
                        $config['addons_img_url'] = $this->appUrl .'/addons/' . $value . '/' . $v . '/' . $v .'.png';
                        
                        if (is_file(ADDON_PATH . '/' . $value . '/' . $v . '/' . 'install.lock')) {
                            $config['lock'] = 1;
                        }else{
                            $config['lock'] = 0;
                        }
                        
                        array_push($info[$value]['sub'], $config);
                    }
                }
            }
        }
        cookie("prevUrl", request()->url());

        $this->assign('item', $info);
        return view();
    }

    //应用商店
    public function shop()
    {
        $domain = request()->domain();
        $this->assign('domain', $domain);
        return view();
    }

    //下载解压插件
    public function getFileDownload()
    {
        $data = input('param.');
        
        $path = $data['path'];
        $uuid = $data['uuid'];
        $type = $data['type'];
        $sort = $data['sort'];
        if($sort == 'install'){
            $filePath = self::$addonUrl . $path . '?order_uuid=' . $uuid . '&type=' . $type;
        }else{
            $filePath = self::$addonUrl . $path . '?uuid=' .$uuid . '&type=' . $type;
        }

        $zipPath = "./addons.zip";
        http_down($filePath, $zipPath);

        $re = unzip($zipPath,'./');
        if($re){
            return json(['data' => false, 'msg' => '恭喜您,下载完成!', 'code' => 1]);
        }else{
            return json(['data' => false, 'msg' => '下载安装失败', 'code' => 0]);
        }
    }
    //自动安装插件
    public function compare()
    {
        $item = getDir(ADDON_PATH);
        if($item){
            foreach ($item as $key => $value) {
                $addons = getDir(ADDON_PATH.$value);
                foreach ($addons as $k => $v) {
                    $addons_path = ADDON_PATH . $value . '/' . $v;
                    //安装sql
                    if (!file_exists($addons_path . '/install.lock')) {
                        $install_sql = $addons_path . '/data/install.sql';
                        try {
                            if (file_exists($install_sql)) {
                                execute_sql_file($install_sql);
                                file_put_contents($addons_path . '/install.lock','');
                                // unlink('./update.sql');
                            }
                        } catch (\Exception $e) {
                            // 这是进行异常捕获
                            return json(['data' => false, 'msg' => $e->getMessage(), 'code' => 0]);
                        }
                    }
                    //升级sql
                    $update_sql = $addons_path . '/update.sql';
                    try {
                        if (file_exists($update_sql)) {
                            execute_sql_file($update_sql);
                            unlink('./update.sql');
                        }
                    } catch (\Exception $e) {
                        // 这是进行异常捕获
                        return json(['data' => false, 'msg' => $e->getMessage(), 'code' => 0]);
                    }
                }
            }
        }
        return json(['data' => false, 'msg' => '恭喜您,安装完成!', 'code' => 1]);
    }





}

================================================
FILE: application/admin/controller/BaseController.php
================================================
<?php
/**
 * 
 * @authors 清月曦 (1604583867@qq.com)
 * @date    2017-05-01 11:27:23
 * @version $Id$
 */
namespace app\admin\controller;
use think\Controller;

class BaseController extends Controller
{
    public function _initialize(){
        // 判断是否登录,没有登录跳转登录页面
        if(!session('user_auth') || !session('user_auth_sign')){
            $this->redirect('public/login');
        }

        $activeRouter = request()->module() . '/' . request()->controller() . '/' . request()->action();
        // dump(strtolower($activeRouter));
        if(!in_array(strtolower($activeRouter), array("admin/help/index","admin/addons/getfiledownload","admin/addons/compare"))){
            $auth = new \com\Auth();
            if(!$auth->check($activeRouter, session('user_auth')['uid'])){
                return $this->error('你没有权限',cookie("prevUrl"));
            }
        }

        if ($this->request->isPjax()){
			$this->view->engine->layout(false);
		}else{
			$this->view->engine->layout(true);
		}
    }



}

================================================
FILE: application/admin/controller/FileController.php
================================================
<?php
namespace app\admin\controller;

class FileController extends BaseController
{
	// 图片列表
	public function index(){
		$filelist = model('File')->order('id', 'desc')->paginate(12);
		$page = $filelist->render();
		cookie("imgUrl", $this->request->url());
		
		$this->assign('filelist', $filelist);
		$this->assign('page', $page);
		// 临时关闭当前模板的布局功能
        $this->view->engine->layout(false);
		return view();
	}
	//上传图片
	public function upload(){
		// 获取表单上传文件
        $files = $this->request->file('image');
        $data = array();
        foreach($files as $file){
        	// 移动到框架应用根目录/public/uploads/ 目录下
	        $info = $file->validate(['ext'=>'jpg,png,gif,jpeg'])->move(ROOT_PATH . 'public' . DS . 'uploads');
	        if ($info) {
	            $item = array();
	            $item['name'] = $info->getInfo('name');
	            $item['type'] = $info->getInfo('type');
	            $item['savename'] = $info->getFilename();
            	$item['savepath'] = date("Ymd") .'/';
            	array_push($data,$item);
	        } else {
	            // 上传失败获取错误信息
	            $this->error($file->getError());
	        }
        }   
        model('File')->saveAll($data);
        $this->success('文件上传成功',cookie("imgUrl"));     
	}


}

================================================
FILE: application/admin/controller/HelpController.php
================================================
<?php
namespace app\admin\controller;

class HelpController extends BaseController
{
    //使用帮助
    public function index(){
       
        return view();
    }
}

================================================
FILE: application/admin/controller/IndexController.php
================================================
<?php
namespace app\admin\controller;
use think\helper\Time;
use app\common\model\User;
use app\common\model\Analysis;
class IndexController extends BaseController
{
    public function index()
    {
    	//今日用户
        $todayUser     = User::whereTime('created_at', 'today')->count();
        $this->assign("todayUser", $todayUser);
        //本周用户
        $weekUser      = User::whereTime('created_at', 'week')->count();
        $this->assign("weekUser", $weekUser);
        //本月用户
        $monthUser     = User::whereTime('created_at', 'month')->count();
        $this->assign("monthUser", $monthUser);
        //总用户
        $totalUser     = User::count();
        $this->assign("totalUser", $totalUser);

		$line_data = $this->getDateAnalysis();

		$newUserLine = array();
        foreach ($line_data as $key => $value) {
            $newUserLine[$key] = $value["registers"];
        }
        $this->assign("newUserLine", json_encode($newUserLine));


        $newsList = getHttpResponseGET('http://www.wemallshop.com/cms/index/news');

        $this->assign("newsList", json_decode($newsList,true));
        $this->assign("url", 'http://www.wemallshop.com/');

    	cookie("prevUrl", request()->url());
        return view();
    }

	public function getDateAnalysis(){
        $analysis = Analysis::whereTime('created_at', 'between', Time::dayToNow(18, true))
                  ->order('id desc')
                  ->select()
                  ->toArray();

        $date = array();
        for ($i = 18; $i >= 0; $i--) {
            array_push($date, date("Y-m-d", strtotime("-$i day")));
        }
        $this->assign("date", json_encode($date));

        $line_data = array();
        foreach ($date as $key => $value) {
            $line_data[$key] = array(
                "id" => "0",
                "orders" => "0",
                "trades" => "0",
                "registers" => "0",
                "users" => "0",
                "date" => "0",
            );
            foreach ($analysis as $k => $v) {
                if ($v["date"] == $value) {
                    $line_data[$key] = $v;
                }
            }
        }
        return $line_data;
	}




}


================================================
FILE: application/admin/controller/PublicController.php
================================================
<?php
/**
 * 
 * @authors 清月曦 (1604583867@qq.com)
 * @date    2017-05-01 11:29:17
 * @version $Id$
 */
namespace app\admin\controller;
use think\Controller;

use app\common\model\Admin;
class PublicController extends Controller
{
    /**
     * 后台登录
     * @author 清月曦 (1604583867@qq.com)
     * @date    2017-05-01 11:29:18
     * @return   [type]                   [login]
     */
	public function login()
    {
    	if (request()->isPost()){
            $data = input('post.');
            if (!captcha_check($data['verify'])) {
                return json(['status' => 0, 'msg' => '验证码不正确!']);
            }
            $uid = (new Admin)->login($data['username'], $data['password']);

            if($uid > 0){
                /*记录session和cookie*/
                $group_id = Admin::where('id', $uid)->value('group_id');

                $auth = [
                    'uid'=>$uid,
                    'group_id'=>$group_id,
                    'username'=>$data['username'],
                    'last_login_time'=>date("Y-m-d H:i:s"),
                ];
                session('user_auth',$auth);
                session('user_auth_sign', data_auth_sign($auth));
                return json(['status' => 1, 'msg' => '登录成功!']);
            }else{
                switch ($uid) {
                    case '-1':
                        $info = ['status' => 0, 'msg' => '用户不存在或被禁用'];
                        break;
                    case '-2':
                        $info = ['status' => 0, 'msg' => '密码错误'];
                        break;  
                    default:
                        $info = ['status' => 0, 'msg' => '未知错误'];
                        break;
                }
                return json($info);
            }
    	}else{
            // 检测登录状态
            if(session('user_auth') && session('user_auth_sign')){
                $this->redirect('index/index');
            }
    		return view();
    	}
    }
    /**
     * 退出登录状态
     * @author 清月曦 (1604583867@qq.com)
     * @date    2017-05-01 11:29:19
     * @return   [type]                   [out]
     */
    public function loginout(){
        session(null);
        $this->redirect('index/index');
    }
}

================================================
FILE: application/admin/controller/WechatController.php
================================================
<?php
namespace app\admin\controller;

use think\Controller;

class WechatController extends Controller
{
    public static $weObj;
    public static $appUrl;
    public static $revData;
    public static $revFrom;

    public function _initialize(){
        self::$appUrl = request()->root(true);
    }

    public function init()
    {
        vendor("dodgepudding.wechat-php-sdk.wechat#class");
        $config = model('WxConfig')->find()->toArray();

        $options = array(
            'token' => $config ["token"], //填写你设定的key
            'encodingaeskey' => $config ["encodingaeskey"], //填写加密用的EncodingAESKey
            'appid' => $config ["appid"], //填写高级调用功能的app id
            'appsecret' => $config ["appsecret"] //填写高级调用功能的密钥
        );

        self::$weObj = new \Wechat ($options);
    }

    public function index()
    {
        $this->init();

        if (request()->isGet()) {
            ob_clean();
            self::$weObj->valid();
        } else {
            if (!self::$weObj->valid(true)) {
                die('no access!!!');
            }
        }

        $type = self::$weObj->getRev()->getRevType();
        self::$revData = self::$weObj->getRevData();
        self::$revFrom = self::$weObj->getRevFrom();
        
        $this->check($type);
    }

    public function check($type)
    {
        switch ($type) {
            case \Wechat::MSGTYPE_TEXT:
                $this->checkKeywords();
                break;
            case \Wechat::MSGTYPE_EVENT:
                $this->checkEvents(self::$revData['Event']);
                break;
            case \Wechat::MSGTYPE_IMAGE:
                self::$weObj->text('本系统暂不支持图片信息!')->reply();
                break;
            default:
                self::$weObj->text('本系统暂时无法识别您的指令!')->reply();
        }
    }

    public function checkEvents($event)
    {
        $openId = self::$revData['FromUserName'];
        
        switch ($event) {
            case 'subscribe':
                $this->checkUser($openId);
                $this->checkKeyWords('subscribe');
                break;
            case 'unsubscribe':
                $this->updateUser($openId);
                break;
            case 'CLICK':
                $this->checkKeyWords(self::$revData['EventKey']);
                break;

        }
    }

    public function checkKeyWords($key = '')
    {
        $key = $key ? $key : self::$weObj->getRev()->getRevContent();
        if ($key == 'qqkf') {
            $reply = model('WxReply')->where('key',$key)->find();
            $qq = $reply["remark"];
            $str = "<a href='http://wpa.qq.com/msgrd?v=3&uin=" . $qq . "&site=qq&menu=yes&from=singlemessage'>" . htmlspecialchars_decode('点击联系QQ客服') . "</a>";
            self::$weObj->text($str)->reply();
            exit();
        }

        $reply = model('WxReply')->where('key',$key)->find();
        if ($reply) {
            if ($reply["type"] == "news") {
                $newsArr = array(
                    array(
                        'Title' => $reply["title"],
                        'Description' => $reply["description"],
                        'PicUrl' => self::$appUrl . '/public/uploads/' . $reply["savepath"] . $reply["savename"],
                        'Url' => $reply["url"]
                    )
                );
                self::$weObj->news($newsArr)->reply();
                exit();
            } else {
                self::$weObj->text($reply["title"])->reply();
                exit();
            }
        } else {
            // self::$weObj->text("请核对关键词!")->reply();

            $this->toKeyUnknow($key);
        }
    }

    public function toKeyUnknow($key)
    {
        // self::$weObj->text("未找到此关键词匹配!")->reply();
        //或取所有客服
        $kfList=self::$weObj->getCustomServiceKFlist();
        
        $wx_kefu = model('WxKefu')->find();
        
        $kf_account = '';
        if($wx_kefu['status']){
            foreach ($kfList['kf_list'] as $k => $value) { 
                if($value['kf_wx'] == $wx_kefu['kefu']){
                    $kf_account = $value['kf_account'];
                }
            } 
        }else{
            //随即客服
            $num=rand(0,count($kfList['kf_list'])-1);
            $kf_account = $kfList['kf_list'][$num]['kf_account'];
        }

        //获取用户openid;
        $openid = self::$revData['FromUserName'];
        
        self::$weObj->createKFSession($openid,$kf_account,$key);
    }

    public function checkUser($openId)
    {
        $oauth_wx = model('OauthWx')->where('openid',"$openId")->find();
  
        if ($oauth_wx) {
            model('OauthWx')->update(['id' => $oauth_wx['id'], 'subscribe' => 1]);
        }else{
            $userInfo  = self::$weObj->getUserInfo($openId);
            $avater_id = action('api/PublicController/getavater',['headimgurl' => $userInfo['headimgurl']]);
            $user = model('User')->create([
                'avater_id' => $avater_id,
                'username' => $userInfo['nickname'],
            ]);
            $oauth_wx = model('OauthWx')->create([
                    'user_id' => $user->id,
                    'openid' => $openId,
                    'nickname' => $userInfo['nickname'],
                    'sex' => $userInfo['sex'],
                    'city' => $userInfo['city'],
                    'country' => $userInfo['country'],
                    'province' => $userInfo['province'],
                    'language' => $userInfo['language'],
                    'headimgurl' => $userInfo['headimgurl'],
                    'subscribe_time' => date("Y-m-d h:i:s"),
                    'subscribe' => 1,
                ]);

            model("Analysis")->add(0, 0, 1, 0); //统计
        }
    }

    public function updateUser($openId)
    {
        $oauth_wx = model('OauthWx')->where('openid',"$openId")->find();
        if ($oauth_wx) {
            model('OauthWx')->update(['id' => $oauth_wx['id'], 'subscribe' => 0]);
        }
    }

    public function getQRCode()
    {
        $this->init();
        $ticket = self::$weObj->getQRCode("1", 1);
        $qrcode = self::$weObj->getQRUrl($ticket["ticket"]);
        if ($qrcode) {
            model('Config')->update(['id' => 1, 'qrcode' => $qrcode]);
            $this->success("生成二维码成功", "admin/config/shop");
        } else {
            $this->error("生成二维码失败", "admin/config/shop");
        }
    }

    public function getMenu()
    {
        $this->init();

        self::$weObj->getMenu();
    }

    public function createWxMenu()
    {
        $this->init();

        $menulist = model('WxMenu')->all()->toArray();
        $menutree = list_to_tree($menulist, 'id', 'pid', 'sub', 'rank', 'desc');

        $newmenu["button"] = array();
        foreach ($menutree as $k => $v) {
            if ($v["type"] == "view") {
                if ($v['sub']) {
                    $sub_button = array();
                    foreach ($v["sub"] as $kk => $sub) {
                        if ($sub["type"] == "view") {
                            array_push($sub_button, array('type' => 'view', 'name' => $sub["name"], 'url' => $sub["url"]));
                        }else{
                            array_push($sub_button, array('type' => 'click', 'name' => $sub["name"], 'key' => $sub["key"]));
                        }
                    }
                    array_push($newmenu["button"], array('name' => $v["name"], 'sub_button' => $sub_button));
                }else{
                    array_push($newmenu["button"], array('type' => 'view', 'name' => $v["name"], 'url' => $v["url"]));
                }
            }else{
                if ($v['sub']) {
                    $sub_button = array();
                    foreach ($v["sub"] as $kk => $sub) {
                        if ($sub["type"] == "view") {
                            array_push($sub_button, array('type' => 'view', 'name' => $sub["name"], 'url' => $sub["url"]));
                        } else {
                            array_push($sub_button, array('type' => 'click', 'name' => $sub["name"], 'key' => $sub["key"]));
                        }
                    }
                    array_push($newmenu["button"], array('name' => $v["name"], 'sub_button' => $sub_button));
                } else {
                    array_push($newmenu["button"], array('type' => 'click', 'name' => $v["name"], 'key' => $v["key"]));
                }
            }
        }

        $result = self::$weObj->createMenu($newmenu);
        if ($result) {
            $this->success("重新创建菜单成功!", "admin/wx/menu");
        } else {
            $this->error("重新创建菜单失败!", "admin/wx/menu");
        }
    }

    public function addTplMessageId($id)
    {
        $this->init();

        $tempMsg = model('WxTplmsg')->where('template_id_short',$id)->find();
        if ($tempMsg["template_id"]) {
            $template_id = $tempMsg["template_id"];
        } else {
            $template_id = self::$weObj->addTemplateMessage($id);
            if ($template_id) {
                model('WxTplmsg')->update(['id' => $tempMsg['id'], 'template_id' => $template_id]);
            }
        }
        $tempMsg = model('WxTplmsg')->where('template_id_short',$id)->find();

        return $tempMsg;
    }

    //新订单通知
    public function sendTplMsgOrder($order_id)
    {
        $this->init();

        $tempMsg = $this->addTplMessageId("OPENTM201785396");
        $order = model('Order')->with('user.wx,contact,delivery,detail')->find($order_id)->toArray();
        
        $msg = array();
        $msg["touser"] = $order['user']['wx']['openid'];
        $msg["template_id"] = $tempMsg['template_id'];
        $msg["url"] = "";
        $msg["topcolor"] = "";
        $msg["data"] = array(
            "first" => array(
                "value" => $tempMsg['title'],
                "color" => "#ff0000"
            ),
            "keyword1" => array(
                "value" => $order["orderid"],
                "color" => "#000000"
            ),
            "keyword2" => array(
                "value" => $order["payment"] . "," . $order["pay_status"],
                "color" => "#000000"
            ),
            "keyword3" => array(
                "value" => $order["totalprice"],
                "color" => "#000000"
            ),
            "keyword4" => array(
                "value" => $order["created_at"],
                "color" => "#000000"
            ),
            "keyword5" => array(
                "value" => "姓名:" . $order["contact"]["name"] . ",电话:" . $order["contact"]["phone"] . ",地址: " . $order["contact"]["province"] . $order["contact"]["city"] . $order["contact"]["address"],
                "color" => "#000000"
            ),
            "remark" => array(
                "value" => $tempMsg['remark'].$order["remark"],
                "color" => "#ff0000"
            ),
        );
        if($tempMsg['status']){
            self::$weObj->sendTemplateMessage($msg);
        }
        // $this->sendTplMessageOrderAdmin($order_id);
    }
    
    //员工通知
    public function sendTplMessageOrderAdmin($order_id)
    {
       
        $this->init();
         
        $order = model('Order')->with('user.wx,contact,delivery,detail.product')->find($order_id)->toArray();
       
        $tempMsg = $this->addTplMessageId("OPENTM201785396");

        $shop = model("Config")->find();
       
        $employee = explode(',', $shop["employee"]);
      
        foreach ($employee as $key => $value) {
            if(!$value){
                continue;
            }
        
            $openid = model('OauthWx')->where('user_id',$value)->value('openid');
            $data = '{
                "touser":"' . $openid . '",
                "template_id":"' . $tempMsg['template_id'] . '",
                "url":"' . "http://" . I("server.HTTP_HOST") . U("App/Admin/order",array("id"=>$order_id)).'",
                "topcolor":"#FF0000",
                "data":{
                    "first": {
                        "value":"客户新订单提醒",
                        "color":"#FF0000"
                        },
                    "keyword1":{
                        "value":"' . $order["orderid"] . '",
                        "color":"#0000ff"
                        },
                    "keyword2":{
                        "value":"' . $order["payment"] . '",
                        "color":"#0000ff"
                        },
                    "keyword3":{
                        "value":"' . $order["totalprice"] . '",
                        "color":"#0000ff"
                        },
                    "keyword4":{
                        "value":"' . $order["create_time"] . '",
                        "color":"#0000ff"
                        },
                    "keyword5":{
                        "value":"' . $order["contact"]["name"] . '-' . $order["contact"]["phone"] . '-' . $order["contact"]["province"] . $order["contact"]["city"] . $order["contact"]["address"] . '",
                        "color":"#0000ff"
                        },
                    "remark":{
                        "value":"配送时间:' .$order["delivery_time"]."备注:". $order["remark"] . '",
                        "color":"#0000ff"
                        }
                }
            }';

            $data = json_decode($data, true);
            self::$weObj->sendTemplateMessage($data);
        }
    }
    //订单支付成功通知
    public function sendTplMsgPay($order_id)
    {
        $this->init();

        $tempMsg = $this->addTplMessageId("OPENTM207791277");
        $order = model('Order')->with('user.wx')->find($order_id)->toArray();

        $msg = array();
        $msg["touser"] = $order["user"]['wx']["openid"];
        $msg["template_id"] = $tempMsg['template_id'];
        $msg["url"] = "";
        $msg["topcolor"] = "";
        $msg["data"] = array(
            "first" => array(
                "value" => $tempMsg['title'],
                "color" => "#ff0000"
            ),
            "keyword1" => array(
                "value" => $order["orderid"],
                "color" => "#000000"
            ),
            "keyword2" => array(
                "value" => $order["totalprice"].'元',
                "color" => "#000000"
            ),
            "remark" => array(
                "value" => $tempMsg["remark"],
                "color" => "#ff0000"
            ),
        );
        
        if($tempMsg['status']){
            self::$weObj->sendTemplateMessage($msg);
        }
    }

    //订单发货提醒
    public function sendTplMsgOrderPublish($order_id)
    {
        $this->init();
        $tempMsg = $this->addTplMessageId("OPENTM207763419");
        $order = model('Order')->with('user.wx,detail.product')->find($order_id)->toArray();
        
        $detail = '';
        foreach ($order['detail'] as $key => $value) {
            if($value['sku_name']){
                $detail .= '【'.$value['name'].'('.$value['sku_name'].')'.$value['price'].'元x'.$value['num'].'份】';
            }else{
                $detail .= '【'.$value['name'].$value['price'].'元x'.$value['num'].'份】';
            }
        }

        $msg = array();
        $msg["touser"] = $order['user']['wx']["openid"];
        $msg["template_id"] = $tempMsg['template_id'];
        $msg["url"] = "";
        $msg["topcolor"] = "";
        $msg["data"] = array(
            "first" => array(
                "value" => $tempMsg['title'],
                "color" => "#ff0000"
            ),
            "keyword1" => array(
                "value" => '合计'.$order["totalprice"].'元',
                "color" => "#000000"
            ),
            "keyword2" => array(
                "value" => $detail,
                "color" => "#000000"
            ),
            "remark" => array(
                "value" => $tempMsg["remark"].'|'.$order["remark"],
                "color" => "#ff0000"
            ),
        );

        if($tempMsg['status']){
            self::$weObj->sendTemplateMessage($msg);
        }
    }



}

================================================
FILE: application/admin/controller/article/CategoryController.php
================================================
<?php
namespace app\admin\controller\article;
use app\admin\controller\BaseController;

use app\common\model\ArticleCategory;
use app\common\model\Article;
class CategoryController extends BaseController
{
	//文章分类
	public function index(){
		$categorylist = ArticleCategory::all()->toArray();
		
		cookie("prevUrl", request()->url());

		$tree = list_to_tree($categorylist, 'id', 'pid', 'sub');

		$this->assign('categorylist', $tree);
		return view();
	}

	//新增修改文章分类
	public function add(){
		if (request()->isPost()){
			$data = input('post.');
			$data['status'] = input('?post.status') ? $data['status'] : 0;
			
			if(input('post.id')){
				$result = ArticleCategory::update($data);
			}else{
				$result = ArticleCategory::create($data);
			}

			if($result){
				$this->success("保存成功", cookie("prevUrl"));
			}else{
				$this->error('保存失败', cookie("prevUrl"));
			}
		}else{
			$id = input('param.id');
			if($id){
				$category = ArticleCategory::find($id);
				$this->assign('category', $category);
			}
			$parentcategory = ArticleCategory::all(['pid'=>0]);
            $this->assign("parentcategory", $parentcategory);
			return view();
		}
	}

	//改变文章类型状态
	public function update(){
		$data = input('param.');
		$result = ArticleCategory::where('id','in',$data['id'])->update(['status' => $data['status']]);
		Article::where('category_id',$data['id'])->update(['status' => $data['status']]);
		if($result){
			$this->success("修改成功", cookie("prevUrl"));
		}else{
			$this->error('修改失败', cookie("prevUrl"));
		}
	}

	//删除文章分类
	public function del(){
		$ids = input('param.id');
		
		$result = ArticleCategory::destroy($ids);
		if($result){
			$this->success("删除成功", cookie("prevUrl"));
		}else{
			$this->error('删除失败', cookie("prevUrl"));
		}
	}
}

================================================
FILE: application/admin/controller/article/IndexController.php
================================================
<?php
namespace app\admin\controller\article;
use app\admin\controller\BaseController;

use app\common\model\Article;
use app\common\model\ArticleCategory;
class IndexController extends BaseController
{
	//文章列表
	public function index(){
		$articlelist = Article::with('category')->order('id desc')->paginate();
		
		cookie("prevUrl", request()->url());

		$this->assign('articlelist', $articlelist);
		return view();
	}

	//新增修改文章
	public function add(){
		if (request()->isPost()){
			$data = input('post.');
			$data['status'] = input('?post.status') ? $data['status'] : 0;
			
			if(input('post.id')){
				$result = Article::update($data);
			}else{
				$result = Article::create($data);
			}

			if($result){
				$this->success("保存成功", cookie("prevUrl"));
			}else{
				$this->error('保存失败', cookie("prevUrl"));
			}
		}else{
			$id = input('param.id');
			if($id){
				$article = Article::find($id);
				$this->assign('article', $article);
			}
			$category = ArticleCategory::all()->toArray();
			$tree = list_to_tree($category, 'id', 'pid', 'sub');
            $this->assign("category", $tree);
			return view();
		}
	}

	//改变文章状态
	public function update(){
		$data = input('param.');
		$result = Article::where('id','in',$data['id'])->update(['status' => $data['status']]);
		if($result){
			$this->success("修改成功", cookie("prevUrl"));
		}else{
			$this->error('修改失败', cookie("prevUrl"));
		}
	}

	//删除文章
	public function del(){
		$ids = input('param.id');
		
		$result = Article::destroy($ids);
		if($result){
			$this->success("删除成功", cookie("prevUrl"));
		}else{
			$this->error('删除失败', cookie("prevUrl"));
		}
	}


}

================================================
FILE: application/admin/controller/auth/AdminController.php
================================================
<?php
namespace app\admin\controller\auth;
use app\admin\controller\BaseController;

use app\common\model\Admin;
use app\common\model\AuthGroupAccess;
class AdminController extends BaseController
{ 
    
	//管理员列表
	public function index(){
		$adminlist = Admin::all();

		cookie("prevUrl", request()->url());

		$this->assign('adminlist', $adminlist);
		return view();
	}
	//新增修改用管理员
	public function add(){
		if (request()->isPost()){
			$data = input('post.');
			if($data['password']){
				$data['password'] = md5($data['password']);
			}else{
				unset($data['password']);
			}
			if($data['id']){
				$oid = Admin::where('username', $data['username'])->value('id');
				if ($oid && $oid != $data['id']){
					$this->error('用户名已存在', cookie("prevUrl"));
				}
				if($data['id'] == 1){
					if($data['id'] == session('user_auth.uid')){
						$result = Admin::update($data);
					}else{
						$this->error('非超管不能编辑', cookie("prevUrl"));
					}
				}else{
					$result = Admin::update($data);
					AuthGroupAccess::where('uid',$data['id'])->update(['group_id' => $data['group_id']]);
				}
			}else{
				$Admin = new Admin;
				$result = $Admin->validate(true)->save($data);
				if(false === $result){
				    // 验证失败 输出错误信息
				    $this->error($Admin->getError(), cookie("prevUrl"));
				}
				$uid = $Admin->getLastInsID();
				AuthGroupAccess::create([
					'uid' =>  $uid,
					'group_id' =>  $data['group_id'],
				]);
			}

			if($result){
				$this->success("保存成功", cookie("prevUrl"));
			}else{
				$this->error('保存失败', cookie("prevUrl"));
			}
		}else{
			$id = input('param.id');
			if($id){
				$admin = Admin::find($id);
				$this->assign('admin', $admin);
			}
			$group = model("AuthGroup")->all();
            $this->assign("group", $group);
			return view();
		}
	}
	//删除用户组
	public function del(){
		$ids = input('param.id');
		if($ids == 1){
			$this->error('默认管理员不允许删除', cookie("prevUrl"));
		}
		$result = Admin::destroy($ids);
		if($result){
			AuthGroupAccess::where('uid','in',$ids)->delete();
			$this->success("删除成功", cookie("prevUrl"));
		}else{
			$this->error('删除失败', cookie("prevUrl"));
		}
	}

	//改变管理员状态
	public function update(){
		$data = input('param.');
		if($data['id'] == 1){
			$this->error('默认管理员不允许操作', cookie("prevUrl"));
		}
		$result = Admin::where('id', $data['id'])->update(['status' => $data['status']]);
		if($result){
			$this->success("修改成功", cookie("prevUrl"));
		}else{
			$this->error('修改失败', cookie("prevUrl"));
		}
	}




}

================================================
FILE: application/admin/controller/auth/GroupController.php
================================================
<?php
namespace app\admin\controller\auth;
use app\admin\controller\BaseController;

use app\common\model\AuthGroup;
use app\common\model\AuthRule;
class GroupController extends BaseController
{
	//用户组列表
	public function index(){
		$grouplist = AuthGroup::all();

		cookie("prevUrl", request()->url());

		$this->assign('grouplist', $grouplist);
		return view();
	}

	//新增修改用户组
	public function add(){
		if (request()->isPost()){
			$data = input('post.');
			$data['rules'] = implode(',',$data['rules']);

			if(input('post.id')){
				if(input('post.id') == 1){
					$this->error('默认用户组不允许修改', cookie("prevUrl"));
				}else{
					$result = AuthGroup::update($data);
				}
			}else{
				$result = AuthGroup::create($data);
			}

			if($result){
				$this->success("保存成功", cookie("prevUrl"));
			}else{
				$this->error('保存失败', cookie("prevUrl"));
			}
		}else{
			$id = input('param.id');
			if($id){
				$group = AuthGroup::find($id);
				$this->assign('group', $group);
			}
			$rule = AuthRule::all();
            $this->assign("rule", $rule);
			return view();
		}
	}
	//删除用户组
	public function del(){
		$ids = input('param.id');
		if($ids == 1){
			$this->error('默认用户组不允许删除', cookie("prevUrl"));
		}
		$result = AuthGroup::destroy($ids);
		if($result){
			$this->success("删除成功", cookie("prevUrl"));
		}else{
			$this->error('删除失败', cookie("prevUrl"));
		}
	}
	//改变用户组状态
	public function update(){
		$data = input('param.');
		if($data['id'] == 1){
			$this->error('默认用户组不允许操作', cookie("prevUrl"));
		}
		$result = AuthGroup::where('id', $data['id'])->update(['status' => $data['status']]);
		if($result){
			$this->success("修改成功", cookie("prevUrl"));
		}else{
			$this->error('修改失败', cookie("prevUrl"));
		}
	}


}

================================================
FILE: application/admin/controller/config/MailController.php
================================================
<?php
namespace app\admin\controller\config;
use app\admin\controller\BaseController;

class MailController extends BaseController
{
	//邮件配置
	public function index(){
		if (request()->isPost()){
			$data = input('post.');

			$result = model('Mail')->update($data);
			if($result){
				$this->success("保存成功", cookie("prevUrl"));
			}else{
				$this->error('保存失败', cookie("prevUrl"));
			}
		}else{
			$mail = model('Mail')->find();

			cookie("prevUrl", request()->url());

			$this->assign('mail', $mail);
			return view();
		}
	}

}

================================================
FILE: application/admin/controller/config/SiteController.php
================================================
<?php
namespace app\admin\controller\config;
use app\admin\controller\BaseController;

use app\common\model\Config;
class SiteController extends BaseController
{ 
    
	//站点设置
	public function index(){
		if (request()->isPost()){
			$data = input('post.');
			$result = Config::update($data);
			if($result){
				$this->success("保存成功", cookie("prevUrl"));
			}else{
				$this->error('保存失败', cookie("prevUrl"));
			}
		}else{
			$config = Config::with('logo')->find();

			cookie("prevUrl", request()->url());

			$this->assign('config', $config);
			return view();
		}
	}


}

================================================
FILE: application/admin/controller/config/SmsController.php
================================================
<?php
namespace app\admin\controller\config;
use app\admin\controller\BaseController;

class SmsController extends BaseController
{
	//邮件配置
	public function index(){
		if (request()->isPost()){
			$data = input('post.');

			$result = model('Sms')->update($data);
			if($result){
				$this->success("保存成功", cookie("prevUrl"));
			}else{
				$this->error('保存失败', cookie("prevUrl"));
			}
		}else{
			$sms = model('Sms')->find();

			cookie("prevUrl", request()->url());

			$this->assign('sms', $sms);
			return view();
		}
	}

}

================================================
FILE: application/admin/controller/tpl/MailController.php
================================================
<?php
namespace app\admin\controller\tpl;
use app\admin\controller\BaseController;

class MailController extends BaseController
{
	//邮件模版列表
	public function index(){
		$maillist = model('MailTpl')->paginate();
		// halt($maillist->toArray());
		cookie("prevUrl", $this->request->url());

		$this->assign('maillist', $maillist);
		return view();
	}

	//新增修改邮件模版
	public function add(){
		if (request()->isPost()){
			$data = input('post.');
			if($data['id']){
				$result = model('MailTpl')->update($data);
			}else{
				$result = model('MailTpl')->create($data);
			}
			if($result){
				$this->success("保存成功", cookie("prevUrl"));
			}else{
				$this->error('保存失败', cookie("prevUrl"));
			}
		}else{
			$id = input('param.id');
			if($id){
				$mail = model('MailTpl')->find($id);
				$this->assign('mail', $mail);
			}
			return view();
		}
	}

	//改变邮件模版状态
	public function update(){
		$data = input('param.');
		$result = model('MailTpl')->where('id','in',$data['id'])->update(['status' => $data['status']]);
		if($result){
			$this->success("修改成功", cookie("prevUrl"));
		}else{
			$this->error('修改失败', cookie("prevUrl"));
		}
	}

	//发送测试邮件
    public function send()
    {
    	$id = input('param.id');
    	$mail_tpl = model('MailTpl')->find($id);

    	$toemail = $mail_tpl['mail'];  
		$name = $mail_tpl['mail'];//收件人昵称
		$subject='邮件测试';
		$code = mt_rand(100000, 999999);//验证码
		// $mail_tpl = model('MailTpl')->where('type', 'register')->find()->toArray();
		$content = str_replace("\$code",$code,$mail_tpl['content']);
		$result = send_mail($toemail,$name,$subject,$content);
		if($result){
            $this->success("发送成功", cookie("prevUrl"));
        }else{
        	$this->success("发送失败", cookie("prevUrl"));
        }
    }









}

================================================
FILE: application/admin/controller/tpl/ShopController.php
================================================
<?php
namespace app\admin\controller\tpl;
use app\admin\controller\BaseController;

class ShopController extends BaseController
{
	//商城模版设置
	public function index(){
		if (input('param.theme')){
			$theme = input('param.theme');
			
			model('Config')->where('id',1)->setField('theme', $theme);
			$this->success("设置成功", cookie("prevUrl"));
		}else{
			$config = model('Config')->find();
			cookie("prevUrl", $this->request->url());

			$themedir = getDir("./tpl/theme");

			$this->assign("rootUrl", request()->root(true));
			$this->assign("theme", $themedir);
			$this->assign("settheme", $config["theme"]);
			return view();
		}
	}
}

================================================
FILE: application/admin/controller/tpl/SmsController.php
================================================
<?php
namespace app\admin\controller\tpl;
use app\admin\controller\BaseController;
use Flc\Alidayu\Client;
use Flc\Alidayu\App;
use Flc\Alidayu\Requests\AlibabaAliqinFcSmsNumSend;

class SmsController extends BaseController
{
	//短信模版列表
	public function index(){
		$smslist = model('SmsTpl')->paginate();
		// halt($maillist->toArray());
		cookie("prevUrl", $this->request->url());

		$this->assign('smslist', $smslist);
		return view();
	}

	//新增修改短信模版
	public function add(){
		if (request()->isPost()){
			$data = input('post.');
			if($data['id']){
				$result = model('SmsTpl')->update($data);
			}else{
				$result = model('SmsTpl')->create($data);
			}
			if($result){
				$this->success("保存成功", cookie("prevUrl"));
			}else{
				$this->error('保存失败', cookie("prevUrl"));
			}
		}else{
			$id = input('param.id');
			if($id){
				$sms = model('SmsTpl')->find($id);
				$this->assign('sms', $sms);
			}
			return view();
		}
	}

	//开启关闭短信模版
	public function update(){
		$data = input('param.');
		$result = model('SmsTpl')->where('id','in',$data['id'])->update(['status' => $data['status']]);
		if($result){
			$this->success("修改成功", cookie("prevUrl"));
		}else{
			$this->error('修改失败', cookie("prevUrl"));
		}
	}

	//发送测试短信
    public function send()
    {   
    	$id = input('param.id');
    	$tpl = model('SmsTpl')->find($id);

        $config_sms = model('Sms')->find()->toArray();
        // 配置信息
        $config = [
            'app_key'    => $config_sms['app_key'],
            'app_secret' => $config_sms['app_secret'],
            // 'sandbox'    => true,  // 是否为沙箱环境,默认false
        ];
         
        $client = new Client(new App($config));
        $req    = new AlibabaAliqinFcSmsNumSend;
        $req->setRecNum($tpl['phone'])
            ->setSmsParam([
                'code' => mt_rand(100000, 999999)
            ])
            ->setSmsFreeSignName($config_sms['sign'])
            ->setSmsTemplateCode($tpl['template_code']);

        $resp = $client->execute($req);
        $result = isset($resp->result->success) ? $resp->result->success : false;
        if($result){
            $this->success("发送成功", cookie("prevUrl"));
        }else{
            $msg = isset($resp->sub_msg) ? $resp->sub_msg : '发送失败,请检查短信配置';
        	$this->error($msg, cookie("prevUrl"));
        }
    }



}

================================================
FILE: application/admin/controller/user/IndexController.php
================================================
<?php
namespace app\admin\controller\user;
use app\admin\controller\BaseController;

use app\common\model\User;
class IndexController extends BaseController
{
	//用户列表
	public function index(){
		$map = array();
		if(input('param.id') != ''){
            $map['id']  = input('param.id');
        }
		if(input('param.name') != ''){
            $map['username']  = ['like','%'.input('param.name').'%'];
        }
        if(input('param.day') != ''){
            $userlist    = User::whereTime('created_at', input('param.day'))->paginate();
        }else{
        	$userlist    = User::where($map)->order('id desc')->paginate();
        }

		cookie("prevUrl", $this->request->url());

		$this->assign('userlist', $userlist);
		return view();
	}

	//新增修改用户
	public function add(){
		if (request()->isPost()){
			$data = input('post.');
			if($data['password']){
				$data['password'] = md5($data['password']);
			}else{
				unset($data['password']);
			}
			if($data['id']){
				$result = User::update($data);
			}else{
				$result = User::create($data);
			}

			if($result){
				$this->success("保存成功", cookie("prevUrl"));
			}else{
				$this->error('保存失败', cookie("prevUrl"));
			}
		}else{
			$id = input('param.id');
			if($id){
				$user = User::find($id);
				$this->assign('user', $user);
			}
			return view();
		}
	}
	//删除用户
	public function del(){
		$ids = input('param.id');
		if($ids == 1){
			$this->error('默认用户组允许删除', cookie("prevUrl"));
		}
		$result = User::destroy($ids);
		if($result){
			$this->success("删除成功", cookie("prevUrl"));
		}else{
			$this->error('删除失败', cookie("prevUrl"));
		}
	}
	//改变用户状态
	public function update(){
		$data = input('param.');
		if($data['id'] == 1){
			$this->error('测试用户不允许操作', cookie("prevUrl"));
		}
		$result = User::where('id', $data['id'])->update(['status' => $data['status']]);
		if($result){
			$this->success("修改成功", cookie("prevUrl"));
		}else{
			$this->error('修改失败', cookie("prevUrl"));
		}
	}

	//导出用户
	public function export(){
		$userlist = User::all()->toArray();

		$data = array(
			'0' => array(
                '1' => '编号',
                '2' => '用户名',
                '3' => '手机号',
                '9' => '余额',
                '10' => '积分',
                '11' => '状态',
                '12' => '购买量',
                '13' => '会员等级',
                '14' => '注册时间',
            ),
        );
		foreach ($userlist as &$v) {
			switch ($v['status']) {
				case '0':
					$v['status'] = '禁用';
					break;
				case '1':
					$v['status'] = '启用';
					break;
				default:
					$v['status'] = '未知状态';
					break;
			}
			array_push($data, array(
				'1' => $v['id'],
                '2' => $v['username'],
                '3' => $v['phone'],
                '9' => $v['money'],
                '10' => $v['score'],
                '11' => $v['status'],
                '12' => $v['buy_num'],
                '13' => $v['level'],
                '14' => $v['created_at'],
			));
		}
		export_to($data,'用户列表');//导出excle
	}


}

================================================
FILE: application/admin/controller/user/LevelController.php
================================================
<?php
namespace app\admin\controller\user;
use app\admin\controller\BaseController;

use app\common\model\UserLevel;
class LevelController extends BaseController
{

	//等级列表
	public function index(){
		$levellist = UserLevel::all();

		cookie("prevUrl", $this->request->url());

		$this->assign('levellist', $levellist);
		return view();
	}


	//新增修改等级
	public function add(){
		if (request()->isPost()){
			$data = input('post.');
			if(input('post.id')){
				$result = UserLevel::update($data);
			}else{
				$result = UserLevel::create($data);
			}

			if($result){
				$this->success("保存成功", cookie("prevUrl"));
			}else{
				$this->error('保存失败', cookie("prevUrl"));
			}
		}else{
			$id = input('param.id');
			if($id){
				$level = UserLevel::find($id);
				$this->assign('level', $level);
			}
			return view();
		}
	}


}

================================================
FILE: application/admin/controller/wx/ConfigController.php
================================================
<?php
namespace app\admin\controller\wx;
use app\admin\controller\BaseController;

class ConfigController extends BaseController
{
	//微信设置
	public function index(){
		if (request()->isPost()){
			$data = input('post.');

			$result = model('WxConfig')->update($data);
			if($result){
				$this->success("保存成功", cookie("prevUrl"));
			}else{
				$this->error('保存失败', cookie("prevUrl"));
			}
		}else{
			$config = model('WxConfig')->find();
			cookie("prevUrl", request()->url());

			$this->assign("url", 'http://' . $_SERVER["HTTP_HOST"] . "/admin/wechat/index");
			$this->assign('config', $config);
			return view();
		}
	}


}

================================================
FILE: application/admin/controller/wx/KefuController.php
================================================
<?php
namespace app\admin\controller\wx;
use app\admin\controller\BaseController;

class KefuController extends BaseController
{
	//微信客服设置
	public function index(){
		if (request()->isPost()){
			$data = input('post.');

			$result = model('WxKefu')->update($data);
			if($result){
				$this->success("保存成功", cookie("prevUrl"));
			}else{
				$this->error('保存失败', cookie("prevUrl"));
			}
		}else{
			$kefu = model('WxKefu')->find();
			cookie("prevUrl", request()->url());

			$this->assign('kefu', $kefu);
			return view();
		}
	}


}

================================================
FILE: application/admin/controller/wx/MenuController.php
================================================
<?php
namespace app\admin\controller\wx;
use app\admin\controller\BaseController;

class MenuController extends BaseController
{
	//微信菜单
	public function index(){
		$menulist = model('WxMenu')->all()->toArray();
		cookie("prevUrl", request()->url());

		$tree = list_to_tree($menulist, 'id', 'pid', 'sub', 'rank', 'desc');

		$this->assign('menulist', $tree);
		return view();
	}

	//新增修改微信菜单
	public function add(){
		if (request()->isPost()){
			$data = input('post.');
			if(input('post.id')){
				$result = model('WxMenu')->update($data);
			}else{
				$result = model('WxMenu')->create($data);
			}

			if($result){
				$this->success("保存成功", cookie("prevUrl"));
			}else{
				$this->error('保存失败', cookie("prevUrl"));
			}
		}else{
			$id = input('param.id');
			if($id){
				$menu = model('WxMenu')->find($id);
				$this->assign('menu', $menu);
			}
			$parentmenu = model('WxMenu')->all(['pid'=>0]);
            $this->assign("parentmenu", $parentmenu);
			return view();
		}
	}
	//删除微信菜单
	public function del(){
		$ids = input('param.id');
		
		$result = model('WxMenu')->destroy($ids);
		if($result){
			$this->success("删除成功", cookie("prevUrl"));
		}else{
			$this->error('删除失败', cookie("prevUrl"));
		}
	}



}

================================================
FILE: application/admin/controller/wx/PrintController.php
================================================
<?php
namespace app\admin\controller\wx;
use app\admin\controller\BaseController;

class PrintController extends BaseController
{
	//微信打印机设置
	public function index(){
		if (request()->isPost()){
			$data = input('post.');

			$result = model('WxPrint')->update($data);
			if($result){
				$this->success("保存成功", cookie("prevUrl"));
			}else{
				$this->error('保存失败', cookie("prevUrl"));
			}
		}else{
			$print = model('WxPrint')->find();
			cookie("prevUrl", request()->url());

			$this->assign('print', $print);
			return view();
		}
	}


}

================================================
FILE: application/admin/controller/wx/ReplyController.php
================================================
<?php
namespace app\admin\controller\wx;
use app\admin\controller\BaseController;

class ReplyController extends BaseController
{
	//微信自定义回复
	public function index(){
		$replylist = model('WxReply')->with('file')->select()->toArray();

		cookie("prevUrl", request()->url());

		$this->assign('replylist', $replylist);
		return view();
	}

	//新增修改自定义回复
	public function add(){
		if (request()->isPost()){
			$data = input('post.');

			if(input('post.id')){
				$result = model('WxReply')->update($data);
			}else{
				$result = model('WxReply')->create($data);
			}

			if($result){
				$this->success("保存成功", cookie("prevUrl"));
			}else{
				$this->error('保存失败', cookie("prevUrl"));
			}
		}else{
			$id = input('param.id');
			if($id){
				$reply = model('WxReply')->with('file')->find($id);
				$this->assign('reply', $reply);
			}
			return view();
		}
	}

	//删除自定义回复
	public function del(){
		$ids = input('param.id');
		
		$result = model('WxReply')->destroy($ids);
		if($result){
			$this->success("删除成功", cookie("prevUrl"));
		}else{
			$this->error('删除失败', cookie("prevUrl"));
		}
	}



}

================================================
FILE: application/admin/controller/wx/TplmsgController.php
================================================
<?php
namespace app\admin\controller\wx;
use app\admin\controller\BaseController;

class TplmsgController extends BaseController
{

	//微信模版消息
	public function index(){
		$tplmsglist = model('WxTplmsg')->all();
		// halt($tplmsglist->toArray());
		cookie("prevUrl", request()->url());

		$this->assign('tplmsglist', $tplmsglist);
		return view();
	}

	//新增编辑模版消息
	public function add(){
		if (request()->isPost()){
			$data = input('post.');
			$data['status'] = input('?post.status') ? $data['status'] : 0;
			if($data['id']){
				$result = model('WxTplmsg')->update($data);
			}else{
				$result = model('WxTplmsg')->create($data);
			}
			if($result){
				$this->success("保存成功", cookie("prevUrl"));
			}else{
				$this->error('保存失败', cookie("prevUrl"));
			}
		}else{
			$id = input('param.id');
			if($id){
				$tplmsg = model('WxTplmsg')->find($id);
				$this->assign('tplmsg', $tplmsg);
			}
			return view();
		}
	}

	//改变模版消息状态
	public function update(){
		$data = input('param.');
		$result = model('WxTplmsg')->where('id','in',$data['id'])->update(['status' => $data['status']]);
		if($result){
			$this->success("修改成功", cookie("prevUrl"));
		}else{
			$this->error('修改失败', cookie("prevUrl"));
		}
	}



}

================================================
FILE: application/admin/validate/Admin.php
================================================
<?php
namespace app\admin\validate;

use think\Validate;

class Admin extends Validate
{
    protected $rule =   [
        'username'  => 'unique:admin', 
    ];

    protected $message  =   [
        'username.unique' => '用户名已存在',  
    ];

}

================================================
FILE: application/admin/view/addons_index.html
================================================

<!-- Main content -->
<section class="content">
    <div class="box box-default color-palette-box">
        <div class="box-header with-border">

            <h3 class="box-title">插件列表</h3>
        </div>
        <div class="box-body">
            {volist name="item" id="item"}
            <div class="row">
                <div class="col-xs-12">
                    <p class="lead">{$item.title}</p>
                </div>
                <div class="col-xs-12 table-responsive">
                    {volist name="item.sub" id="addon"}
                    <div class="col-md-3 col-sm-6 col-xs-12" style="min-width: 300px;">
                        <a href="{$addon.addons_admin_url}" target="_blank">
                            <div class="info-box" style="cursor:pointer;border: 1px solid #f7f7f7;box-shadow: none;height: 90px;">
                                <span style="float: left;width: 90px;text-align: center;line-height: 90px;">
                                    <img src="{$addon.addons_img_url}" style="height: 60px;">
                                </span>
                                <div class="info-box-content">
                                    <span class="info-box-number">{$addon.title}</span>
                                    <small>{$addon.description}</small>
                                </div>
                            </div>
                        </a>
                    </div>
                    {/volist}
                </div>
            </div>
            {/volist}
        </div>
    </div>
</section>


================================================
FILE: application/admin/view/addons_shop.html
================================================
<iframe src="http://addon.wemallshop.com?url={$domain|urlencode}" allowtransparency="true" id="myiframe"
        style="background-color:transparent;min-height: 800px;" frameborder="0" width="100%">
</iframe>

<script type="text/javascript">
    
    window.addEventListener('message', function (e) {
        if (e.origin != 'http://addon.wemallshop.com') {
            return
        }
        var data = JSON.parse(e.data);
        install(data.path, data.uuid, data.type, data.sort);
    }, false);
    
    function install(path, uuid, type, sort) {
        console.log('开始下载');

        $.ajax({
            type: "post",
            url: "{:url('admin/addons/getFileDownload')}",
            data: {
                path: path,
                uuid: uuid,
                type: type,
                sort: sort
            },
            beforeSend: function(XMLHttpRequest){
                layui.use('layer', function(){
                    var layer = layui.layer;
                    layer.msg('正在努力下载...',{icon: 16,time: 20000, shade: [0.5, '#000']});
                }); 
            },
            success: function (res) {
                console.log('下载完成');
                layui.use('layer', function(){
                    var layer = layui.layer;
                    layer.closeAll();
                    layer.msg(res.msg,{icon: 6,time: 2000, shade: [0.5, '#000']}); 
                });
                compare();
            }
        });
    }
    
    function compare() {
        $.ajax({
            type: "post",
            url: "{:url('admin/addons/compare')}",
            data: {
                // path: path,
                // filename: filename,
                // filesize: filesize,
            },
            beforeSend: function(XMLHttpRequest){
                layui.use('layer', function(){
                    var layer = layui.layer;
                    layer.msg('正在安装...',{icon: 16,time: 20000, shade: [0.5, '#000']});
                }); 
            },
            success: function (res) {
                if (res.code) {
                    console.log('安装完成');
                    layui.use('layer', function(){
                        var layer = layui.layer;
                        layer.msg(res.msg,{icon: 6,time: 2000, shade: [0.5, '#000']});
                    });
                    location.href="{:url('admin/addons/index')}";
                }else{
                    layui.use('layer', function(){
                        var layer = layui.layer;
                        layer.alert(res.msg, {icon: 5,title: '安装失败'});
                    });
                }
            }
        });
    }
    
</script>

================================================
FILE: application/admin/view/analysis_user.html
================================================

<!-- Main content -->
<section class="content">
    <div class="row">
        <!-- ./col -->
        <div class="col-lg-3 col-xs-6">
            <!-- small box -->
            <div class="small-box bg-aqua">
                <div class="inner">
                    <h3>{$todayNewUser|default =0}</h3>

                    <p>今日新用户</p>
                </div>
                <div class="icon">
                    <i class="ion ion-person-add"></i>
                </div>
                <a href="{:url('/admin/user/index/index',array('day'=>date('Y-m-d')))}" class="small-box-footer">更多详情 <i class="fa fa-arrow-circle-right"></i></a>
            </div>
        </div>
        <!-- ./col -->
        <div class="col-lg-3 col-xs-6">
            <!-- small box -->
            <div class="small-box bg-green">
                <div class="inner">
                    <h3>{$yesterdayNewUser|default = 0}</h3>

                    <p>昨日新用户</p>
                </div>
                <div class="icon">
                    <i class="ion ion-person-add"></i>
                </div>
                <a href="{:url('/admin/user/index/index',array('day'=>date('Y-m-d', strtotime('-1 day'))))}" class="small-box-footer">更多详情 <i class="fa fa-arrow-circle-right"></i></a>
            </div>
        </div>
        <div class="col-lg-3 col-xs-6">
            <!-- small box -->
            <div class="small-box bg-yellow">
                <div class="inner">
                    <h3>{$newUserBuyRate|default = '1'}<sup style="font-size: 20px">%</sup></h3>

                    <p>今日新用户购买率</p>
                </div>
                <div class="icon">
                    <i class="ion ion-pie-graph"></i>
                </div>
                <a href="#" class="small-box-footer">&nbsp;</a>
            </div>
        </div>
        <div class="col-lg-3 col-xs-6">
            <!-- small box -->
            <div class="small-box bg-red">
                <div class="inner">
                    <h3>{$buyRate|default = '1'}<sup style="font-size: 20px">%</sup></h3>

                    <p>购买率</p>
                </div>
                <div class="icon">
                    <i class="ion ion-pie-graph"></i>
                </div>
                <a href="#" class="small-box-footer">&nbsp;</a>
            </div>
        </div>
        <!-- ./col -->
    </div>


    <div class="row">
        <div class="col-md-12">
            <!-- LINE CHART -->
            <div class="box box-default">
                <div class="box-header with-border">
                    <h3 class="box-title">新用户走势图</h3>
                </div>
                <div class="box-body">
                    <div class="chart">
                        <canvas id="newUserLineChart" style="height:250px"></canvas>
                    </div>
                </div>
                <!-- /.box-body -->
            </div>
            <!-- /.box -->
        </div>
    </div>

    <div class="row">
        <div class="col-md-12">
            <!-- LINE CHART -->
            <div class="box box-default">
                <div class="box-header with-border">
                    <h3 class="box-title">用户消费走势图</h3>
                </div>
                <div class="box-body">
                    <div class="chart">
                        <canvas id="userBuyLineChart" style="height:250px"></canvas>
                    </div>
                </div>
                <!-- /.box-body -->
            </div>
            <!-- /.box -->
        </div>
    </div>
</section>
<script type="text/javascript">
    $(function () {
        //Get context with jQuery - using jQuery's .get() method.
        var ctx = $("#newUserLineChart").get(0).getContext("2d");
        //This will get the first returned node in the jQuery collection.

        var data = {
            labels : {$date|default = '1'},
            datasets : [
                {
                    fillColor : "rgba(220,220,220,0.5)",
                    strokeColor : "rgba(220,220,220,1)",
                    pointColor : "rgba(220,220,220,1)",
                    pointStrokeColor : "#fff",
                    data : {$newUserLine|default = '1'}
                }
            ]
        }

        new Chart(ctx).Line(data);

        var ctx = $("#userBuyLineChart").get(0).getContext("2d");
        //This will get the first returned node in the jQuery collection.

        var data = {
            labels : {$date|default = '1'},
            datasets : [
                {
                    fillColor : "rgba(220,220,220,0.5)",
                    strokeColor : "rgba(220,220,220,1)",
                    pointColor : "rgba(220,220,220,1)",
                    pointStrokeColor : "#fff",
                    data : {$userBuyLine|default = '1'}
                }
            ]
        }

        new Chart(ctx).Line(data);
    });
</script>

================================================
FILE: application/admin/view/article/category_add.html
================================================
<!-- Main content -->
<section class="content">
    <div class="row">
        <div class="col-md-12">
            <!-- general form elements -->
            <div class="box">
                <div class="box-header with-border">
                    <h3 class="box-title">编辑分类</h3>
                </div>
                <!-- form start -->
                <form class="form-horizontal layui-form" action="{:url('/admin/article/category/add')}" method="post" enctype="text/plain">
                    <div class="box-body">
                        <input class="form-control" name="id" placeholder="" value="{$category.id|default=0}"
                               type="hidden">

                        <div class="form-group">
                            <label class="col-sm-2 control-label">上级菜单</label>

                            <div class="col-sm-10">
                                <select name="pid" class="form-control">
                                    <option value="0">一级菜单</option>
                                    {volist name="parentcategory" id="vo"}
                                        <option value="{$vo.id}" {eq name="vo.id" value="$category.pid|default=''" }selected{/eq}>{$vo.name}</option>
                                    {/volist}
                                </select>
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">名称</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="name" placeholder="" value="{$category.name|default=''}"
                                       type="text">
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">备注</label>

                            <div class="col-sm-10">
                                <textarea class="form-control" name="remark"
                                          rows="3">{$category.remark|default=''}</textarea>
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="control-label col-md-2">状态</label>

                            <div class="col-md-7">
                                <input type="checkbox" name="status" lay-skin="switch" value="1"
                                {notempty name="category.status"}checked{/notempty}>
                            </div>
                        </div>
                    </div>

                    <div class="box-footer">
                        <div class="col-sm-2">
                            <button type="submit" class="btn btn-block btn-danger">保存</button>
                        </div>

                        <div class="col-sm-2">
                            <button type="button" class="btn btn-block btn-default" onclick="history.go(-1)">取消
                            </button>
                        </div>
                    </div>

                </form>
            </div>
            <!-- /.box -->
        </div>
        <!--/.col (right) -->
    </div>
</section>
<script type="text/javascript">
	$(function () {
		layui.use('form', function() {
            var form = layui.form();
            form.render(); //更新全部
        });
	});
</script>


================================================
FILE: application/admin/view/article/category_index.html
================================================
<!-- Main content -->
<section class="content">
	<div class="row">
		<!-- /.col -->
		<div class="col-md-12">
			<div class="box box-default">
				<div class="box-header with-border">
					<h3 class="box-title">文章分类</h3>
				</div>
				<div style="margin-top: 10px;">
                    <div class="btn-group" style="margin-left: 10px;">
                        <a href="{:url('/admin/article/category/add')}" class="btn btn-danger ">
							新增分类
						</a>
                    </div>
                </div>
				<div class="box-body table-responsive">
					<table class="table table-bordered table-hover">
						<tbody>
							<tr>
								<th class="hidden-xs">
									<label><input onchange="checkAll()" type="checkbox" value=""></label>
								</th>
								<th>编号</th>
								<th>名称</th>
								<th>状态</th>
								<th>备注</th>
								<th>操作</th>
							</tr>
							{volist name="categorylist" id="category"}
								<tr>
									<td class="hidden-xs">
										<label><input name="checkbox" class="check" type="checkbox"
													  value="{$category.id}"></label>
									</td>
									<td>
										{$category.id}
									</td>
									<td>
										{$category.name}
									</td>
									<td>
	                                    {eq name="category.status" value="1"}
	                                    	<span class="label label-success">开启</span> 
	                                    {else/}
	                                    	<span class="label label-default">关闭</span> 
	                                    {/eq}
	                                </td>
									<td>
										{$category.remark}
									</td>
									<td class="table-action">
										<a href="{:url('/admin/article/category/add',array('id'=>$category['id']))}">编辑</a>
										{eq name="category.status" value="0"}
	                                    <a href="{:url('/admin/article/category/update',array('id'=>$category['id'],'status'=>1))}">开启</a> 
	                                    {else}
	                                    <a href="{:url('/admin/article/category/update',array('id'=>$category['id'],'status'=>0))}">关闭</a> 
	                                    {/eq}
	                                    <!-- <a href="{:url('/admin/article/category/del',array('id'=>$category['id']))}">删除</a> -->
									</td>
								</tr>
								{volist name="category.sub" id="category1"}
									<tr>
										<td class="hidden-xs">
											<label><input name="checkbox" class="check" type="checkbox"
														  value="{$category1.id}"></label>
										</td>
										<td>
											{$category1.id}
										</td>
										<td>
											|─{$category1.name}
										</td>
										<td>
		                                    {eq name="category1.status" value="1"}
		                                    	<span class="label label-success">开启</span> 
		                                    {else/}
		                                    	<span class="label label-default">关闭</span> 
		                                    {/eq}
		                                </td>
										<td>
											{$category1.remark}
										</td>
										<td class="table-action">
	                                        <a href="{:url('/admin/article/category/add',array('id'=>$category1['id']))}">编辑</a>
	                                        {eq name="category1.status" value="0"}
		                                    <a href="{:url('/admin/article/category/update',array('id'=>$category1['id'],'status'=>1))}">开启</a> 
		                                    {else}
		                                    <a href="{:url('/admin/article/category/update',array('id'=>$category1['id'],'status'=>0))}">关闭</a> 
		                                    {/eq}
	                                        <!-- <a href="{:url('/admin/article/category/del',array('id'=>$category1['id']))}">删除</a> -->
										</td>
									</tr>
								{/volist}
							{/volist}
						</tbody>
					</table>
				</div>
				<div class="box-footer table-responsive">
                	<div class="btn-group">
                        <button type="button" class="btn btn-danger"
                                onclick="batchUrl('{:url(\'/admin/article/category/update\',array(\'status\'=>1))}')">
                            开启
                        </button>
                    </div>
                    <div class="btn-group">
                        <button type="button" class="btn btn-danger"
                                onclick="batchUrl('{:url(\'/admin/article/category/update\',array(\'status\'=>0))}')">
                            关闭
                        </button>
                    </div>
                    <!-- <div class="btn-group">
                        <button type="button" class="btn btn-danger"
                                onclick="batchUrl('{:url(\'/admin/article/category/del\')}')">删除
                        </button>
                    </div> -->
                    <div class="pull-right">
					</div>
                </div>
			</div>
			<!-- /. box -->
		</div>
		<!-- /.col -->
	</div>
</section>
<script type="text/javascript">
	
</script>

================================================
FILE: application/admin/view/article/index_add.html
================================================
<!-- Main content -->
<section class="content">
    <div class="row">
        <div class="col-md-12">
            <!-- general form elements -->
            <div class="box">
                <div class="box-header with-border">
                    <h3 class="box-title">编辑文章</h3>
                </div>
                <!-- form start -->
                <form class="form-horizontal layui-form" action="{:url('/admin/article/index/add')}" method="post" enctype="text/plain">
                    <div class="box-body">
                        <input class="form-control" name="id" placeholder="" value="{$article.id|default=0}"
                               type="hidden">
                        <div class="form-group">
                            <label class="col-sm-2 control-label">分类</label>

                            <div class="col-sm-10">
                                <select name="category_id" class="form-control">
                                	{volist name="category" id="category"}
                                        <option value="{$category.id}">{$category.name}</option>
                                        {volist name="category.sub" id="sub"}
                                            <option value="{$sub.id}">|─{$sub.name}</option>
                                        {/volist}
                                    {/volist}
                                </select>
                            </div>
                        </div>
                        <div class="form-group">
                            <label class="col-sm-2 control-label">标题</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="title" placeholder="" value="{$article.title|default=''}"
                                       type="text">
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">作者</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="author" placeholder="" value="{$article.author|default=''}"
                                       type="text">
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">简介</label>

                            <div class="col-sm-10">
                                <textarea class="form-control" name="sub"
                                          rows="3">{$article.sub|default=''}</textarea>
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">内容</label>

                            <div class="col-sm-10">
                                 <!-- 加载编辑器的容器 -->
                                <script id="UEditor" name="content" type="text/plain" style="height:400px;">
                                    {$article.content|default=''}
                                </script>
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">备注</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="remark" placeholder="" value="{$article.remark|default=''}"
                                       type="text">
                            </div>
                        </div>
                        
                        <div class="form-group">
                            <label class="control-label col-md-2">状态</label>

                            <div class="col-md-7">
                                <input type="checkbox" name="status" lay-skin="switch" value="1"
                                {notempty name="article.status"}checked{/notempty}>
                            </div>
                        </div>
                    </div>

                    <div class="box-footer">
                        <div class="col-sm-2">
                            <button type="submit" class="btn btn-block btn-danger">保存</button>
                        </div>

                        <div class="col-sm-2">
                            <button type="button" class="btn btn-block btn-default" onclick="history.go(-1)">取消
                            </button>
                        </div>
                    </div>
                </form>
            </div>
            <!-- /.box -->
        </div>
        <!--/.col (right) -->
    </div>
</section>
<script type="text/javascript">
    if('{$article.category_id|default=''}'){
        $('select[name="category_id"]').val('{$article.category_id|default=''}');
    }
    
    $(function () {
        var editor = new UE.ui.Editor();
        editor.render("UEditor");
        layui.use('form', function() {
            var form = layui.form();
            form.render(); //更新全部
        });
    });
</script>


================================================
FILE: application/admin/view/article/index_index.html
================================================
<!-- Main content -->
<section class="content">
	<div class="row">
		<!-- /.col -->
		<div class="col-md-12">
			<div class="box box-default">
				<div class="box-header with-border">
					<h3 class="box-title">文章列表</h3>
				</div>
				<div style="margin-top: 10px;">
                    <div class="btn-group" style="margin-left: 10px;">
                        <a href="{:url('/admin/article/index/add')}" class="btn btn-danger ">
							新增文章
						</a>
                    </div>
                </div>
				<div class="box-body table-responsive">
					<table class="table table-bordered table-hover">
						<tbody>
							<tr>
								<th class="hidden-xs">
									<label><input onchange="checkAll()" type="checkbox" value=""></label>
								</th>
								<th>编号</th>
								<th>标题</th>
								<th>分类</th>
								<th>作者</th>
								<th>状态</th>
								<th>备注</th>
								<th>时间</th>
								<th>操作</th>
							</tr>
							{volist name="articlelist" id="article"}
							<tr>
								<td class="hidden-xs">
									<label><input name="checkbox" class="check" type="checkbox"
												  value="{$article.id}"></label>
								</td>
								<td>
									{$article.id}
								</td>
								<td>
									《{$article.title}》
								</td>
								<td>
									{$article.category.name}
								</td>
								<td>
									{$article.author}
								</td>
								<td>
                                    {eq name="article.status" value="1"}
                                    	<span class="label label-success">开启</span> 
                                    {else/}
                                    	<span class="label label-default">关闭</span> 
                                    {/eq}
                                </td>
								<td>
									{$article.remark}
								</td>
								<td>
									{$article.created_at}
								</td>
								<td class="table-action">
									<a href="{:url('/admin/article/index/add',array('id'=>$article['id']))}">编辑</a>
									{eq name="article.status" value="0"}
                                    <a href="{:url('/admin/article/index/update',array('id'=>$article['id'],'status'=>1))}">开启</a> 
                                    {else}
                                    <a href="{:url('/admin/article/index/update',array('id'=>$article['id'],'status'=>0))}">关闭</a> 
                                    {/eq}
									<!-- <a href="{:url('/admin/article/index/del',array('id'=>$article['id']))}">删除</a> -->
								</td>
							</tr>
							{/volist}
						</tbody>
					</table>
				</div>
				<div class="box-footer table-responsive">
					<div class="btn-group">
                        <button type="button" class="btn btn-danger"
                                onclick="batchUrl('{:url(\'/admin/article/index/update\',array(\'status\'=>1))}')">
                            开启
                        </button>
                    </div>
                    <div class="btn-group">
                        <button type="button" class="btn btn-danger"
                                onclick="batchUrl('{:url(\'/admin/article/index/update\',array(\'status\'=>0))}')">
                            关闭
                        </button>
                    </div>
					<!-- <div class="btn-group">
                        <button type="button" class="btn btn-danger"
                                onclick="batchUrl('{:url(\'/admin/article/index/del\')}')">删除
                        </button>
                    </div> -->
					<div class="btn-group">
					</div>
					<div class="pull-right">
						{$articlelist->render()}
					</div>
				</div>
			</div>
			<!-- /. box -->
		</div>
		<!-- /.col -->
	</div>
</section>
<script type="text/javascript">
	
</script>

================================================
FILE: application/admin/view/auth/admin_add.html
================================================

<!-- Main content -->
<section class="content">
    <div class="row">
        <div class="col-md-12">
            <!-- general form elements -->
            <div class="box box-default">
                <div class="box-header with-border">
                    <h3 class="box-title">新增/修改管理员</h3>
                </div>
                <!-- form start -->
                <form class="form-horizontal layui-form" action="{:url('/admin/auth/admin/add')}" method="post">
                    <div class="box-body">
                        <input class="form-control" name="id" placeholder="" value="{$admin.id|default=0}"
                               type="hidden">
                        <div class="form-group">
                            <label class="col-sm-2 control-label">用户组</label>

                            <div class="col-sm-10">
                                <select name="group_id" class="form-control">
                                    {volist name="group" id="group"}
                                        <option value="{$group.id}" {eq name="group.id" value="$admin.group_id|default=''" }selected{/eq}>{$group.title}</option>
                                    {/volist}
                                </select>
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">用户名</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="username" required lay-verify="required" placeholder="" value="{$admin.username|default=''}"
                                       type="text">
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">手机号</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="mobile" placeholder="" lay-verify='phone' value="{$admin.mobile|default=''}"
                                       type="number">
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">密码</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="password" placeholder="请输入新密码" value=""
                                       type="text">
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">邮箱</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="email" placeholder="" lay-verify='email' value="{$admin.email|default=''}"
                                       type="email">
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">备注</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="remark" placeholder="" value="{$admin.remark|default=''}"
                                       type="text">
                            </div>
                        </div>
                        {neq name="admin.id|default=0" value="1"}
	                        <div class="form-group">
	                            <label class="control-label col-md-2">状态</label>

	                            <div class="col-md-7">
	                                <input type="radio" name="status" value="1" lay-filter="type" title="启用"
	                                {eq name="admin.status|default='1'" value="1"}checked{/eq}>
	                                <input type="radio" name="status" value="0" lay-filter="type" title="禁用" 
	                                {eq name="admin.status|default=''" value="0"}checked{/eq}>
	                            </div>
	                        </div>
                        {/neq}
                        <!-- /.box-body -->

                        <div class="box-footer">
                            <div class="col-sm-2">
                                <button class="btn btn-block btn-danger" lay-submit lay-filter="save">保存</button>
                            </div>

                            <div class="col-sm-2">
                                <button type="button" class="btn btn-block btn-default" onclick="history.go(-1)">取消
                                </button>
                            </div>
                        </div>
                </form>
            </div>
            <!-- /.box -->
        </div>
        <!--/.col (right) -->
    </div>
</section>
<script type="text/javascript">
    $(function () {
        layui.use('form', function() {
            var form = layui.form();
            form.render(); //更新全部
            //监听提交
        	form.on('submit(save)', function(data) {

        	});
        });
    });
</script>


================================================
FILE: application/admin/view/auth/admin_index.html
================================================

<!-- Main content -->
<section class="content">
    <div class="row">
        <div class="col-md-12">
            <div class="box box-default">
                <div class="box-header with-border">
                    <h3 class="box-title">管理员管理</h3>
                </div>
                <div style="margin-top: 10px;">
                    <div class="btn-group" style="margin-left: 10px;">
                        <a href="{:url('/admin/auth/admin/add')}" class="btn btn-danger ">
                            新增管理员
                        </a>
                    </div>
                </div>
                <div class="box-body table-responsive">
                    <table class="table table-bordered table-hover">
                        <tbody>
                        <tr>
                            <!-- <th class="hidden-xs">
                                <label><input onchange="checkAll()" type="checkbox" value=""></label>
                            </th> -->
                            <th>编号</th>
                            <th>用户名</th>
                            <th>用户组</th>
                            <th>手机号</th>
                            <th>邮箱</th>
                            <th>状态</th>
                            <th>备注</th>
                            <th>最后登录时间</th>
                            <th>操作</th>
                        </tr>
                        {volist name="adminlist" id="user"}
                            <tr>
                                <!-- <td class="hidden-xs">
                                    <label><input name="checkbox" class="check" type="checkbox" value="{$user.id}"></label>
                                </td> -->
                                <td>{$user.id}</td>
                                <td>{$user.username}</td>
                                <td>{$user.group.title}</td>
                                <td>{$user.mobile}</td>
                                <td>{$user.email}</td>
                                <td>
                                    {eq name="user.status" value="1"}
                                        <span class="label label-success">启用</span>
                                    {else/}
                                        <span class="label label-default">禁用</span>
                                    {/eq}
                                </td>
                                <td>{$user.remark}</td>
                                <td>{$user.last_login_time}</td>
                                <td class="table-action">
                                    <a href="{:url('/admin/auth/admin/add',array('id'=>$user['id']))}">修改</a>
                                    {gt name="user.id" value="1"}
                                        {eq name="user.status" value="0"}
                                            <a href="{:url('/admin/auth/admin/update',array('id'=>$user['id'],'status'=>1))}">开启</a>
                                        {else}
                                            <a href="{:url('/admin/auth/admin/update',array('id'=>$user['id'],'status'=>0))}">关闭</a>
                                        {/eq}
                                        <a href="{:url('/admin/auth/admin/del',array('id'=>$user['id']))}">删除</a>
                                    {/gt}
                                </td>
                            </tr>
                        {/volist}
                        </tbody>
                    </table>
                    <!-- <div class="box-footer no-padding"> -->
                        <!-- <div class="mailbox-controls"> -->
                            <!-- <div class="btn-group"> -->
                                <!-- <button type="button" class="btn btn-danger"
                                        onclick="batchUrl('{:url(\'/admin/auth/admin/del\')}')">全部删除
                                </button> -->
                            <!-- </div> -->
                            <!-- /.btn-group -->
                            <!-- <div class="pull-right"> -->
                                
                            <!-- </div> -->
                            <!-- /.pull-right -->
                        <!-- </div> -->
                    <!-- </div> -->
                </div>
            </div>
            <!-- /. box -->
        </div>
        <!-- /.col -->
    </div>
</section>

================================================
FILE: application/admin/view/auth/group_add.html
================================================

<!-- Main content -->
<section class="content">
    <div class="row">
        <div class="col-md-12">
            <!-- general form elements -->
            <div class="box box-default">
                <div class="box-header with-border">
                    <h3 class="box-title">新增用户组</h3>
                </div>
                <!-- form start -->
                <form class="form-horizontal" action="{:url('/admin/auth/group/add')}" method="post">
                    <div class="box-body">
                        <input class="form-control" name="id" placeholder="" value="{$group.id|default=0}"
                               type="hidden">

                        <div class="form-group">
                            <label class="col-sm-2 control-label">名称</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="title" required="required" placeholder="" value="{$group.title|default=''}"
                                       type="text">
                            </div>
                        </div>
                        <div class="form-group">
                            <label class="col-sm-2 control-label">权限</label>

                            <div class="col-sm-10">
                                <div class="table-responsive" style="overflow-x: visible;">
                                    <table class="table table-bordered table-hover">
                                        <tbody>
                                        <tr>
                                            <th style="width: 30px">
                                                <input onchange="checkAll()" type="checkbox" value="">
                                            </th>
                                            <th>编号</th>
                                            <th>权限标题</th>
                                            <th>权限</th>
                                        </tr>
                                        {volist name="rule" id="auth"}
                                            <tr>
                                                <td>
                                                    <label>
                                                    <input type="checkbox" name="rules[]" class="check" value="{$auth.id|default=''}"
                                                        {in name="auth.id" value="$group.rules|default=''"}checked="true"{/in}/>
                                                    </label>
                                                </td>
                                                <td>
                                                    {$auth.id}
                                                </td>
                                                <td>
                                                    {$auth.title}
                                                </td>
                                                <td>
                                                    {$auth.name}
                                                </td>
                                            </tr>
                                        {/volist}
                                    </table>
                                </div>
                            </div>
                        </div>
                        <!-- /.box-body -->

                        <div class="box-footer">
                            <div class="col-sm-2">
                                <button type="submit" class="btn btn-block btn-danger">保存</button>
                            </div>

                            <div class="col-sm-2">
                                <button type="button" class="btn btn-block btn-default" onclick="history.go(-1)">取消
                                </button>
                            </div>
                        </div>
                    </div>
                </form>
            </div>
            <!-- /.box -->
        </div>
        <!--/.col (right) -->
    </div>
</section>
<script type="text/javascript">
    $(function () {
       
    });
</script>


================================================
FILE: application/admin/view/auth/group_index.html
================================================

<section class="content">
    <div class="row">
        <!-- /.col -->
        <div class="col-md-12">
            <div class="box box-default">
                <div class="box-header with-border">
                    <h3 class="box-title">用户组管理</h3>
                </div>
                <div style="margin-top: 10px;">
                    <div class="btn-group" style="margin-left: 10px;">
                        <a href="{:url('/admin/auth/group/add')}" class="btn btn-danger ">
                            新增用户组
                        </a>
                    </div>
                </div>
                <div class="box-body table-responsive">
                    <table class="table table-bordered table-hover">
                        <tbody>
                        <tr>
                            <th>编号</th>
                            <th>用户组</th>
                            <th>状态</th>
                            <th>时间</th>
                            <th>操作</th>
                        </tr>
                        {volist name="grouplist" id="group"}
                            <tr>
                                <td>{$group.id}</td>
                                <td>{$group.title}</td>
                                <td>
                                    {eq name="group.status" value="1"}
                                        <span class="label label-success">启用</span>
                                    {else/}
                                        <span class="label label-default">禁用</span>
                                    {/eq}
                                </td>
                                <td>{$group.created_at}</td>
                                <td class="table-action">
                                    <a href="{:url('/admin/auth/group/add',array('id'=>$group['id']))}">修改</a>
                                    {gt name="group.id" value="1"}
                                        {eq name="group.status" value="0"}
                                            <a href="{:url('/admin/auth/group/update',array('id'=>$group['id'],'status'=>1))}">开启</a>
                                        {else}
                                            <a href="{:url('/admin/auth/group/update',array('id'=>$group['id'],'status'=>0))}">关闭</a>
                                        {/eq}
                                        <a href="{:url('/admin/auth/group/del',array('id'=>$group['id']))}">删除</a>
                                    {/gt}
                                </td>
                            </tr>
                        {/volist}
                        </tbody>
                    </table>
                </div>
            </div>
            <!-- /. box -->
        </div>
        <!-- /.col -->
    </div>
</section>

================================================
FILE: application/admin/view/config/mail_index.html
================================================
<section class="content">
    <div class="row">
        <div class="col-md-12">
            <!-- general form elements -->
            <div class="box box-default">
                <div class="box-header with-border">
                    <h3 class="box-title">邮件配置</h3>
                </div>
                <!-- form start -->
                <form class="form-horizontal layui-form" method="post" action="{:url('/admin/config/mail/index')}">
                    <div class="box-body">

                        <input class="form-control" name="id" placeholder="" value="{$mail.id}"
                               type="hidden">
                        <div class="form-group">
                            <label class="col-sm-2 control-label">服务器地址</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="host" placeholder="" value="{$mail.host}"
                                       type="text">
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">服务器端口</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="port" placeholder="" value="{$mail.port}"
                                       type="number">
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="control-label col-md-2">加密</label>

                            <div class="col-md-7">
                                <input type="checkbox" name="secure" lay-skin="switch" value="1"
                                {notempty name="mail.secure"}checked{/notempty}>
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">回信地址</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="replyTo" placeholder="" value="{$mail.replyTo}"
                                       type="text">
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">用户名</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="user" placeholder="" value="{$mail.user}"
                                       type="text">
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="control-label col-md-2">密码</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="pass" placeholder="" value="{$mail.pass}"
                                       type="text">
                            </div>
                        </div>
                    </div>
                    <!-- /.box-body -->

                    <div class="box-footer">
                        <div class="col-sm-2">
                            <button type="submit" class="btn btn-block btn-danger">保存</button>
                        </div>
                    </div>
                </form>
            </div>
            <!-- /.box -->

        </div>
        <!--/.col (right) -->
    </div>
</section>
<script type="text/javascript">
    layui.use('form', function() {
        var form = layui.form();
        form.render(); //更新全部
    });
</script>


================================================
FILE: application/admin/view/config/site_index.html
================================================

<!-- Main content -->
<section class="content">
    <div class="row">
        <div class="col-md-12">
            <!-- general form elements -->
            <div class="box box-default">
                <div class="box-header with-border">
                    <h3 class="box-title">站点设置</h3>
                </div>
                <!-- form start -->
                <form action="{:url('/admin/config/site/index')}" method="post" class="form-horizontal layui-form">
                    <div class="box-body">
                        <input class="form-control" name="id" placeholder="" value="{$config.id|default='0'}"
                               type="hidden">
 
                        <div class="form-group">
                            <label class="col-sm-2 control-label">站点名称</label>

                            <div class="col-sm-4">
                                <input type="text" name="title" required  lay-verify="required" placeholder="请输入名称" autocomplete="off" 
                                class="form-control" value="{$config.title|default=''}">
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label"></label>

                            <div class="col-sm-4">
                                站点名称将显示在浏览器的标题栏
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">关键词</label>

                            <div class="col-sm-4">
                                <input class="form-control" name="keywords" placeholder="" value="{$config.keywords|default=''}"
                                       type="text">
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">站点Logo</label>

                            <div class="col-sm-10">
                                <div class="fileupload fileupload-new" data-provides="fileupload">
                                    <div class="fileupload-new img-thumbnail">
                                        {empty name="config.logo_id"}
                                            <img src="__PUBLIC__/static/dist/img/noimage.gif">
                                        {else /}
                                            <img src="__PUBLIC__/uploads/{$config['logo']['savepath']}{$config['logo']['savename']}">
                                        {/empty}
                                        <input class="form-control" name="logo_id" id="file_id" placeholder="" value="{$config.logo_id|default=''}" type="hidden">
                                        <div class="edit_pic_mask">
                                            <i class="fa fa-plus-circle" onclick="imageUploader(this,false)"></i>
                                            <i class="fa fa-minus-circle" onclick="removeImage(this,false)"></i>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">站点描述</label>

                            <div class="col-sm-6">
                                <textarea class="form-control" name="description" placeholder="" rows="3">{$config.description|default=''}</textarea>
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">版权</label>

                            <div class="col-sm-6">
                            	<input class="form-control" name="copyright" placeholder="" value="{$config.copyright|default=''}"
                                       type="text">
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">统计代码</label>

                            <div class="col-sm-6">
                                <textarea class="form-control" name="tongji_code" placeholder="" rows="3">{$config.tongji_code|default=''}</textarea>
                            </div>
                        </div>
                    </div>
                    <!-- /.box-body -->

                    <div class="box-footer">
                        <div class="col-sm-2">
                            <button class="btn btn-block btn-danger" lay-submit lay-filter="shopSet">保存</button>
                        </div>
                    </div>
                </form>
            </div>
            <!-- /.box -->

        </div>
        <!--/.col (right) -->
    </div>
</section>
<script>
    layui.use('form', function() {
        var form = layui.form();
        form.render(); //更新全部
        //监听提交
        // form.on('submit(shopSet)', function(data) {
            // console.log(data.field);
            // layer.msg(JSON.stringify(data.field));
            // return false;
        // });
    });
</script>


================================================
FILE: application/admin/view/config/sms_index.html
================================================
<section class="content">
    <div class="row">
        <div class="col-md-12">
            <div class="callout callout-danger">
                <p>目前仅支持阿里大于 网站:
                    <a href="http://www.alidayu.com/" target="_blank">http://www.alidayu.com/</a>
                </p>
                <p>应用管理-应用列表-创建应用</p>
                <p>配置管理-验证码-配置短信签名-添加签名</p>
                <p>配置管理-验证码-配置短信模版-添加模版</p>
            </div>
            <!-- general form elements -->
            <div class="box box-default">
                <div class="box-header with-border">
                    <h3 class="box-title">短信验证设置</h3>
                </div>
                <!-- form start -->
                <form class="form-horizontal" method="post" action="{:url('/admin/config/sms/index')}">
                    <div class="box-body">
                        <input class="form-control" name="id" placeholder="" value="{$sms.id}"
                               type="hidden">
                        <div class="form-group">
                            <label class="col-sm-2 control-label">App Key</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="app_key" placeholder="" value="{$sms.app_key}"
                                       type="text">
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="control-label col-md-2">App Secret</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="app_secret" placeholder="" value="{$sms.app_secret}"
                                       type="text">
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="control-label col-md-2">短信签名</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="sign" placeholder="" value="{$sms.sign}"
                                       type="text">
                            </div>
                        </div>
                    </div>
                    <!-- /.box-body -->

                    <div class="box-footer">
                        <div class="col-sm-2">
                            <button type="submit" class="btn btn-block btn-danger">保存</button>
                        </div>
                    </div>
                </form>
            </div>
            <!-- /.box -->

        </div>
        <!--/.col (right) -->
    </div>
</section>



================================================
FILE: application/admin/view/file_index.html
================================================
<div id="dialog-imageUploader">
    <!-- /.box-header -->
    <div class="box-body">
        <div class="row" style="border-bottom:1px solid #f4f4f4;">
            <div class="margin pull-right">
                <form action="{:url('admin/file/upload')}" id="myForm" enctype="multipart/form-data" method="post">
                    <div class="btn btn-success" style="cursor: pointer">本地上传</div>
                    <input type="file" id="file" name="image[]" multiple="multiple" onchange="ajaxForm()"
                           style="margin-top: -30px;width: 82px;height: 34px;opacity: 0;cursor: pointer;"/>
                </form>
            </div>
        </div>
        <div class="row" id="dialog-content">
            {volist name="filelist" id="file"}
                <div class="margin" style="width: 120px;height: 120px;float: left;text-align: center;line-height: 120px;">
                    <img class="img-thumbnail" style="max-width: 120px; max-height: 120px;"
                         onclick="selectImage(this,'{$file.id}')"
                         src="__PUBLIC__/uploads/{$file.savepath}{$file.savename}">

                    <div class="cover" onclick="cancelSelectImage(this,'{$file.id}')"></div>
                </div>
            {/volist}
        </div>
    </div>
    <!-- /.box-body -->
    <div class="box-footer clearfix">
        {$page}
    </div>
</div>
<script type="text/javascript">
    $('#dialog-imageUploader .pagination a[href]').attr('onclick', 'tabPage(this)');
</script>

================================================
FILE: application/admin/view/help_index.html
================================================
<style type="text/css">
	#bodybox {
	    margin: 0 auto 10% auto;
	    width: 100%;
	    max-width: 640px;
	}
	.content-div {
	    background: #5cb3ff;
	    color: #fff;
	    padding: 5px 10px;
	    border-top-right-radius: 20px;
	    border-bottom-right-radius: 20px;
	    line-height: 30px;
	}
	#bodybox img {
	    width: 95%;
	    margin-top: 5%;
	    margin-left: 2.5%;
	}
	p {
	    margin-left: 10px;
	    text-indent: 2em;
	}
	h2 {
	    text-align: center;
	}
	.text-center {
	    text-align: center;
	}
</style>
<!-- Main content -->
<section class="content">
    <div class="box box-default color-palette-box">
        <div class="box-header with-border">

            <h3 class="box-title">使用帮助</h3>
        </div>
        <div class="box-body" id="bodybox">
        	<span class="content-div">第一步:对接公众号URL和Token</span>
        	<p>打开后台系统中系统设置项下面的微信设置,找到微信token项以及它下面的那串url地址(注:token类似于密码,token可以自己修改)。</p>
		    <img src="__PUBLIC__/static/dist/img/help/image1.png" />
		    <p class="text-center">图1 后台token对应位置</p>
		    <p>打开微信官方公众后台(https://mp.weixin.qq.com),登陆自己的公众号,进入到开发者模式模块,启用开发者模式,填写URL和Token两项(就是图1中的相关值)</p>
		    <img src="__PUBLIC__/static/dist/img/help/image2.png" />
		    <p class="text-center">图2 配置微信后台</p>

		    <span class="content-div">第二步:对接appid和AppSecret及微信支付参数</span>
		    <p>在微信公众后台可看到该公众号的appid和AppSecret,把这两项复制到后台系统中的对应位置。 微信支付参数设置同上述,将相关信息复制进对应位置。
		    </p>
		    <img src="__PUBLIC__/static/dist/img/help/image3.png" />
		    <p class="text-center">图3 系统后台对应位置</p>
		    <img src="__PUBLIC__/static/dist/img/help/image4.png" />
		    <p class="text-center">图4 微信appid和AppSecret</p>

		    <span class="content-div">第三步:设置自定义菜单</span>
		    <p>建议设置项:</p>
		    <p>商城首页:http://<?php echo $_SERVER['HTTP_HOST'];?>__ROOT__/app/index/index</p>

		    <span class="content-div">第四步:设置首次关注回复图片或文字</span>
		    <img src="__PUBLIC__/static/dist/img/help/image5.png" />
		    <p class="text-center">图5 系统后台对应微信设置</p>
		    <p>若需设置首次关注的图片,开启对应功能并上传对应图片。如果没开启,系统会去查询是否设置首次关注对应的描述,如果仍未设置,则不会有系统首次关注的回复。</p>

		    <span class="content-div">第五步:可设置qq客服</span>
		    <img src="__PUBLIC__/static/dist/img/help/image6.png" />
		    <p class="text-center">图5 系统后台对应设置</p>
        </div>
    </div>
</section>


================================================
FILE: application/admin/view/index_index.html
================================================

<section class="content">
    <div class="row">
        <!-- ./col -->
        <div class="col-lg-3 col-xs-6">
            <!-- small box -->
            <div class="small-box bg-aqua">
                <div class="inner">
                    <h3>{$todayUser|default =0}</h3>

                    <p>今日新用户</p>
                </div>
                <div class="icon">
                    <i class="ion ion-person-stalker"></i>
                </div>
                <a href="{:url('/admin/user/index/index',array('day'=>'today'))}" class="small-box-footer">更多详情 <i class="fa fa-arrow-circle-right"></i></a>
            </div>
        </div>
        <!-- ./col -->
        <div class="col-lg-3 col-xs-6">
            <!-- small box -->
            <div class="small-box bg-green">
                <div class="inner">
                    <h3>{$weekUser|default = 0}</h3>

                    <p>本周新用户</p>
                </div>
                <div class="icon">
                    <i class="ion ion-person-stalker"></i>
                </div>
                <a href="{:url('/admin/user/index/index',array('day'=>'week'))}" class="small-box-footer">更多详情 <i class="fa fa-arrow-circle-right"></i></a>
            </div>
        </div>
        <div class="col-lg-3 col-xs-6">
            <!-- small box -->
            <div class="small-box bg-yellow">
                <div class="inner">
                    <h3>{$monthUser|default = 0}</h3>

                    <p>本月新用户</p>
                </div>
                <div class="icon">
                    <i class="ion ion-person-stalker"></i>
                </div>
                <a href="{:url('/admin/user/index/index',array('day'=>'month'))}" class="small-box-footer">更多详情 <i class="fa fa-arrow-circle-right"></i></a>
            </div>
        </div>
        <div class="col-lg-3 col-xs-6">
            <!-- small box -->
            <div class="small-box bg-red">
                <div class="inner">
                    <h3>{$totalUser|default = 0}</h3>

                    <p>总用户</p>
                </div>
                <div class="icon">
                    <i class="ion ion-person-stalker"></i>
                </div>
                <a href="{:url('/admin/user/index/index',array('day'=>''))}" class="small-box-footer">更多详情 <i class="fa fa-arrow-circle-right"></i></a>
            </div>
        </div>
    </div>

    <div class="row">
        <div class="col-md-12">
            <!-- LINE CHART -->
            <div class="box box-default">
                <div class="box-header with-border">
                    <h3 class="box-title">新用户走势图</h3>
                </div>
                <div class="box-body">
                    <div class="chart">
                        <canvas id="newUserLineChart" style="height:250px"></canvas>
                    </div>
                </div>
                <!-- /.box-body -->
            </div>
            <!-- /.box -->
        </div>
    </div>

    <div class="row">
        <div class="col-md-12">
            <div class="box box-danger">
                <div class="box-header with-border">
                    <h3 class="box-title">系统信息</h3>
                </div>
                <div class="box-body">
                    <blockquote style="font-size: 13.5px;padding-left: 10px;">
                        THINKPHP版本:{$Think.THINK_VERSION}<br/>
                        服务器IP:{$Think.server.SERVER_ADDR}<br/>
                        服务器系统:<?php echo PHP_OS ?><br/>
                        PHP版本:<?php echo PHP_VERSION ?><br/>
                        当前时间:<?php echo (date("Y-m-d H:i:s",time())); ?><br/>
                        官网网址:<a href="http://www.wemallshop.com" target="_black">http://www.wemallshop.com</a><br/>
                    </blockquote>
                </div>
            </div>
        </div>
    </div>

    <div class="row">
        <div class="col-md-12">
            <div class="box box-default">
                <div class="box-header with-border">
                    <i class="fa fa-bullhorn"></i>
                    <h3 class="box-title">通知列表</h3>
                </div>
                <!-- /.box-header -->
                <div class="box-body">
                    {volist name="newsList.data" id="news"}
                        <div class="attachment-block clearfix" style="background-color: #fff">
                            <img class="attachment-img" src="{$url}public/uploads/{$news.file.savepath}{$news.file.savename}" alt="Attachment Image" style="width: 105px;height: 60px">
                            <div class="attachment-pushed">
                                <h3 class="attachment-heading" style="line-height: 60px">
                                    <a href="{$url}cms/article/{$news.pinyin}" target="_black" style="font-weight: 500;">{$news.title}</a>
                                </h3>
                                <!-- <div class="attachment-text"> -->
                                    <!-- {$news.sub}{$news.created_at} -->
                                    <!-- <a href="{$url}cms/article/{$news.pinyin}" target="_black">点击查看</a> -->
                                <!-- </div> -->
                            </div>
                        </div>
                    {/volist}
                </div>
            </div>
        </div>
    </div>











</section>

<script type="text/javascript">
    $(function () {
        //Get context with jQuery - using jQuery's .get() method.
        var ctx = $("#newUserLineChart").get(0).getContext("2d");
        //This will get the first returned node in the jQuery collection.

        var data = {
            labels : {$date|default = '1'},
            datasets : [
                {
                    fillColor : "rgba(220,220,220,0.5)",
                    strokeColor : "rgba(220,220,220,1)",
                    pointColor : "rgba(220,220,220,1)",
                    pointStrokeColor : "#fff",
                    data : {$newUserLine|default = '1'}
                }
            ]
        }

        new Chart(ctx).Line(data);
    });
</script>


================================================
FILE: application/admin/view/layout.html
================================================
{include file="./application/admin/view/public_header.html" /}

<body class="hold-transition skin-red-light">
    <div class="wrapper">
        <header class="main-header" style="position: fixed;width: 100%;background-color: white;z-index: 99;border-bottom: 1px solid #eeeeee;">
            <!-- Header Navbar: style can be found in header.less -->
            <nav class="navbar navbar-static-top" role="navigation">
                <!-- Sidebar toggle button-->
                <a href="javascript:void(0)" class="sidebar-toggle" id="sidebar-menu-title"></a>
                <div class="navbar-custom-menu">
                    <ul class="nav navbar-nav">
                        <!-- Messages: style can be found in dropdown.less-->
                        <!--信息通知-->
                        <li class="dropdown messages-menu">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                                <i class="fa fa-envelope-o"></i>
                            </a>
                            <ul class="dropdown-menu">
                            </ul>
                        </li>
                        <!-- Notifications: style can be found in dropdown.less -->
                        <li class="dropdown notifications-menu">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                                <i class="fa fa-bell-o"></i>
                            </a>
                            <ul class="dropdown-menu">
                            </ul>
                        </li>
                        <!-- User Account: style can be found in dropdown.less -->
                        <li class="dropdown user user-menu">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                                <img src="__PUBLIC__/static/dist/img/avatar-wemall.png" class="user-image" alt="User Image">
                                <span class="hidden-xs">{$Think.session.user_auth.username}</span>
                            </a>
                            <ul class="dropdown-menu">
                                <!-- User image -->
                                <!-- <li class="user-header">
                                    <img src="__PUBLIC__/static/dist/img/avatar-wemall.png" class="img-circle" alt="User Image">
                                    <p>
                                        {$Think.session.user_auth.username}
                                        <small>管理员</small>
                                    </p>
                                </li> -->
                                <!-- Menu Footer-->
                                <li class="user-footer">
                                    <a href="{:url('admin/public/loginout')}" target="_self" class="btn btn-default btn-flat">注销</a>
                                </li>
                            </ul>
                        </li>
                    </ul>
                </div>
            </nav>
        </header>
        <!-- Left side column. contains the logo and sidebar -->
        <aside class="main-sidebar" style="background-color: #444;">
            <!-- sidebar: style can be found in sidebar.less -->
            <section class="sidebar">
                <div class="team-logo" style="background-image: url(__PUBLIC__/static/dist/img/avatar-wemall.png)"></div>
                <!-- Sidebar user panel -->
                <!-- sidebar menu: : style can be found in sidebar.less -->
                <ul class="sidebar-menu" id="sidebar-menu" style="margin-top: 24px">
                    {include file="./application/admin/view/public_left.html" /}
                </ul>
            </section>
            <!-- /.sidebar -->
        </aside>
        <aside class="main-sidebar" style="margin-left: 90px;width: 110px;border-right: 1px solid #eeeeee;">
            <ul class="sidebar-menu" style="margin-top: 6px" id="sidebar-menu-sub">
                <!--sidebar-menu-sub container-->
            </ul>
        </aside>
        <!-- Content Wrapper. Contains page content -->
        <div class="content-wrapper" id="pjax-container" style="padding-top: 50px;">
            {__CONTENT__}
        </div>
        <!-- /.content-wrapper -->
        <footer class="main-footer">
            <div class="pull-right hidden-xs">
                <b>Version</b>7.0.0
            </div>
            <strong>Copyright &copy; 2014-2017 <a href="http://wemallshop.com/" target="_blank">wemallshop.com</a>.</strong> All rights reserved.
        </footer>
    </div>
    {include file="./application/admin/view/public_footer.html" /}




================================================
FILE: application/admin/view/layout_addons.html
================================================
{include file="./application/admin/view/public_header.html" /}

<body class="hold-transition skin-red-light">
    <div class="wrapper">
        <header class="main-header" style="position: fixed;width: 100%;background-color: white;z-index: 99;border-bottom: 1px solid #eeeeee;">
            <!-- Header Navbar: style can be found in header.less -->
            <nav class="navbar navbar-static-top" role="navigation">
                <!-- Sidebar toggle button-->
                <a href="javascript:void(0)" class="sidebar-toggle" id="sidebar-menu-title"></a>
                <div class="navbar-custom-menu">
                    <ul class="nav navbar-nav">
                        <!-- Messages: style can be found in dropdown.less-->
                        <!--信息通知-->
                        <li class="dropdown messages-menu">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                                <i class="fa fa-envelope-o"></i>
                            </a>
                            <ul class="dropdown-menu">
                            </ul>
                        </li>
                        <!-- Notifications: style can be found in dropdown.less -->
                        <li class="dropdown notifications-menu">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                                <i class="fa fa-bell-o"></i>
                            </a>
                            <ul class="dropdown-menu">
                            </ul>
                        </li>
                        <!-- User Account: style can be found in dropdown.less -->
                        <li class="dropdown user user-menu">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                                <img src="__PUBLIC__/static/dist/img/avatar-wemall.png" class="user-image" alt="User Image">
                                <span class="hidden-xs">{$Think.session.user_auth.username}</span>
                            </a>
                            <ul class="dropdown-menu">
                                <!-- User image -->
                                <!-- <li class="user-header">
                                    <img src="__PUBLIC__/static/dist/img/avatar-wemall.png" class="img-circle" alt="User Image">
                                    <p>
                                        {$Think.session.user_auth.username}
                                        <small>管理员</small>
                                    </p>
                                </li> -->
                                <!-- Menu Footer-->
                                <li class="user-footer">
                                    <a href="{:url('admin/public/loginout')}" target="_self" class="btn btn-default btn-flat">注销</a>
                                </li>
                            </ul>
                        </li>
                    </ul>
                </div>
            </nav>
        </header>
        <!-- Left side column. contains the logo and sidebar -->
        <aside class="main-sidebar" style="background-color: #444;">
            <!-- sidebar: style can be found in sidebar.less -->
            <section class="sidebar">
                <div class="team-logo" style="background-image: url(__PUBLIC__/static/dist/img/avatar-wemall.png)"></div>
                <!-- Sidebar user panel -->
                <!-- sidebar menu: : style can be found in sidebar.less -->
                <ul class="sidebar-menu" id="sidebar-menu" style="margin-top: 24px">
                    {include file="public/left" /}
                </ul>
            </section>
            <!-- /.sidebar -->
        </aside>
        <aside class="main-sidebar" style="margin-left: 90px;width: 110px;border-right: 1px solid #eeeeee;">
            <ul class="sidebar-menu" style="margin-top: 6px" id="sidebar-menu-sub">
                <!--sidebar-menu-sub container-->
            </ul>
        </aside>
        <!-- Content Wrapper. Contains page content -->
        <div class="content-wrapper" id="pjax-container" style="padding-top: 50px;">
            {__CONTENT__}
        </div>
        <!-- /.content-wrapper -->
        <footer class="main-footer">
            <div class="pull-right hidden-xs">
                <b>Version</b> 7.0.0
            </div>
            <strong>Copyright &copy; 2014-2017 <a href="http://wemallshop.com/" target="_blank">wemallshop.com</a>.</strong> All rights reserved.
        </footer>
    </div>
    {include file="./application/admin/view/public_footer.html" /}




================================================
FILE: application/admin/view/public_footer.html
================================================
<!-- Bootstrap 3.3.5 -->
<script src="__PUBLIC__/static/plugins/bootstrap/js/bootstrap.min.js"></script>
<!-- Select2 -->
<script src="__PUBLIC__/static/plugins/select2/select2.full.js"></script>
<!-- ChartJS 1.0.1 -->
<script src="__PUBLIC__/static/plugins/chartjs/Chart.min.js"></script>
<!-- daterangepicker -->
<script src="__PUBLIC__/static/dist/js/moment.min.js"></script>
<script src="__PUBLIC__/static/plugins/daterangepicker/daterangepicker.js"></script>
<!-- datepicker -->
<script src="__PUBLIC__/static/plugins/datepicker/bootstrap-datepicker.js"></script>
<!-- bootstrap time picker -->
<script src="__PUBLIC__/static/plugins/timepicker/bootstrap-timepicker.min.js"></script>
<!-- Slimscroll -->
<script src="__PUBLIC__/static/plugins/slimScroll/jquery.slimscroll.min.js"></script>
<!-- FastClick -->
<script src="__PUBLIC__/static/plugins/fastclick/fastclick.min.js"></script>
<!-- AdminLTE App -->
<script src="__PUBLIC__/static/dist/js/app.js?v=6"></script>
<!--layer-->
<!-- <script src="__PUBLIC__/static/plugins/layer/layer.js"></script> -->
<!--toastr-->
<script src="__PUBLIC__/static/plugins/toastr/toastr.min.js"></script>
<!--bootbox-->
<script src="__PUBLIC__/static/plugins/bootbox/bootbox.js"></script>
<!--pjax-->
<script src="__PUBLIC__/static/plugins/pjax/jquery.pjax.js"></script>
<!--jquery.form-->
<script src="__PUBLIC__/static/plugins/form/jquery.form.js"></script>
<!--wangeditor-->
<!-- <link rel="stylesheet" type="text/css" href="__PUBLIC__/static/plugins/wangeditor/css/wangEditor.css"> -->
<!-- <script src="__PUBLIC__/static/plugins/wangeditor/js/wangEditor.js"></script> -->

<!--时间-->
<script src="__PUBLIC__/static/plugins/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script src="__PUBLIC__/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js"></script>

<!--ueditor-->
<!-- <script type="text/javascript" src="/public/ueditor/ueditor.config.js"></script> -->
<!-- <script type="text/javascript" src="/public/ueditor/ueditor.all.min.js"></script> -->
<!--地图-->
<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.3&key=8daf0e161f44e7900d2193f85c5cfe1f&plugin=AMap.DistrictSearch"></script>
<script src="__PUBLIC__/static/dist/js/wemall.js?v=114"></script>
</body>
</html>

================================================
FILE: application/admin/view/public_header.html
================================================
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>wemall商城后台管理</title>
    <!-- Tell the browser to be responsive to screen width -->
    <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
    <!-- Bootstrap 3.3.5 -->
    <link rel="stylesheet" href="__PUBLIC__/static/plugins/bootstrap/css/bootstrap.min.css?v=1">
    <!-- Font Awesome -->
    <link rel="stylesheet" href="__PUBLIC__/static/dist/css/font-awesome.min.css">
    <!-- Ionicons -->
    <link rel="stylesheet" href="__PUBLIC__/static/dist/css/ionicons.min.css">
    <!-- Select2 -->
    <link rel="stylesheet" href="__PUBLIC__/static/plugins/select2/select2.min.css">
    <!-- Theme style -->
    <link rel="stylesheet" href="__PUBLIC__/static/dist/css/AdminLTE.css?v=1">
    <!-- Date Picker -->
    <link rel="stylesheet" href="__PUBLIC__/static/plugins/datepicker/datepicker3.css">
    <!-- Daterange picker -->
    <link rel="stylesheet" href="__PUBLIC__/static/plugins/daterangepicker/daterangepicker-bs3.css">
    <!-- Bootstrap time Picker -->
    <link rel="stylesheet" href="__PUBLIC__/static/plugins/timepicker/bootstrap-timepicker.min.css">
    <!-- layui -->
    <link rel="stylesheet" href="__PUBLIC__/static/layui/css/layui.css?v=2">

    <link rel="stylesheet" href="__PUBLIC__/static/plugins/bootstrap-datetimepicker/css/bootstrap-datetimepicker.css">
    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
    <script src="__PUBLIC__/static/dist/js/html5shiv.min.js"></script>
    <script src="__PUBLIC__/static/dist/js/respond.min.js"></script>
    <![endif]-->
    <link rel="stylesheet" href="__PUBLIC__/static/plugins/toastr/toastr.min.css">
    <!-- jQuery 2.1.4 -->
    <script src="__PUBLIC__/static/plugins/jQuery/jQuery-2.2.0.min.js"></script>
    <!-- layui -->
    <script src="__PUBLIC__/static/layui/layui.js?v=2"></script>
    <!--ueditor-->
    <script type="text/javascript" charset="utf-8" src="__PUBLIC__/static/ueditor/ueditor.config.js?v=1"></script>
    <script type="text/javascript" charset="utf-8" src="__PUBLIC__/static/ueditor/ueditor.all.min.js"></script>
    <!--建议手动加在语言,避免在ie下有时因为加载语言失败导致编辑器加载失败-->
    <!--这里加载的语言文件会覆盖你在配置项目里添加的语言类型,比如你在配置项目里配置的是英文,这里加载的中文,那最后就是中文-->
    <script type="text/javascript" charset="utf-8" src="__PUBLIC__/static/ueditor/lang/zh-cn/zh-cn.js"></script>
    <script type="text/javascript" charset="utf-8" src='__PUBLIC__/static/plugins/nprogress/nprogress.js'></script>
    <link rel='stylesheet' href='__PUBLIC__/static/plugins/nprogress/nprogress.css'/>
    <!-- Ionicons -->
    <!-- <link rel="stylesheet" href="__PUBLIC__/static/zTree/css/zTreeStyle/zTreeStyle.css"> -->
    <!-- <script type="text/javascript" charset="utf-8" src='__PUBLIC__/static/zTree/js/jquery.ztree.all.js'></script> -->
    <script>
        var URL = '__ROOT__/';
        var PUBLIC = '__PUBLIC__';
    </script>
</head>

================================================
FILE: application/admin/view/public_left.html
================================================
<li class="treeview">
    <a href="#">
        <i class="fa fa-dashboard"></i> <span>首页</span> 
    </a>
    <ul class="treeview-menu">
        <li><a href="{:url('admin/index/index')}"><i class="fa "></i>系统首页</a></li>
    </ul>
</li>
<li class="treeview">
    <a href="#">
        <i class="fa fa-gears"></i> <span>设置</span> 
    </a>
    <ul class="treeview-menu">
        <li><a href="{:url('/admin/config/site/index')}"><i class="fa "></i>站点设置</a></li>
        <li><a href="{:url('/admin/config/sms/index')}"><i class="fa "></i>短信配置</a></li>
        <li><a href="{:url('/admin/config/mail/index')}"><i class="fa "></i>邮件配置</a></li>
    </ul>
</li>
<li class="treeview">
    <a href="#">
        <i class="fa fa-link"></i> <span>微信</span> 
    </a>
    <ul class="treeview-menu">
        <li><a href="{:url('/admin/wx/config/index')}"><i class="fa "></i>微信配置</a></li>
        <li><a href="{:url('/admin/wx/menu/index')}"><i class="fa "></i>微信菜单</a></li>
        <li><a href="{:url('/admin/wx/reply/index')}"><i class="fa "></i>自定义回复</a></li>
        <li><a href="{:url('/admin/wx/tplmsg/index')}"><i class="fa "></i>模版消息</a></li>
        <li><a href="{:url('/admin/wx/kefu/index')}"><i class="fa "></i>多客服设置</a></li>
        <li><a href="{:url('/admin/wx/print/index')}"><i class="fa "></i>微信打印机</a></li>
    </ul>
</li>
<li class="treeview">
    <a href="#">
        <i class="fa fa-edit"></i> <span>内容</span> 
    </a>
    <ul class="treeview-menu">
        <li><a href="{:url('/admin/article/category/index')}"><i class="fa "></i>文章分类</a></li>
        <li><a href="{:url('/admin/article/index/index')}"><i class="fa "></i>文章列表</a></li>
    </ul>
</li>
<li class="treeview">
    <a href="javascript:void(0)">
        <i class="fa fa-code"></i> <span>模版</span>
    </a>
    <ul class="treeview-menu">
        <li><a href="{:url('/admin/tpl/shop/index')}"><i class="fa "></i>模版设置</a></li>
        <li><a href="{:url('/admin/tpl/mail/index')}"><i class="fa "></i>邮件模版</a></li>
        <li><a href="{:url('/admin/tpl/sms/index')}"><i class="fa "></i>短信模版</a></li>
    </ul>
</li>
<li class="treeview">
    <a href="#">
        <i class="fa fa-group"></i> <span>用户</span> 
    </a>
    <ul class="treeview-menu">
        <li><a href="{:url('/admin/auth/group/index')}"><i class="fa "></i>管理员用户组</a></li>
        <li><a href="{:url('/admin/auth/admin/index')}"><i class="fa "></i>管理员列表</a></li>
        <li><a href="{:url('/admin/user/index/index')}"><i class="fa "></i>用户列表</a></li>
        <li><a href="{:url('/admin/user/level/index')}"><i class="fa "></i>会员等级</a></li>
    </ul>
</li>
<li class="treeview">
    <a href="#">
        <i class="fa fa-inbox"></i> <span>插件</span>
    </a>
    <ul class="treeview-menu">
        <li><a href="{:url('/admin/addons/index')}"><i class="fa "></i>插件管理</a></li>
        <li><a href="{:url('/admin/addons/shop')}"><i class="fa "></i>插件商店</a></li>
    </ul>
</li>
<li class="treeview">
    <a href="#">
        <i class="fa fa-hand-o-right"></i> <span>帮助</span>
    </a>
    <ul class="treeview-menu">
        <li><a href="{:url('/admin/help/index')}"><i class="fa "></i>使用帮助</a></li>
    </ul>
</li>


================================================
FILE: application/admin/view/public_login.html
================================================
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>WeMall微商城</title>
    <!-- Tell the browser to be responsive to screen width -->
    <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
    <!-- Bootstrap 3.3.5 -->
    <link rel="stylesheet" href="__PUBLIC__/static/plugins/bootstrap/css/bootstrap.min.css">
    <!-- Theme style -->
    <link rel="stylesheet" href="__PUBLIC__/static/dist/css/AdminLTE.css">
    <!-- layui -->
    <link rel="stylesheet" href="__PUBLIC__/static/layui/css/layui.css">
    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
    <script src="/static/dist/js/html5shiv.min.js"></script>
    <script src="/static/dist/js/1.4.2/respond.min.js"></script>
    <![endif]-->
</head>

<body class="hold-transition login-page" style="background-image:url(__PUBLIC__/static/wallpage/bg_{:rand(1,8)}.jpg);background-size: cover;">
    <div class="login-box">
        <div class="login-box-body">
            <div class="login-logo" style="margin: 30px 10px">
                <img src="__PUBLIC__/static/dist/img/logo.png">
            </div>
            <form class="layui-form">
                <div class="form-group has-feedback">
                    <input type="text" name="username" required lay-verify="required" placeholder="用户名" class="layui-input">
                    <span class="glyphicon glyphicon-envelope form-control-feedback"></span>
                </div>
                <div class="form-group has-feedback">
                    <input type="password" name="password" required lay-verify="required" placeholder="密码" class="layui-input">
                    <span class="glyphicon glyphicon-lock form-control-feedback"></span>
                </div>
                <div class="form-group has-feedback" id="changeVerity">
                    <input type="text" name="verify" required lay-verify="required" placeholder="验证码" class="layui-input" style="width: 70%;float: left">
                    <img src="{:captcha_src()}?t={:rand(10000,99999)}" alt="captcha" class="yzm-img" style="width: 30%;border: 1px solid #ccc;height: 38px;border-left: 0px;cursor:pointer" onclick="this.src='{:captcha_src()}'+'?t='+Math.random()" />
                </div>
                <div class="row">
                    <div class="col-xs-8"></div>
                    <div class="col-xs-4">
                        <button class="btn btn-primary btn-block btn-flat" lay-submit lay-filter="login">登录</button>
                    </div>
                </div>
            </form>
        </div>
    </div>
    <div class="common_footer">Powered by WeMall | Copyright © <a href="http://www.wemallshop.com/" style="color: white;" target="_blank">wemallshop.com</a> All rights reserved.
    </div>
    <!-- jQuery 2.1.4 -->
    <script src="__PUBLIC__/static/dist/js/jquery-2.1.4.min.js"></script>
    <!-- Bootstrap 3.3.5 -->
    <script src="__PUBLIC__/static/plugins/bootstrap/js/bootstrap.min.js"></script>
    <!-- layui -->
    <script src="__PUBLIC__/static/layui/layui.js"></script>
    <script>
    $('#changeVerity').click(function() {
        $(this).find('img').attr('src', '{:captcha_src()}?' + Math.random());
    });
    layui.use('form', function() {
        var form = layui.form();

        //监听提交
        form.on('submit(login)', function(data) {
            // layer.msg(JSON.stringify(data.field));
            $.ajax({
                type: "post",
                url: "{:url('admin/public/login')}",
                data: data.field,
                success: function(data) {
                    layer.msg(data.msg);
                    if (data.status) {
                        location.href = "{:url('admin/index/index')}";
                    }
                },
                beforeSend: function() {

                },
                complete: function() {

                }

            });
            return false;
        });
    });
    </script>
</body>

</html>


================================================
FILE: application/admin/view/tpl/mail_add.html
================================================
<!-- Main content -->
<section class="content">
    <div class="row">
        <div class="col-md-12">
            <div class="callout callout-danger">
                <p>支持的变量:</p>
                <p>验证码:$code</p>
                <p>模版内容举例:您好,欢迎您注册wemallshop微信商城,您的验证码是:$code</p>
            </div>
            <!-- general form elements -->
            <div class="box">
                <div class="box-header with-border">
                    <h3 class="box-title">邮件模版</h3>
                </div>
                <!-- form start -->
                <form class="form-horizontal" action="{:url('/admin/tpl/mail/add')}" method="post" enctype="text/plain">
                    <div class="box-body">
                        <input class="form-control" name="id" placeholder="" value="{$mail.id|default=0}"
                               type="hidden">

                        <div class="form-group">
                            <label class="col-sm-2 control-label">邮件类型</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="name" disabled placeholder="" value="{$mail.name|default=''}"
                                       type="text">
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">内容</label>

                            <div class="col-sm-10">
                                <!-- 加载编辑器的容器 -->
                                <script id="UEditor" name="content" type="text/plain" style="height:500px;">
                                    {$mail.content|default=''}
                                </script>
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">测试邮箱</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="mail" placeholder="" value="{$mail.mail|default=''}"
                                       type="text">
                            </div>
                        </div>
                    </div>

                    <div class="box-footer">
                        <div class="col-sm-2">
                            <button type="submit" class="btn btn-block btn-danger">保存</button>
                        </div>
                    </div>

                </form>
            </div>
            <!-- /.box -->
        </div>
        <!--/.col (right) -->
    </div>
</section>

<script type="text/javascript">
    $(function () {
        //实例化编辑器异步载入
        var editor = new UE.ui.Editor();
        editor.render("UEditor");
    });
</script>

================================================
FILE: application/admin/view/tpl/mail_index.html
================================================
<!-- Main content -->
<section class="content">
    <div class="row">
        <!-- /.col -->
        <div class="col-md-12">
            <div class="box box-default">
                <div class="box-header with-border">
                    <h3 class="box-title">邮件模版管理</h3>
                    <!-- /.box-tools -->
                </div>
                <!-- /.box-header -->
                <div class="box-body no-padding">
                    <div class="mailbox-controls">
                        <!-- <div class="btn-group">
                            <a href="{:url('/admin/tpl/mail/add')}" class="btn btn-danger ">
                                新增邮件模版
                            </a>
                        </div> -->
                    </div>
                    <div class="table-responsive" style="overflow-x: visible;">
                        <table class="table table-bordered table-hover">
                            <tbody>
                            <tr>
                                <th>
                                    <label><input onchange="checkAll()" type="checkbox" value=""></label>
                                </th>
                                <th>编号</th>
                                <th>邮件类型</th>
                                <th>模版内容</th>
                                <th>测试邮箱</th>
                                <th>状态</th>
                                <th>操作</th>
                            </tr>
                            {volist name="maillist" id="mail"}
                            <tr>
                                <td>
                                    <label><input name="checkbox" class="check" type="checkbox" value="{$mail.id}"></label>
                                </td>
                                <td>{$mail.id}</td>
                                <td>{$mail.name}</td>
                                <td>{$mail.content}</td>
                                <td>{$mail.mail}</td>
                                <td>
                                    {eq name="mail.status" value="1"}
                                        <span class="label label-success">开启</span> 
                                    {else/}
                                        <span class="label label-default">关闭</span> 
                                    {/eq} 
                                </td>
                                <td class="table-action">
                                    <a href="{:url('/admin/tpl/mail/add',array('id'=>$mail['id']))}">编辑</a>
                                    {eq name="mail.status" value="0"}
                                    <a href="{:url('/admin/tpl/mail/update',array('id'=>$mail['id'],'status'=>1))}">开启</a> 
                                    {else}
                                    <a href="{:url('/admin/tpl/mail/update',array('id'=>$mail['id'],'status'=>0))}">关闭</a> 
                                    {/eq} 
                                    <a href="{:url('/admin/tpl/mail/send',array('id'=>$mail['id']))}">发一封测试</a>
                                </td>
                            </tr>
                            {/volist}
                            </tbody>
                        </table>
                    </div>
                    <!-- /.mail-box-messages -->
                </div>
                <!-- /.box-body -->
                <div class="box-footer no-padding">
                    <div class="mailbox-controls">
                        <div class="btn-group">
                            <button type="button" class="btn btn-danger"
                                    onclick="batchUrl('{:url(\'/admin/tpl/mail/update\',array(\'status\'=>1))}')">
                                开启
                            </button>
                        </div>
                        <div class="btn-group">
                        	<button type="button" class="btn btn-danger"
                                    onclick="batchUrl('{:url(\'/admin/tpl/mail/update\',array(\'status\'=>0))}')">
                                关闭
                            </button>
                        </div>
                        <div class="btn-group pull-right">
                            {$maillist->render()}
                        </div>
                    </div>
                </div>
            </div>
            <!-- /. box -->
        </div>
        <!-- /.col -->
    </div>
</section>
<script type="text/javascript">


</script>



================================================
FILE: application/admin/view/tpl/shop_index.html
================================================

<!-- Main content -->
<section class="content">
    <div class="row">
        <div class="col-lg-12">
            <div class="widget-container fluid-height clearfix">
                <div class="widget-content padded">
                    <div class="row">
                        <div class="col-xs-12 no-padding-right">
                            <div style="width: 260px; float: left;">
                                <img src="{$rootUrl}/tpl/theme/{$settheme}/thumb.png" style="width: 240px; height: 340px;"
                                     class="img-thumbnail">
                                <button type="button" class="btn btn-danger"
                                        style="margin: 6px 10px 0px 0px; width: 240px;">已设置
                                </button>
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-xs-12" style="margin-top:20px;">
                            {volist name="theme" id="theme"}
                                <div style="width: 260px; float: left;">
                                    <img src="{$rootUrl}/tpl/theme/{$theme}/thumb.png"
                                         style="width: 240px; height: 340px;"
                                         class="img-thumbnail">
                                    <a href="{:url('/admin/tpl/shop/index',array('theme'=>$theme))}" type="button"
                                       class="btn btn-default"
                                       style="margin: 6px 10px 0px 0px; width: 240px;">设置</a>
                                </div>
                            {/volist}
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</section>



================================================
FILE: application/admin/view/tpl/sms_add.html
================================================
<!-- Main content -->
<section class="content">
    <div class="row">
        <div class="col-md-12">
            <div class="callout callout-danger">
                <p>支持的变量:</p>
                <p>验证码:${code}</p>
                <p>模版内容举例:您的本次验证码${code},10分钟内输入有效,感谢使用平台</p>
            </div>
            <!-- general form elements -->
            <div class="box">
                <div class="box-header with-border">
                    <h3 class="box-title">短信模版</h3>
                </div>
                <!-- form start -->
                <form class="form-horizontal" action="{:url('/admin/tpl/sms/add')}" method="post" enctype="text/plain">
                    <div class="box-body">
                        <input class="form-control" name="id" placeholder="" value="{$sms.id|default=0}"
                               type="hidden">

                        <div class="form-group">
                            <label class="col-sm-2 control-label">模版类型</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="name" disabled placeholder="" value="{$sms.name|default=''}"
                                       type="text">
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">模版ID</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="template_code" placeholder="" value="{$sms.template_code|default=''}"
                                       type="text">
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">模版内容</label>

                            <div class="col-sm-10">
                               <!-- <textarea class="form-control" name="description" placeholder="" rows="3">{$sms.content|default=''}</textarea> -->
                               <textarea class="form-control" name="content" maxlength="5000" placeholder="变量格式:${code}; 示例:您的本次验证码${code},10分钟内输入有效,感谢使用平台">{$sms.content|default=''}</textarea>
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-2 control-label">测试手机号</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="phone" placeholder="" value="{$sms.phone|default=''}"
                                       type="text">
                            </div>
                        </div>
      
                    </div>

                    <div class="box-footer">
                        <div class="col-sm-2">
                            <button type="submit" class="btn btn-block btn-danger">保存</button>
                        </div>
                    </div>

                </form>
            </div>
            <!-- /.box -->
        </div>
        <!--/.col (right) -->
    </div>
</section>

<script type="text/javascript">
    $(function () {
      
    });
</script>

================================================
FILE: application/admin/view/tpl/sms_index.html
================================================
<!-- Main content -->
<section class="content">
    <div class="row">
        <!-- /.col -->
        <div class="col-md-12">
            <div class="box box-default">
                <div class="box-header with-border">
                    <h3 class="box-title">短信模版管理</h3>
                    <!-- /.box-tools -->
                </div>
                <!-- /.box-header -->
                <div class="box-body no-padding">
                    <div class="mailbox-controls">
                        <!-- <div class="btn-group">
                            <a href="{:url('/admin/tpl/sms/add')}" class="btn btn-danger ">
                                新增短信模版
                            </a>
                        </div> -->
                    </div>
                    <div class="table-responsive" style="overflow-x: visible;">
                        <table class="table table-bordered table-hover">
                            <tbody>
                            <tr>
                                <th>
                                    <label><input onchange="checkAll()" type="checkbox" value=""></label>
                                </th>
                                <th>编号</th>
                                <th>模版类型</th>
                                <th>模版ID</th>
                                <th>模版内容</th>
                                <th>测试号码</th>
                                <th>状态</th>
                                <th>操作</th>
                            </tr>
                            {volist name="smslist" id="sms"}
                            <tr>
                                <td>
                                    <label><input name="checkbox" class="check" type="checkbox" value="{$sms.id}"></label>
                                </td>
                                <td>{$sms.id}</td>
                                <td>{$sms.name}</td>
                                <td>{$sms.template_code}</td>
                                <td>{$sms.content}</td>
                                <td>{$sms.phone}</td>
                                <td>
                                    {eq name="sms.status" value="1"}
                                        <span class="label label-success">开启</span> 
                                    {else/}
                                        <span class="label label-default">关闭</span> 
                                    {/eq} 
                                </td>
                                <td class="table-action">
                                    <a href="{:url('/admin/tpl/sms/add',array('id'=>$sms['id']))}">编辑</a>
                                    {eq name="sms.status" value="0"}
                                    <a href="{:url('/admin/tpl/sms/update',array('id'=>$sms['id'],'status'=>1))}">开启</a> 
                                    {else}
                                    <a href="{:url('/admin/tpl/sms/update',array('id'=>$sms['id'],'status'=>0))}">关闭</a> 
                                    {/eq}
                                    <a href="{:url('/admin/tpl/sms/send',array('id'=>$sms['id']))}">发一条测试</a>
                                </td>
                            </tr>
                            {/volist}
                            </tbody>
                        </table>
                    </div>
                    <!-- /.sms-box-messages -->
                </div>
                <!-- /.box-body -->
                <div class="box-footer no-padding">
                    <div class="mailbox-controls">
                        <div class="btn-group">
                            <button type="button" class="btn btn-danger"
                                    onclick="batchUrl('{:url(\'/admin/tpl/sms/update\',array(\'status\'=>1))}')">
                                开启
                            </button>
                        </div>
                        <div class="btn-group">
                        	<button type="button" class="btn btn-danger"
                                    onclick="batchUrl('{:url(\'/admin/tpl/sms/update\',array(\'status\'=>0))}')">
                                关闭
                            </button>
                        </div>
                        <div class="btn-group pull-right">
                            {$smslist->render()}
                        </div>
                    </div>
                </div>
            </div>
            <!-- /. box -->
        </div>
        <!-- /.col -->
    </div>
</section>
<script type="text/javascript">


</script>



================================================
FILE: application/admin/view/user/index_add.html
================================================

<!-- Main content -->
<section class="content">
    <div class="row">
        <div class="col-md-12">
            <!-- general form elements -->
            <div class="box box-default">
                <div class="box-header with-border">
                    <h3 class="box-title">新增/修改用户</h3>
                </div>
                <!-- form start -->
                <form class="form-horizontal layui-form" action="{:url('/admin/user/index/add')}" method="post">
                    <div class="box-body">
                        <input class="form-control" name="id" placeholder="" value="{$user.id|default=0}"
                               type="hidden">

                        <div class="form-group">
                            <label class="col-sm-2 control-label">用户名</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="username" placeholder="" value="{$user.username}"
                                       type="text">
                            </div>
                        </div>
                        <div class="form-group">
                            <label class="col-sm-2 control-label">手机号</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="phone" placeholder="" value="{$user.phone}"
                                       type="text">
                            </div>
                        </div>
                        <div class="form-group">
                            <label class="col-sm-2 control-label">密码</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="password" placeholder="请输入新密码" value=""
                                       type="text">
                            </div>
                        </div>
                        <div class="form-group">
                            <label class="col-sm-2 control-label">账户</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="money" placeholder="" value="{$user.money}"
                                       type="text">
                            </div>
                        </div>
                        <div class="form-group">
                            <label class="col-sm-2 control-label">积分</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="score" placeholder="" value="{$user.score}"
                                       type="text">
                            </div>
                        </div>
                        <div class="form-group">
                            <label class="col-sm-2 control-label">备注</label>

                            <div class="col-sm-10">
                                <input class="form-control" name="remark" placeholder="" value="{$user.remark}"
                                       type="text">
                            </div>
                        </div>
                        {neq name="user.id|default=0" value="1"}
                        <div class="form-group">
                            <label class="control-label col-md-2">状态</label>

                            <div class="col-md-7">
                                <input type="radio" name="status" value="1" lay-filter="type" title="启用"
                                    {eq name="user.status|default='1'" value="1"}checked{/eq}>
                                <input type="radio" name="status" value="0" lay-filter="type" title="禁用" 
                                    {eq name="user.status|default=''" value="0"}checked{/eq}>
                            </div>
                        </div>
                        {/neq}
                        <!-- /.box-body -->

                        <div class="box-footer">
                            <div class="col-sm-2">
                                <button type="submit" class="btn btn-block btn-danger">保存</button>
                            </div>

                            <div class="col-sm-2">
                                <button type="button" class="btn btn-block btn-default" onclick="history.go(-1)">取消
                                </button>
                            </div>
                        </div>
                </form>
            </div>
            <!-- /.box -->
        </div>
        <!--/.col (right) -->
    </div>
</section>
<script type="text/javascript">
    $(function () {
        layui.use('form', function() {
            var form = layui.form();
            form.render(); //更新全部
        });
    });
</script>


================================================
FILE: application/admin/view/user/index_index.html
================================================
<!-- Main content -->
<section class="content">
    <div class="row">
        <!-- /.col -->
        <div class="col-md-12">
            <div class="box box-default">
                <div class="box-header with-border">
                    <h3 class="box-title">用户管理</h3>
                    <!-- /.box-tools -->
                    <div class="box-tools">
                        <form class="form-horizontal" action="{:url('/admin/user/index/index')}" method="post">
                            <div class="input-group input-group-sm" style="width: 250px;">
                                <input type="text" name="name" class="form-control pull-right" placeholder="用户名">

                                <div class="input-group-btn">
                                    <button type="submit" class="btn btn-default"><i class="fa fa-search"></i></button>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
                <div style="margin-top: 10px;">
                    <div class="btn-group" style="margin-left: 10px;">
                        <a href="{:url('/admin/user/index/export')}" target="_blank" class="btn btn-danger ">
                            导出全部用户
                        </a>
                    </div>
                </div>
                <!-- /.box-header -->
                <div class="box-body table-responsive">
                    <table class="table table-bordered table-hover">
                        <tbody>
                            <tr>
                                <th class="hidden-xs">
                                    <label>
                                        <input onchange="checkAll()" type="checkbox" value="">
                                    </label>
                                </th>
                                <th>编号</th>
                                <th>用户名</th>
                                <th>账户</th>
                                <th>积分</th>
                                <th>等级</th>
                                <th>状态</th>
                                <th>备注</th>
                                <th>注册时间</th>
                                <th>操作</th>
                            </tr>
                            {volist name="userlist" id="user"}
                            <tr>
                                <td class="hidden-xs">
                                    <label>
                                        <input name="checkbox" class="check" type="checkbox" value="{$user.id}">
                                    </label>
                                </td>
                                <td>{$user.id}</td>
                                <td>
                                    {empty name="user.avater"}
         
Download .txt
gitextract_l5oxnja2/

├── .htaccess
├── .travis.yml
├── LICENSE.txt
├── README.md
├── addons/
│   ├── common/
│   │   └── config.php
│   └── putong/
│       ├── config.php
│       └── demo/
│           ├── Demo.php
│           ├── config.php
│           ├── controller/
│           │   ├── Admin.php
│           │   └── Index.php
│           ├── data/
│           │   ├── install.sql
│           │   └── uninstall.sql
│           ├── info.html
│           ├── model/
│           │   └── AddonsPutongDemoConfig.php
│           └── view/
│               ├── admin_add.html
│               ├── admin_index.html
│               ├── index_index.html
│               └── public_left.html
├── application/
│   ├── .htaccess
│   ├── admin/
│   │   ├── common.php
│   │   ├── config.php
│   │   ├── controller/
│   │   │   ├── AddonsController.php
│   │   │   ├── BaseController.php
│   │   │   ├── FileController.php
│   │   │   ├── HelpController.php
│   │   │   ├── IndexController.php
│   │   │   ├── PublicController.php
│   │   │   ├── WechatController.php
│   │   │   ├── article/
│   │   │   │   ├── CategoryController.php
│   │   │   │   └── IndexController.php
│   │   │   ├── auth/
│   │   │   │   ├── AdminController.php
│   │   │   │   └── GroupController.php
│   │   │   ├── config/
│   │   │   │   ├── MailController.php
│   │   │   │   ├── SiteController.php
│   │   │   │   └── SmsController.php
│   │   │   ├── tpl/
│   │   │   │   ├── MailController.php
│   │   │   │   ├── ShopController.php
│   │   │   │   └── SmsController.php
│   │   │   ├── user/
│   │   │   │   ├── IndexController.php
│   │   │   │   └── LevelController.php
│   │   │   └── wx/
│   │   │       ├── ConfigController.php
│   │   │       ├── KefuController.php
│   │   │       ├── MenuController.php
│   │   │       ├── PrintController.php
│   │   │       ├── ReplyController.php
│   │   │       └── TplmsgController.php
│   │   ├── validate/
│   │   │   └── Admin.php
│   │   └── view/
│   │       ├── addons_index.html
│   │       ├── addons_shop.html
│   │       ├── analysis_user.html
│   │       ├── article/
│   │       │   ├── category_add.html
│   │       │   ├── category_index.html
│   │       │   ├── index_add.html
│   │       │   └── index_index.html
│   │       ├── auth/
│   │       │   ├── admin_add.html
│   │       │   ├── admin_index.html
│   │       │   ├── group_add.html
│   │       │   └── group_index.html
│   │       ├── config/
│   │       │   ├── mail_index.html
│   │       │   ├── site_index.html
│   │       │   └── sms_index.html
│   │       ├── file_index.html
│   │       ├── help_index.html
│   │       ├── index_index.html
│   │       ├── layout.html
│   │       ├── layout_addons.html
│   │       ├── public_footer.html
│   │       ├── public_header.html
│   │       ├── public_left.html
│   │       ├── public_login.html
│   │       ├── tpl/
│   │       │   ├── mail_add.html
│   │       │   ├── mail_index.html
│   │       │   ├── shop_index.html
│   │       │   ├── sms_add.html
│   │       │   └── sms_index.html
│   │       ├── user/
│   │       │   ├── index_add.html
│   │       │   ├── index_index.html
│   │       │   ├── level_add.html
│   │       │   └── level_index.html
│   │       └── wx/
│   │           ├── config_index.html
│   │           ├── kefu_index.html
│   │           ├── menu_add.html
│   │           ├── menu_index.html
│   │           ├── print_index.html
│   │           ├── reply_add.html
│   │           ├── reply_index.html
│   │           ├── tplmsg_add.html
│   │           └── tplmsg_index.html
│   ├── app/
│   │   └── controller/
│   │       ├── AddonsController.php
│   │       └── IndexController.php
│   ├── command.php
│   ├── common/
│   │   ├── behavior/
│   │   │   └── Config.php
│   │   └── model/
│   │       ├── Admin.php
│   │       ├── Analysis.php
│   │       ├── Article.php
│   │       ├── ArticleCategory.php
│   │       ├── AuthGroup.php
│   │       ├── AuthGroupAccess.php
│   │       ├── AuthRule.php
│   │       ├── Config.php
│   │       ├── File.php
│   │       ├── Mail.php
│   │       ├── MailTpl.php
│   │       ├── Sms.php
│   │       ├── SmsTpl.php
│   │       ├── User.php
│   │       ├── UserLevel.php
│   │       ├── WxConfig.php
│   │       ├── WxKefu.php
│   │       ├── WxMenu.php
│   │       ├── WxPrint.php
│   │       ├── WxReply.php
│   │       └── WxTplmsg.php
│   ├── common.php
│   ├── config.php
│   ├── database.php
│   ├── install/
│   │   ├── common.php
│   │   ├── config.php
│   │   ├── controller/
│   │   │   └── IndexController.php
│   │   ├── data/
│   │   │   └── database.tpl
│   │   └── view/
│   │       ├── index.html
│   │       ├── index_header.html
│   │       ├── index_index.html
│   │       ├── index_setup1.html
│   │       ├── index_setup2.html
│   │       └── index_setup3.html
│   ├── route.php
│   └── tags.php
├── build.php
├── composer.json
├── data/
│   └── index.html
├── extend/
│   └── com/
│       └── Auth.php
├── index.php
├── public/
│   ├── .htaccess
│   ├── index.php
│   ├── install/
│   │   ├── css/
│   │   │   ├── base.css
│   │   │   └── style.css
│   │   └── js/
│   │       └── install.js
│   ├── robots.txt
│   ├── router.php
│   └── static/
│       ├── article/
│       │   ├── page_mp_article_improve2756b8.css
│       │   ├── page_mp_article_improve_combo2805ea.css
│       │   └── page_mp_article_improve_pc2637ae.css
│       ├── dist/
│       │   ├── css/
│       │   │   └── AdminLTE.css
│       │   ├── fonts/
│       │   │   └── FontAwesome.otf
│       │   └── js/
│       │       ├── app.js
│       │       └── wemall.js
│       ├── layui/
│       │   ├── css/
│       │   │   ├── layui.css
│       │   │   └── modules/
│       │   │       ├── code.css
│       │   │       ├── laydate/
│       │   │       │   └── laydate.css
│       │   │       └── layer/
│       │   │           └── default/
│       │   │               └── layer.css
│       │   ├── lay/
│       │   │   ├── dest/
│       │   │   │   └── layui.all.js
│       │   │   ├── lib/
│       │   │   │   └── jquery.js
│       │   │   └── modules/
│       │   │       ├── code.js
│       │   │       ├── element.js
│       │   │       ├── flow.js
│       │   │       ├── form.js
│       │   │       ├── laydate.js
│       │   │       ├── layedit.js
│       │   │       ├── layer.js
│       │   │       ├── laypage.js
│       │   │       ├── laytpl.js
│       │   │       ├── tree.js
│       │   │       ├── upload.js
│       │   │       └── util.js
│       │   └── layui.js
│       ├── plugins/
│       │   ├── bootbox/
│       │   │   └── bootbox.js
│       │   ├── bootstrap/
│       │   │   ├── css/
│       │   │   │   └── bootstrap.css
│       │   │   └── js/
│       │   │       ├── bootstrap.js
│       │   │       └── npm.js
│       │   ├── bootstrap-datetimepicker/
│       │   │   ├── css/
│       │   │   │   └── bootstrap-datetimepicker.css
│       │   │   └── js/
│       │   │       ├── bootstrap-datetimepicker.js
│       │   │       └── locales/
│       │   │           ├── bootstrap-datetimepicker.ar.js
│       │   │           ├── bootstrap-datetimepicker.bg.js
│       │   │           ├── bootstrap-datetimepicker.ca.js
│       │   │           ├── bootstrap-datetimepicker.cs.js
│       │   │           ├── bootstrap-datetimepicker.da.js
│       │   │           ├── bootstrap-datetimepicker.de.js
│       │   │           ├── bootstrap-datetimepicker.ee.js
│       │   │           ├── bootstrap-datetimepicker.el.js
│       │   │           ├── bootstrap-datetimepicker.es.js
│       │   │           ├── bootstrap-datetimepicker.fi.js
│       │   │           ├── bootstrap-datetimepicker.fr.js
│       │   │           ├── bootstrap-datetimepicker.he.js
│       │   │           ├── bootstrap-datetimepicker.hr.js
│       │   │           ├── bootstrap-datetimepicker.hu.js
│       │   │           ├── bootstrap-datetimepicker.hy.js
│       │   │           ├── bootstrap-datetimepicker.id.js
│       │   │           ├── bootstrap-datetimepicker.is.js
│       │   │           ├── bootstrap-datetimepicker.it.js
│       │   │           ├── bootstrap-datetimepicker.ja.js
│       │   │           ├── bootstrap-datetimepicker.ko.js
│       │   │           ├── bootstrap-datetimepicker.lt.js
│       │   │           ├── bootstrap-datetimepicker.lv.js
│       │   │           ├── bootstrap-datetimepicker.ms.js
│       │   │           ├── bootstrap-datetimepicker.nb.js
│       │   │           ├── bootstrap-datetimepicker.nl.js
│       │   │           ├── bootstrap-datetimepicker.no.js
│       │   │           ├── bootstrap-datetimepicker.pl.js
│       │   │           ├── bootstrap-datetimepicker.pt-BR.js
│       │   │           ├── bootstrap-datetimepicker.pt.js
│       │   │           ├── bootstrap-datetimepicker.ro.js
│       │   │           ├── bootstrap-datetimepicker.rs-latin.js
│       │   │           ├── bootstrap-datetimepicker.rs.js
│       │   │           ├── bootstrap-datetimepicker.ru.js
│       │   │           ├── bootstrap-datetimepicker.sk.js
│       │   │           ├── bootstrap-datetimepicker.sl.js
│       │   │           ├── bootstrap-datetimepicker.sv.js
│       │   │           ├── bootstrap-datetimepicker.sw.js
│       │   │           ├── bootstrap-datetimepicker.th.js
│       │   │           ├── bootstrap-datetimepicker.tr.js
│       │   │           ├── bootstrap-datetimepicker.ua.js
│       │   │           ├── bootstrap-datetimepicker.uk.js
│       │   │           ├── bootstrap-datetimepicker.zh-CN.js
│       │   │           └── bootstrap-datetimepicker.zh-TW.js
│       │   ├── bootstrap-slider/
│       │   │   ├── bootstrap-slider.js
│       │   │   └── slider.css
│       │   ├── bootstrap-switch/
│       │   │   ├── css/
│       │   │   │   └── bootstrap-switch.css
│       │   │   └── js/
│       │   │       └── bootstrap-switch.js
│       │   ├── bootstrap-wysihtml5/
│       │   │   ├── bootstrap3-wysihtml5.all.js
│       │   │   └── bootstrap3-wysihtml5.css
│       │   ├── chartjs/
│       │   │   └── Chart.js
│       │   ├── ckeditor/
│       │   │   ├── CHANGES.md
│       │   │   ├── LICENSE.md
│       │   │   ├── README.md
│       │   │   ├── adapters/
│       │   │   │   └── jquery.js
│       │   │   ├── build-config.js
│       │   │   ├── ckeditor.js
│       │   │   ├── config.js
│       │   │   ├── contents.css
│       │   │   ├── lang/
│       │   │   │   ├── af.js
│       │   │   │   ├── ar.js
│       │   │   │   ├── bg.js
│       │   │   │   ├── bn.js
│       │   │   │   ├── bs.js
│       │   │   │   ├── ca.js
│       │   │   │   ├── cs.js
│       │   │   │   ├── cy.js
│       │   │   │   ├── da.js
│       │   │   │   ├── de.js
│       │   │   │   ├── el.js
│       │   │   │   ├── en-au.js
│       │   │   │   ├── en-ca.js
│       │   │   │   ├── en-gb.js
│       │   │   │   ├── en.js
│       │   │   │   ├── eo.js
│       │   │   │   ├── es.js
│       │   │   │   ├── et.js
│       │   │   │   ├── eu.js
│       │   │   │   ├── fa.js
│       │   │   │   ├── fi.js
│       │   │   │   ├── fo.js
│       │   │   │   ├── fr-ca.js
│       │   │   │   ├── fr.js
│       │   │   │   ├── gl.js
│       │   │   │   ├── gu.js
│       │   │   │   ├── he.js
│       │   │   │   ├── hi.js
│       │   │   │   ├── hr.js
│       │   │   │   ├── hu.js
│       │   │   │   ├── id.js
│       │   │   │   ├── is.js
│       │   │   │   ├── it.js
│       │   │   │   ├── ja.js
│       │   │   │   ├── ka.js
│       │   │   │   ├── km.js
│       │   │   │   ├── ko.js
│       │   │   │   ├── ku.js
│       │   │   │   ├── lt.js
│       │   │   │   ├── lv.js
│       │   │   │   ├── mk.js
│       │   │   │   ├── mn.js
│       │   │   │   ├── ms.js
│       │   │   │   ├── nb.js
│       │   │   │   ├── nl.js
│       │   │   │   ├── no.js
│       │   │   │   ├── pl.js
│       │   │   │   ├── pt-br.js
│       │   │   │   ├── pt.js
│       │   │   │   ├── ro.js
│       │   │   │   ├── ru.js
│       │   │   │   ├── si.js
│       │   │   │   ├── sk.js
│       │   │   │   ├── sl.js
│       │   │   │   ├── sq.js
│       │   │   │   ├── sr-latn.js
│       │   │   │   ├── sr.js
│       │   │   │   ├── sv.js
│       │   │   │   ├── th.js
│       │   │   │   ├── tr.js
│       │   │   │   ├── ug.js
│       │   │   │   ├── uk.js
│       │   │   │   ├── vi.js
│       │   │   │   ├── zh-cn.js
│       │   │   │   └── zh.js
│       │   │   ├── plugins/
│       │   │   │   ├── a11yhelp/
│       │   │   │   │   └── dialogs/
│       │   │   │   │       ├── a11yhelp.js
│       │   │   │   │       └── lang/
│       │   │   │   │           ├── _translationstatus.txt
│       │   │   │   │           ├── ar.js
│       │   │   │   │           ├── bg.js
│       │   │   │   │           ├── ca.js
│       │   │   │   │           ├── cs.js
│       │   │   │   │           ├── cy.js
│       │   │   │   │           ├── da.js
│       │   │   │   │           ├── de.js
│       │   │   │   │           ├── el.js
│       │   │   │   │           ├── en.js
│       │   │   │   │           ├── eo.js
│       │   │   │   │           ├── es.js
│       │   │   │   │           ├── et.js
│       │   │   │   │           ├── fa.js
│       │   │   │   │           ├── fi.js
│       │   │   │   │           ├── fr-ca.js
│       │   │   │   │           ├── fr.js
│       │   │   │   │           ├── gl.js
│       │   │   │   │           ├── gu.js
│       │   │   │   │           ├── he.js
│       │   │   │   │           ├── hi.js
│       │   │   │   │           ├── hr.js
│       │   │   │   │           ├── hu.js
│       │   │   │   │           ├── id.js
│       │   │   │   │           ├── it.js
│       │   │   │   │           ├── ja.js
│       │   │   │   │           ├── km.js
│       │   │   │   │           ├── ko.js
│       │   │   │   │           ├── ku.js
│       │   │   │   │           ├── lt.js
│       │   │   │   │           ├── lv.js
│       │   │   │   │           ├── mk.js
│       │   │   │   │           ├── mn.js
│       │   │   │   │           ├── nb.js
│       │   │   │   │           ├── nl.js
│       │   │   │   │           ├── no.js
│       │   │   │   │           ├── pl.js
│       │   │   │   │           ├── pt-br.js
│       │   │   │   │           ├── pt.js
│       │   │   │   │           ├── ro.js
│       │   │   │   │           ├── ru.js
│       │   │   │   │           ├── si.js
│       │   │   │   │           ├── sk.js
│       │   │   │   │           ├── sl.js
│       │   │   │   │           ├── sq.js
│       │   │   │   │           ├── sr-latn.js
│       │   │   │   │           ├── sr.js
│       │   │   │   │           ├── sv.js
│       │   │   │   │           ├── th.js
│       │   │   │   │           ├── tr.js
│       │   │   │   │           ├── ug.js
│       │   │   │   │           ├── uk.js
│       │   │   │   │           ├── vi.js
│       │   │   │   │           ├── zh-cn.js
│       │   │   │   │           └── zh.js
│       │   │   │   ├── about/
│       │   │   │   │   └── dialogs/
│       │   │   │   │       └── about.js
│       │   │   │   ├── clipboard/
│       │   │   │   │   └── dialogs/
│       │   │   │   │       └── paste.js
│       │   │   │   ├── dialog/
│       │   │   │   │   └── dialogDefinition.js
│       │   │   │   ├── image/
│       │   │   │   │   └── dialogs/
│       │   │   │   │       └── image.js
│       │   │   │   ├── link/
│       │   │   │   │   └── dialogs/
│       │   │   │   │       ├── anchor.js
│       │   │   │   │       └── link.js
│       │   │   │   ├── pastefromword/
│       │   │   │   │   └── filter/
│       │   │   │   │       └── default.js
│       │   │   │   ├── scayt/
│       │   │   │   │   ├── LICENSE.md
│       │   │   │   │   ├── README.md
│       │   │   │   │   └── dialogs/
│       │   │   │   │       ├── options.js
│       │   │   │   │       └── toolbar.css
│       │   │   │   ├── specialchar/
│       │   │   │   │   └── dialogs/
│       │   │   │   │       ├── lang/
│       │   │   │   │       │   ├── _translationstatus.txt
│       │   │   │   │       │   ├── ar.js
│       │   │   │   │       │   ├── bg.js
│       │   │   │   │       │   ├── ca.js
│       │   │   │   │       │   ├── cs.js
│       │   │   │   │       │   ├── cy.js
│       │   │   │   │       │   ├── de.js
│       │   │   │   │       │   ├── el.js
│       │   │   │   │       │   ├── en.js
│       │   │   │   │       │   ├── eo.js
│       │   │   │   │       │   ├── es.js
│       │   │   │   │       │   ├── et.js
│       │   │   │   │       │   ├── fa.js
│       │   │   │   │       │   ├── fi.js
│       │   │   │   │       │   ├── fr-ca.js
│       │   │   │   │       │   ├── fr.js
│       │   │   │   │       │   ├── gl.js
│       │   │   │   │       │   ├── he.js
│       │   │   │   │       │   ├── hr.js
│       │   │   │   │       │   ├── hu.js
│       │   │   │   │       │   ├── id.js
│       │   │   │   │       │   ├── it.js
│       │   │   │   │       │   ├── ja.js
│       │   │   │   │       │   ├── km.js
│       │   │   │   │       │   ├── ku.js
│       │   │   │   │       │   ├── lv.js
│       │   │   │   │       │   ├── nb.js
│       │   │   │   │       │   ├── nl.js
│       │   │   │   │       │   ├── no.js
│       │   │   │   │       │   ├── pl.js
│       │   │   │   │       │   ├── pt-br.js
│       │   │   │   │       │   ├── pt.js
│       │   │   │   │       │   ├── ru.js
│       │   │   │   │       │   ├── si.js
│       │   │   │   │       │   ├── sk.js
│       │   │   │   │       │   ├── sl.js
│       │   │   │   │       │   ├── sq.js
│       │   │   │   │       │   ├── sv.js
│       │   │   │   │       │   ├── th.js
│       │   │   │   │       │   ├── tr.js
│       │   │   │   │       │   ├── ug.js
│       │   │   │   │       │   ├── uk.js
│       │   │   │   │       │   ├── vi.js
│       │   │   │   │       │   ├── zh-cn.js
│       │   │   │   │       │   └── zh.js
│       │   │   │   │       └── specialchar.js
│       │   │   │   ├── table/
│       │   │   │   │   └── dialogs/
│       │   │   │   │       └── table.js
│       │   │   │   ├── tabletools/
│       │   │   │   │   └── dialogs/
│       │   │   │   │       └── tableCell.js
│       │   │   │   └── wsc/
│       │   │   │       ├── LICENSE.md
│       │   │   │       ├── README.md
│       │   │   │       └── dialogs/
│       │   │   │           ├── ciframe.html
│       │   │   │           ├── tmp.html
│       │   │   │           ├── tmpFrameset.html
│       │   │   │           ├── wsc.css
│       │   │   │           ├── wsc.js
│       │   │   │           └── wsc_ie.js
│       │   │   ├── skins/
│       │   │   │   └── moono/
│       │   │   │       ├── dialog.css
│       │   │   │       ├── dialog_ie.css
│       │   │   │       ├── dialog_ie7.css
│       │   │   │       ├── dialog_ie8.css
│       │   │   │       ├── dialog_iequirks.css
│       │   │   │       ├── dialog_opera.css
│       │   │   │       ├── editor.css
│       │   │   │       ├── editor_gecko.css
│       │   │   │       ├── editor_ie.css
│       │   │   │       ├── editor_ie7.css
│       │   │   │       ├── editor_ie8.css
│       │   │   │       ├── editor_iequirks.css
│       │   │   │       └── readme.md
│       │   │   └── styles.js
│       │   ├── colorpicker/
│       │   │   ├── bootstrap-colorpicker.css
│       │   │   └── bootstrap-colorpicker.js
│       │   ├── datatables/
│       │   │   ├── dataTables.bootstrap.css
│       │   │   ├── dataTables.bootstrap.js
│       │   │   ├── extensions/
│       │   │   │   ├── AutoFill/
│       │   │   │   │   ├── Readme.txt
│       │   │   │   │   ├── css/
│       │   │   │   │   │   └── dataTables.autoFill.css
│       │   │   │   │   ├── examples/
│       │   │   │   │   │   ├── columns.html
│       │   │   │   │   │   ├── complete-callback.html
│       │   │   │   │   │   ├── fill-both.html
│       │   │   │   │   │   ├── fill-horizontal.html
│       │   │   │   │   │   ├── index.html
│       │   │   │   │   │   ├── scrolling.html
│       │   │   │   │   │   ├── simple.html
│       │   │   │   │   │   └── step-callback.html
│       │   │   │   │   └── js/
│       │   │   │   │       └── dataTables.autoFill.js
│       │   │   │   ├── ColReorder/
│       │   │   │   │   ├── License.txt
│       │   │   │   │   ├── Readme.md
│       │   │   │   │   ├── css/
│       │   │   │   │   │   └── dataTables.colReorder.css
│       │   │   │   │   ├── examples/
│       │   │   │   │   │   ├── alt_insert.html
│       │   │   │   │   │   ├── col_filter.html
│       │   │   │   │   │   ├── colvis.html
│       │   │   │   │   │   ├── fixedcolumns.html
│       │   │   │   │   │   ├── fixedheader.html
│       │   │   │   │   │   ├── index.html
│       │   │   │   │   │   ├── jqueryui.html
│       │   │   │   │   │   ├── new_init.html
│       │   │   │   │   │   ├── predefined.html
│       │   │   │   │   │   ├── realtime.html
│       │   │   │   │   │   ├── reset.html
│       │   │   │   │   │   ├── scrolling.html
│       │   │   │   │   │   ├── server_side.html
│       │   │   │   │   │   ├── simple.html
│       │   │   │   │   │   └── state_save.html
│       │   │   │   │   └── js/
│       │   │   │   │       └── dataTables.colReorder.js
│       │   │   │   ├── ColVis/
│       │   │   │   │   ├── License.txt
│       │   │   │   │   ├── Readme.md
│       │   │   │   │   ├── css/
│       │   │   │   │   │   ├── dataTables.colVis.css
│       │   │   │   │   │   └── dataTables.colvis.jqueryui.css
│       │   │   │   │   ├── examples/
│       │   │   │   │   │   ├── button_order.html
│       │   │   │   │   │   ├── exclude_columns.html
│       │   │   │   │   │   ├── group_columns.html
│       │   │   │   │   │   ├── index.html
│       │   │   │   │   │   ├── jqueryui.html
│       │   │   │   │   │   ├── mouseover.html
│       │   │   │   │   │   ├── new_init.html
│       │   │   │   │   │   ├── restore.html
│       │   │   │   │   │   ├── simple.html
│       │   │   │   │   │   ├── text.html
│       │   │   │   │   │   ├── title_callback.html
│       │   │   │   │   │   ├── two_tables.html
│       │   │   │   │   │   └── two_tables_identical.html
│       │   │   │   │   └── js/
│       │   │   │   │       └── dataTables.colVis.js
│       │   │   │   ├── FixedColumns/
│       │   │   │   │   ├── License.txt
│       │   │   │   │   ├── Readme.md
│       │   │   │   │   ├── css/
│       │   │   │   │   │   └── dataTables.fixedColumns.css
│       │   │   │   │   ├── examples/
│       │   │   │   │   │   ├── bootstrap.html
│       │   │   │   │   │   ├── col_filter.html
│       │   │   │   │   │   ├── colvis.html
│       │   │   │   │   │   ├── css_size.html
│       │   │   │   │   │   ├── index.html
│       │   │   │   │   │   ├── index_column.html
│       │   │   │   │   │   ├── left_right_columns.html
│       │   │   │   │   │   ├── right_column.html
│       │   │   │   │   │   ├── rowspan.html
│       │   │   │   │   │   ├── server-side-processing.html
│       │   │   │   │   │   ├── simple.html
│       │   │   │   │   │   ├── size_fixed.html
│       │   │   │   │   │   ├── size_fluid.html
│       │   │   │   │   │   └── two_columns.html
│       │   │   │   │   └── js/
│       │   │   │   │       └── dataTables.fixedColumns.js
│       │   │   │   ├── FixedHeader/
│       │   │   │   │   ├── Readme.txt
│       │   │   │   │   ├── css/
│       │   │   │   │   │   └── dataTables.fixedHeader.css
│       │   │   │   │   ├── examples/
│       │   │   │   │   │   ├── header_footer.html
│       │   │   │   │   │   ├── index.html
│       │   │   │   │   │   ├── simple.html
│       │   │   │   │   │   ├── top_left_right.html
│       │   │   │   │   │   ├── two_tables.html
│       │   │   │   │   │   └── zIndexes.html
│       │   │   │   │   └── js/
│       │   │   │   │       └── dataTables.fixedHeader.js
│       │   │   │   ├── KeyTable/
│       │   │   │   │   ├── Readme.txt
│       │   │   │   │   ├── css/
│       │   │   │   │   │   └── dataTables.keyTable.css
│       │   │   │   │   ├── examples/
│       │   │   │   │   │   ├── events.html
│       │   │   │   │   │   ├── html.html
│       │   │   │   │   │   ├── index.html
│       │   │   │   │   │   ├── scrolling.html
│       │   │   │   │   │   └── simple.html
│       │   │   │   │   └── js/
│       │   │   │   │       └── dataTables.keyTable.js
│       │   │   │   ├── Responsive/
│       │   │   │   │   ├── License.txt
│       │   │   │   │   ├── Readme.md
│       │   │   │   │   ├── css/
│       │   │   │   │   │   ├── dataTables.responsive.css
│       │   │   │   │   │   └── dataTables.responsive.scss
│       │   │   │   │   ├── examples/
│       │   │   │   │   │   ├── child-rows/
│       │   │   │   │   │   │   ├── column-control.html
│       │   │   │   │   │   │   ├── custom-renderer.html
│       │   │   │   │   │   │   ├── disable-child-rows.html
│       │   │   │   │   │   │   ├── index.html
│       │   │   │   │   │   │   ├── right-column.html
│       │   │   │   │   │   │   └── whole-row-control.html
│       │   │   │   │   │   ├── display-control/
│       │   │   │   │   │   │   ├── auto.html
│       │   │   │   │   │   │   ├── classes.html
│       │   │   │   │   │   │   ├── complexHeader.html
│       │   │   │   │   │   │   ├── fixedHeader.html
│       │   │   │   │   │   │   ├── index.html
│       │   │   │   │   │   │   └── init-classes.html
│       │   │   │   │   │   ├── index.html
│       │   │   │   │   │   ├── initialisation/
│       │   │   │   │   │   │   ├── ajax.html
│       │   │   │   │   │   │   ├── className.html
│       │   │   │   │   │   │   ├── default.html
│       │   │   │   │   │   │   ├── index.html
│       │   │   │   │   │   │   ├── new.html
│       │   │   │   │   │   │   └── option.html
│       │   │   │   │   │   └── styling/
│       │   │   │   │   │       ├── bootstrap.html
│       │   │   │   │   │       ├── compact.html
│       │   │   │   │   │       ├── foundation.html
│       │   │   │   │   │       ├── index.html
│       │   │   │   │   │       └── scrolling.html
│       │   │   │   │   └── js/
│       │   │   │   │       └── dataTables.responsive.js
│       │   │   │   ├── Scroller/
│       │   │   │   │   ├── Readme.txt
│       │   │   │   │   ├── css/
│       │   │   │   │   │   └── dataTables.scroller.css
│       │   │   │   │   ├── examples/
│       │   │   │   │   │   ├── api_scrolling.html
│       │   │   │   │   │   ├── data/
│       │   │   │   │   │   │   └── 2500.txt
│       │   │   │   │   │   ├── index.html
│       │   │   │   │   │   ├── large_js_source.html
│       │   │   │   │   │   ├── server-side_processing.html
│       │   │   │   │   │   ├── simple.html
│       │   │   │   │   │   └── state_saving.html
│       │   │   │   │   └── js/
│       │   │   │   │       └── dataTables.scroller.js
│       │   │   │   └── TableTools/
│       │   │   │       ├── Readme.md
│       │   │   │       ├── css/
│       │   │   │       │   └── dataTables.tableTools.css
│       │   │   │       ├── examples/
│       │   │   │       │   ├── ajax.html
│       │   │   │       │   ├── alter_buttons.html
│       │   │   │       │   ├── bootstrap.html
│       │   │   │       │   ├── button_text.html
│       │   │   │       │   ├── collection.html
│       │   │   │       │   ├── defaults.html
│       │   │   │       │   ├── index.html
│       │   │   │       │   ├── jqueryui.html
│       │   │   │       │   ├── multi_instance.html
│       │   │   │       │   ├── multiple_tables.html
│       │   │   │       │   ├── new_init.html
│       │   │   │       │   ├── pdf_message.html
│       │   │   │       │   ├── plug-in.html
│       │   │   │       │   ├── select_column.html
│       │   │   │       │   ├── select_multi.html
│       │   │   │       │   ├── select_os.html
│       │   │   │       │   ├── select_single.html
│       │   │   │       │   ├── simple.html
│       │   │   │       │   └── swf_path.html
│       │   │   │       ├── images/
│       │   │   │       │   └── psd/
│       │   │   │       │       ├── collection.psd
│       │   │   │       │       ├── copy document.psd
│       │   │   │       │       ├── file_types.psd
│       │   │   │       │       └── printer.psd
│       │   │   │       ├── js/
│       │   │   │       │   └── dataTables.tableTools.js
│       │   │   │       └── swf/
│       │   │   │           ├── copy_csv_xls.swf
│       │   │   │           └── copy_csv_xls_pdf.swf
│       │   │   ├── jquery.dataTables.css
│       │   │   ├── jquery.dataTables.js
│       │   │   └── jquery.dataTables_themeroller.css
│       │   ├── datepicker/
│       │   │   ├── bootstrap-datepicker.js
│       │   │   ├── datepicker3.css
│       │   │   └── locales/
│       │   │       ├── bootstrap-datepicker.ar.js
│       │   │       ├── bootstrap-datepicker.az.js
│       │   │       ├── bootstrap-datepicker.bg.js
│       │   │       ├── bootstrap-datepicker.ca.js
│       │   │       ├── bootstrap-datepicker.cs.js
│       │   │       ├── bootstrap-datepicker.cy.js
│       │   │       ├── bootstrap-datepicker.da.js
│       │   │       ├── bootstrap-datepicker.de.js
│       │   │       ├── bootstrap-datepicker.el.js
│       │   │       ├── bootstrap-datepicker.es.js
│       │   │       ├── bootstrap-datepicker.et.js
│       │   │       ├── bootstrap-datepicker.fa.js
│       │   │       ├── bootstrap-datepicker.fi.js
│       │   │       ├── bootstrap-datepicker.fr.js
│       │   │       ├── bootstrap-datepicker.gl.js
│       │   │       ├── bootstrap-datepicker.he.js
│       │   │       ├── bootstrap-datepicker.hr.js
│       │   │       ├── bootstrap-datepicker.hu.js
│       │   │       ├── bootstrap-datepicker.id.js
│       │   │       ├── bootstrap-datepicker.is.js
│       │   │       ├── bootstrap-datepicker.it.js
│       │   │       ├── bootstrap-datepicker.ja.js
│       │   │       ├── bootstrap-datepicker.ka.js
│       │   │       ├── bootstrap-datepicker.kk.js
│       │   │       ├── bootstrap-datepicker.kr.js
│       │   │       ├── bootstrap-datepicker.lt.js
│       │   │       ├── bootstrap-datepicker.lv.js
│       │   │       ├── bootstrap-datepicker.mk.js
│       │   │       ├── bootstrap-datepicker.ms.js
│       │   │       ├── bootstrap-datepicker.nb.js
│       │   │       ├── bootstrap-datepicker.nl-BE.js
│       │   │       ├── bootstrap-datepicker.nl.js
│       │   │       ├── bootstrap-datepicker.no.js
│       │   │       ├── bootstrap-datepicker.pl.js
│       │   │       ├── bootstrap-datepicker.pt-BR.js
│       │   │       ├── bootstrap-datepicker.pt.js
│       │   │       ├── bootstrap-datepicker.ro.js
│       │   │       ├── bootstrap-datepicker.rs-latin.js
│       │   │       ├── bootstrap-datepicker.rs.js
│       │   │       ├── bootstrap-datepicker.ru.js
│       │   │       ├── bootstrap-datepicker.sk.js
│       │   │       ├── bootstrap-datepicker.sl.js
│       │   │       ├── bootstrap-datepicker.sq.js
│       │   │       ├── bootstrap-datepicker.sv.js
│       │   │       ├── bootstrap-datepicker.sw.js
│       │   │       ├── bootstrap-datepicker.th.js
│       │   │       ├── bootstrap-datepicker.tr.js
│       │   │       ├── bootstrap-datepicker.ua.js
│       │   │       ├── bootstrap-datepicker.vi.js
│       │   │       ├── bootstrap-datepicker.zh-CN.js
│       │   │       └── bootstrap-datepicker.zh-TW.js
│       │   ├── daterangepicker/
│       │   │   ├── daterangepicker-bs3.css
│       │   │   ├── daterangepicker.js
│       │   │   └── moment.js
│       │   ├── fastclick/
│       │   │   └── fastclick.js
│       │   ├── flot/
│       │   │   ├── excanvas.js
│       │   │   ├── jquery.colorhelpers.js
│       │   │   ├── jquery.flot.canvas.js
│       │   │   ├── jquery.flot.categories.js
│       │   │   ├── jquery.flot.crosshair.js
│       │   │   ├── jquery.flot.errorbars.js
│       │   │   ├── jquery.flot.fillbetween.js
│       │   │   ├── jquery.flot.image.js
│       │   │   ├── jquery.flot.js
│       │   │   ├── jquery.flot.navigate.js
│       │   │   ├── jquery.flot.pie.js
│       │   │   ├── jquery.flot.resize.js
│       │   │   ├── jquery.flot.selection.js
│       │   │   ├── jquery.flot.stack.js
│       │   │   ├── jquery.flot.symbol.js
│       │   │   ├── jquery.flot.threshold.js
│       │   │   └── jquery.flot.time.js
│       │   ├── form/
│       │   │   └── jquery.form.js
│       │   ├── fullcalendar/
│       │   │   ├── fullcalendar.css
│       │   │   ├── fullcalendar.js
│       │   │   └── fullcalendar.print.css
│       │   ├── iCheck/
│       │   │   ├── all.css
│       │   │   ├── flat/
│       │   │   │   ├── _all.css
│       │   │   │   ├── aero.css
│       │   │   │   ├── blue.css
│       │   │   │   ├── flat.css
│       │   │   │   ├── green.css
│       │   │   │   ├── grey.css
│       │   │   │   ├── orange.css
│       │   │   │   ├── pink.css
│       │   │   │   ├── purple.css
│       │   │   │   ├── red.css
│       │   │   │   └── yellow.css
│       │   │   ├── futurico/
│       │   │   │   └── futurico.css
│       │   │   ├── icheck.js
│       │   │   ├── line/
│       │   │   │   ├── _all.css
│       │   │   │   ├── aero.css
│       │   │   │   ├── blue.css
│       │   │   │   ├── green.css
│       │   │   │   ├── grey.css
│       │   │   │   ├── line.css
│       │   │   │   ├── orange.css
│       │   │   │   ├── pink.css
│       │   │   │   ├── purple.css
│       │   │   │   ├── red.css
│       │   │   │   └── yellow.css
│       │   │   ├── minimal/
│       │   │   │   ├── _all.css
│       │   │   │   ├── aero.css
│       │   │   │   ├── blue.css
│       │   │   │   ├── green.css
│       │   │   │   ├── grey.css
│       │   │   │   ├── minimal.css
│       │   │   │   ├── orange.css
│       │   │   │   ├── pink.css
│       │   │   │   ├── purple.css
│       │   │   │   ├── red.css
│       │   │   │   └── yellow.css
│       │   │   ├── polaris/
│       │   │   │   └── polaris.css
│       │   │   └── square/
│       │   │       ├── _all.css
│       │   │       ├── aero.css
│       │   │       ├── blue.css
│       │   │       ├── green.css
│       │   │       ├── grey.css
│       │   │       ├── orange.css
│       │   │       ├── pink.css
│       │   │       ├── purple.css
│       │   │       ├── red.css
│       │   │       ├── square.css
│       │   │       └── yellow.css
│       │   ├── input-mask/
│       │   │   ├── jquery.inputmask.date.extensions.js
│       │   │   ├── jquery.inputmask.extensions.js
│       │   │   ├── jquery.inputmask.js
│       │   │   ├── jquery.inputmask.numeric.extensions.js
│       │   │   ├── jquery.inputmask.phone.extensions.js
│       │   │   ├── jquery.inputmask.regex.extensions.js
│       │   │   └── phone-codes/
│       │   │       ├── phone-be.json
│       │   │       ├── phone-codes.json
│       │   │       └── readme.txt
│       │   ├── ionslider/
│       │   │   ├── ion.rangeSlider.css
│       │   │   ├── ion.rangeSlider.skinFlat.css
│       │   │   └── ion.rangeSlider.skinNice.css
│       │   ├── jQueryUI/
│       │   │   └── jquery-ui.js
│       │   ├── jvectormap/
│       │   │   ├── jquery-jvectormap-1.2.2.css
│       │   │   ├── jquery-jvectormap-usa-en.js
│       │   │   └── jquery-jvectormap-world-mill-en.js
│       │   ├── knob/
│       │   │   └── jquery.knob.js
│       │   ├── layer/
│       │   │   ├── extend/
│       │   │   │   └── layer.ext.js
│       │   │   ├── layer.js
│       │   │   └── skin/
│       │   │       ├── layer.css
│       │   │       └── layer.ext.css
│       │   ├── morris/
│       │   │   ├── morris.css
│       │   │   └── morris.js
│       │   ├── nprogress/
│       │   │   ├── nprogress.css
│       │   │   └── nprogress.js
│       │   ├── pace/
│       │   │   ├── pace.css
│       │   │   └── pace.js
│       │   ├── pjax/
│       │   │   └── jquery.pjax.js
│       │   ├── select2/
│       │   │   ├── i18n/
│       │   │   │   ├── ar.js
│       │   │   │   ├── az.js
│       │   │   │   ├── bg.js
│       │   │   │   ├── ca.js
│       │   │   │   ├── cs.js
│       │   │   │   ├── da.js
│       │   │   │   ├── de.js
│       │   │   │   ├── en.js
│       │   │   │   ├── es.js
│       │   │   │   ├── et.js
│       │   │   │   ├── eu.js
│       │   │   │   ├── fa.js
│       │   │   │   ├── fi.js
│       │   │   │   ├── fr.js
│       │   │   │   ├── gl.js
│       │   │   │   ├── he.js
│       │   │   │   ├── hi.js
│       │   │   │   ├── hr.js
│       │   │   │   ├── hu.js
│       │   │   │   ├── id.js
│       │   │   │   ├── is.js
│       │   │   │   ├── it.js
│       │   │   │   ├── ja.js
│       │   │   │   ├── ko.js
│       │   │   │   ├── lt.js
│       │   │   │   ├── lv.js
│       │   │   │   ├── mk.js
│       │   │   │   ├── ms.js
│       │   │   │   ├── nb.js
│       │   │   │   ├── nl.js
│       │   │   │   ├── pl.js
│       │   │   │   ├── pt-BR.js
│       │   │   │   ├── pt.js
│       │   │   │   ├── ro.js
│       │   │   │   ├── ru.js
│       │   │   │   ├── sk.js
│       │   │   │   ├── sr-Cyrl.js
│       │   │   │   ├── sr.js
│       │   │   │   ├── sv.js
│       │   │   │   ├── th.js
│       │   │   │   ├── tr.js
│       │   │   │   ├── uk.js
│       │   │   │   ├── vi.js
│       │   │   │   ├── zh-CN.js
│       │   │   │   └── zh-TW.js
│       │   │   ├── select2.css
│       │   │   ├── select2.full.js
│       │   │   └── select2.js
│       │   ├── slimScroll/
│       │   │   └── jquery.slimscroll.js
│       │   ├── sparkline/
│       │   │   └── jquery.sparkline.js
│       │   ├── timepicker/
│       │   │   ├── bootstrap-timepicker.css
│       │   │   └── bootstrap-timepicker.js
│       │   ├── toastr/
│       │   │   └── toastr.css
│       │   └── wangeditor/
│       │       ├── css/
│       │       │   ├── wangEditor.css
│       │       │   ├── wangEditor.less
│       │       │   └── wangEditor2.css
│       │       └── js/
│       │           ├── lib/
│       │           │   └── jquery-2.2.1.js
│       │           └── wangEditor.js
│       └── ueditor/
│           ├── dialogs/
│           │   ├── anchor/
│           │   │   └── anchor.html
│           │   ├── attachment/
│           │   │   ├── attachment.css
│           │   │   ├── attachment.html
│           │   │   └── attachment.js
│           │   ├── background/
│           │   │   ├── background.css
│           │   │   ├── background.html
│           │   │   └── background.js
│           │   ├── charts/
│           │   │   ├── chart.config.js
│           │   │   ├── charts.css
│           │   │   ├── charts.html
│           │   │   └── charts.js
│           │   ├── emotion/
│           │   │   ├── emotion.css
│           │   │   ├── emotion.html
│           │   │   └── emotion.js
│           │   ├── gmap/
│           │   │   └── gmap.html
│           │   ├── help/
│           │   │   ├── help.css
│           │   │   ├── help.html
│           │   │   └── help.js
│           │   ├── image/
│           │   │   ├── image.css
│           │   │   ├── image.html
│           │   │   └── image.js
│           │   ├── insertframe/
│           │   │   └── insertframe.html
│           │   ├── internal.js
│           │   ├── link/
│           │   │   └── link.html
│           │   ├── map/
│           │   │   ├── map.html
│           │   │   └── show.html
│           │   ├── music/
│           │   │   ├── music.css
│           │   │   ├── music.html
│           │   │   └── music.js
│           │   ├── preview/
│           │   │   └── preview.html
│           │   ├── scrawl/
│           │   │   ├── scrawl.css
│           │   │   ├── scrawl.html
│           │   │   └── scrawl.js
│           │   ├── searchreplace/
│           │   │   ├── searchreplace.html
│           │   │   └── searchreplace.js
│           │   ├── snapscreen/
│           │   │   └── snapscreen.html
│           │   ├── spechars/
│           │   │   ├── spechars.html
│           │   │   └── spechars.js
│           │   ├── table/
│           │   │   ├── edittable.css
│           │   │   ├── edittable.html
│           │   │   ├── edittable.js
│           │   │   ├── edittd.html
│           │   │   └── edittip.html
│           │   ├── template/
│           │   │   ├── config.js
│           │   │   ├── template.css
│           │   │   ├── template.html
│           │   │   └── template.js
│           │   ├── video/
│           │   │   ├── video.css
│           │   │   ├── video.html
│           │   │   └── video.js
│           │   ├── webapp/
│           │   │   └── webapp.html
│           │   └── wordimage/
│           │       ├── fClipboard_ueditor.swf
│           │       ├── imageUploader.swf
│           │       ├── tangram.js
│           │       ├── wordimage.html
│           │       └── wordimage.js
│           ├── index.html
│           ├── lang/
│           │   ├── en/
│           │   │   └── en.js
│           │   └── zh-cn/
│           │       └── zh-cn.js
│           ├── php/
│           │   ├── Uploader.class.php
│           │   ├── action_crawler.php
│           │   ├── action_list.php
│           │   ├── action_upload.php
│           │   ├── config.json
│           │   └── controller.php
│           ├── themes/
│           │   ├── default/
│           │   │   ├── css/
│           │   │   │   └── ueditor.css
│           │   │   └── dialogbase.css
│           │   └── iframe.css
│           ├── third-party/
│           │   ├── SyntaxHighlighter/
│           │   │   ├── shCore.js
│           │   │   └── shCoreDefault.css
│           │   ├── codemirror/
│           │   │   ├── codemirror.css
│           │   │   └── codemirror.js
│           │   ├── highcharts/
│           │   │   ├── adapters/
│           │   │   │   ├── mootools-adapter.js
│           │   │   │   ├── mootools-adapter.src.js
│           │   │   │   ├── prototype-adapter.js
│           │   │   │   ├── prototype-adapter.src.js
│           │   │   │   ├── standalone-framework.js
│           │   │   │   └── standalone-framework.src.js
│           │   │   ├── highcharts-more.js
│           │   │   ├── highcharts-more.src.js
│           │   │   ├── highcharts.js
│           │   │   ├── highcharts.src.js
│           │   │   ├── modules/
│           │   │   │   ├── annotations.js
│           │   │   │   ├── annotations.src.js
│           │   │   │   ├── canvas-tools.js
│           │   │   │   ├── canvas-tools.src.js
│           │   │   │   ├── data.js
│           │   │   │   ├── data.src.js
│           │   │   │   ├── drilldown.js
│           │   │   │   ├── drilldown.src.js
│           │   │   │   ├── exporting.js
│           │   │   │   ├── exporting.src.js
│           │   │   │   ├── funnel.js
│           │   │   │   ├── funnel.src.js
│           │   │   │   ├── heatmap.js
│           │   │   │   ├── heatmap.src.js
│           │   │   │   ├── map.js
│           │   │   │   ├── map.src.js
│           │   │   │   ├── no-data-to-display.js
│           │   │   │   └── no-data-to-display.src.js
│           │   │   └── themes/
│           │   │       ├── dark-blue.js
│           │   │       ├── dark-green.js
│           │   │       ├── gray.js
│           │   │       ├── grid.js
│           │   │       └── skies.js
│           │   ├── jquery-1.10.2.js
│           │   ├── video-js/
│           │   │   ├── video-js.css
│           │   │   ├── video-js.swf
│           │   │   ├── video.dev.js
│           │   │   └── video.js
│           │   ├── webuploader/
│           │   │   ├── Uploader.swf
│           │   │   ├── webuploader.css
│           │   │   ├── webuploader.custom.js
│           │   │   ├── webuploader.flashonly.js
│           │   │   ├── webuploader.html5only.js
│           │   │   ├── webuploader.js
│           │   │   └── webuploader.withoutimage.js
│           │   └── zeroclipboard/
│           │       ├── ZeroClipboard.js
│           │       └── ZeroClipboard.swf
│           ├── ueditor.all.js
│           ├── ueditor.config.js
│           └── ueditor.parse.js
├── think
├── thinkphp/
│   ├── .gitignore
│   ├── .htaccess
│   ├── .travis.yml
│   ├── CONTRIBUTING.md
│   ├── LICENSE.txt
│   ├── README.md
│   ├── base.php
│   ├── codecov.yml
│   ├── composer.json
│   ├── console.php
│   ├── convention.php
│   ├── helper.php
│   ├── lang/
│   │   └── zh-cn.php
│   ├── library/
│   │   ├── think/
│   │   │   ├── App.php
│   │   │   ├── Build.php
│   │   │   ├── Cache.php
│   │   │   ├── Collection.php
│   │   │   ├── Config.php
│   │   │   ├── Console.php
│   │   │   ├── Controller.php
│   │   │   ├── Cookie.php
│   │   │   ├── Db.php
│   │   │   ├── Debug.php
│   │   │   ├── Env.php
│   │   │   ├── Error.php
│   │   │   ├── Exception.php
│   │   │   ├── File.php
│   │   │   ├── Hook.php
│   │   │   ├── Lang.php
│   │   │   ├── Loader.php
│   │   │   ├── Log.php
│   │   │   ├── Model.php
│   │   │   ├── Paginator.php
│   │   │   ├── Process.php
│   │   │   ├── Request.php
│   │   │   ├── Response.php
│   │   │   ├── Route.php
│   │   │   ├── Session.php
│   │   │   ├── Template.php
│   │   │   ├── Url.php
│   │   │   ├── Validate.php
│   │   │   ├── View.php
│   │   │   ├── cache/
│   │   │   │   ├── Driver.php
│   │   │   │   └── driver/
│   │   │   │       ├── File.php
│   │   │   │       ├── Lite.php
│   │   │   │       ├── Memcache.php
│   │   │   │       ├── Memcached.php
│   │   │   │       ├── Redis.php
│   │   │   │       ├── Sqlite.php
│   │   │   │       ├── Wincache.php
│   │   │   │       └── Xcache.php
│   │   │   ├── config/
│   │   │   │   └── driver/
│   │   │   │       ├── Ini.php
│   │   │   │       ├── Json.php
│   │   │   │       └── Xml.php
│   │   │   ├── console/
│   │   │   │   ├── Command.php
│   │   │   │   ├── Input.php
│   │   │   │   ├── LICENSE
│   │   │   │   ├── Output.php
│   │   │   │   ├── bin/
│   │   │   │   │   └── README.md
│   │   │   │   ├── command/
│   │   │   │   │   ├── Build.php
│   │   │   │   │   ├── Clear.php
│   │   │   │   │   ├── Help.php
│   │   │   │   │   ├── Lists.php
│   │   │   │   │   ├── Make.php
│   │   │   │   │   ├── make/
│   │   │   │   │   │   ├── Controller.php
│   │   │   │   │   │   ├── Model.php
│   │   │   │   │   │   └── stubs/
│   │   │   │   │   │       ├── controller.plain.stub
│   │   │   │   │   │       ├── controller.stub
│   │   │   │   │   │       └── model.stub
│   │   │   │   │   └── optimize/
│   │   │   │   │       ├── Autoload.php
│   │   │   │   │       ├── Config.php
│   │   │   │   │       ├── Route.php
│   │   │   │   │       └── Schema.php
│   │   │   │   ├── input/
│   │   │   │   │   ├── Argument.php
│   │   │   │   │   ├── Definition.php
│   │   │   │   │   └── Option.php
│   │   │   │   └── output/
│   │   │   │       ├── Ask.php
│   │   │   │       ├── Descriptor.php
│   │   │   │       ├── Formatter.php
│   │   │   │       ├── Question.php
│   │   │   │       ├── descriptor/
│   │   │   │       │   └── Console.php
│   │   │   │       ├── driver/
│   │   │   │       │   ├── Buffer.php
│   │   │   │       │   ├── Console.php
│   │   │   │       │   └── Nothing.php
│   │   │   │       ├── formatter/
│   │   │   │       │   ├── Stack.php
│   │   │   │       │   └── Style.php
│   │   │   │       └── question/
│   │   │   │           ├── Choice.php
│   │   │   │           └── Confirmation.php
│   │   │   ├── controller/
│   │   │   │   ├── Rest.php
│   │   │   │   └── Yar.php
│   │   │   ├── db/
│   │   │   │   ├── Builder.php
│   │   │   │   ├── Connection.php
│   │   │   │   ├── Query.php
│   │   │   │   ├── builder/
│   │   │   │   │   ├── Mysql.php
│   │   │   │   │   ├── Pgsql.php
│   │   │   │   │   ├── Sqlite.php
│   │   │   │   │   └── Sqlsrv.php
│   │   │   │   ├── connector/
│   │   │   │   │   ├── Mysql.php
│   │   │   │   │   ├── Pgsql.php
│   │   │   │   │   ├── Sqlite.php
│   │   │   │   │   ├── Sqlsrv.php
│   │   │   │   │   └── pgsql.sql
│   │   │   │   └── exception/
│   │   │   │       ├── BindParamException.php
│   │   │   │       ├── DataNotFoundException.php
│   │   │   │       └── ModelNotFoundException.php
│   │   │   ├── debug/
│   │   │   │   ├── Console.php
│   │   │   │   └── Html.php
│   │   │   ├── exception/
│   │   │   │   ├── ClassNotFoundException.php
│   │   │   │   ├── DbException.php
│   │   │   │   ├── ErrorException.php
│   │   │   │   ├── Handle.php
│   │   │   │   ├── HttpException.php
│   │   │   │   ├── HttpResponseException.php
│   │   │   │   ├── PDOException.php
│   │   │   │   ├── RouteNotFoundException.php
│   │   │   │   ├── TemplateNotFoundException.php
│   │   │   │   ├── ThrowableError.php
│   │   │   │   └── ValidateException.php
│   │   │   ├── log/
│   │   │   │   └── driver/
│   │   │   │       ├── File.php
│   │   │   │       ├── Socket.php
│   │   │   │       └── Test.php
│   │   │   ├── model/
│   │   │   │   ├── Collection.php
│   │   │   │   ├── Merge.php
│   │   │   │   ├── Pivot.php
│   │   │   │   ├── Relation.php
│   │   │   │   └── relation/
│   │   │   │       ├── BelongsTo.php
│   │   │   │       ├── BelongsToMany.php
│   │   │   │       ├── HasMany.php
│   │   │   │       ├── HasManyThrough.php
│   │   │   │       ├── HasOne.php
│   │   │   │       ├── MorphMany.php
│   │   │   │       ├── MorphOne.php
│   │   │   │       ├── MorphTo.php
│   │   │   │       └── OneToOne.php
│   │   │   ├── paginator/
│   │   │   │   └── driver/
│   │   │   │       └── Bootstrap.php
│   │   │   ├── process/
│   │   │   │   ├── Builder.php
│   │   │   │   ├── Utils.php
│   │   │   │   ├── exception/
│   │   │   │   │   ├── Failed.php
│   │   │   │   │   └── Timeout.php
│   │   │   │   └── pipes/
│   │   │   │       ├── Pipes.php
│   │   │   │       ├── Unix.php
│   │   │   │       └── Windows.php
│   │   │   ├── response/
│   │   │   │   ├── Json.php
│   │   │   │   ├── Jsonp.php
│   │   │   │   ├── Redirect.php
│   │   │   │   ├── View.php
│   │   │   │   └── Xml.php
│   │   │   ├── session/
│   │   │   │   └── driver/
│   │   │   │       ├── Memcache.php
│   │   │   │       ├── Memcached.php
│   │   │   │       └── Redis.php
│   │   │   ├── template/
│   │   │   │   ├── TagLib.php
│   │   │   │   ├── driver/
│   │   │   │   │   └── File.php
│   │   │   │   └── taglib/
│   │   │   │       └── Cx.php
│   │   │   └── view/
│   │   │       └── driver/
│   │   │           ├── Php.php
│   │   │           └── Think.php
│   │   └── traits/
│   │       ├── controller/
│   │       │   └── Jump.php
│   │       ├── model/
│   │       │   └── SoftDelete.php
│   │       └── think/
│   │           └── Instance.php
│   ├── phpunit.xml
│   ├── start.php
│   └── tpl/
│       ├── default_index.tpl
│       ├── dispatch_jump.tpl
│       ├── page_trace.tpl
│       └── think_exception.tpl
├── tpl/
│   ├── addons/
│   │   └── index.html
│   └── theme/
│       └── default/
│           └── index.html
├── vendor/
│   ├── autoload.php
│   ├── composer/
│   │   ├── ClassLoader.php
│   │   ├── LICENSE
│   │   ├── autoload_classmap.php
│   │   ├── autoload_files.php
│   │   ├── autoload_namespaces.php
│   │   ├── autoload_psr4.php
│   │   ├── autoload_real.php
│   │   ├── autoload_static.php
│   │   └── installed.json
│   ├── dodgepudding/
│   │   └── wechat-php-sdk/
│   │       ├── .gitignore
│   │       ├── JSSDK.class.php
│   │       ├── README.md
│   │       ├── Thinkphp/
│   │       │   ├── EasyWechat.class.php
│   │       │   └── TPWechat.class.php
│   │       ├── WxPrint.class.php
│   │       ├── composer.json
│   │       ├── demo.php
│   │       ├── errCode.php
│   │       ├── old_version/
│   │       │   ├── Thinkphp/
│   │       │   │   ├── Snoopy.class.php
│   │       │   │   ├── Wechatauth.class.php
│   │       │   │   ├── Wechatext.class.php
│   │       │   │   └── Wechatpay.class.php
│   │       │   ├── snoopy.class.php
│   │       │   ├── test/
│   │       │   │   ├── test2.php
│   │       │   │   ├── test3.php
│   │       │   │   └── weshare.html
│   │       │   ├── wechat.js
│   │       │   ├── wechatauth.class.php
│   │       │   ├── wechatext.class.php
│   │       │   └── wechatpay.class.php
│   │       ├── qyerrCode.php
│   │       ├── qywechat.class.php
│   │       ├── test/
│   │       │   ├── auth.php
│   │       │   ├── jsapi/
│   │       │   │   ├── jsapi-demo-6.1.js
│   │       │   │   ├── jsapi_demo.php
│   │       │   │   └── style.css
│   │       │   ├── qydemo.php
│   │       │   └── test1.php
│   │       ├── wechat.class.php
│   │       └── wiki/
│   │           ├── %B5%C4%EA%B5%D8%E2%FE%D6+%DA%D6%E5%FE%A6+զ%F4.md
│   │           ├── %B5%F9%BA%FE%EB%EAե%AB%F5+%ED%B5%F6%BB%F5+V2%B5%C4%D1%D5%C5%FA%FE%A6+զ%F4.md
│   │           ├── %D5%E5%E0%D5%C1%EEJS.md
│   │           ├── %DA%D8%D7ի%B5%FB%A6%B5%EB%AEզ%F2%FE%A6+զ%F4.md
│   │           ├── %F5%A9%A6%D5+%C7%D5%C5%E6%B5%ED%E5%B5%D7%C2%DE+%F8%DE%ED%EE%DA%C7%E9%DA%E0%EC.md
│   │           ├── %F5+%FC%F5%A9%DC%D5%C5%C0API%FE%A6+զ%F4.md
│   │           ├── API%B5%C4%D1%D5%C5%FA%DA%F6%D6޻%BB%FE%E1%FC.md
│   │           ├── Home.md
│   │           ├── README.md
│   │           └── ի%B5%FB%A6API%FE%A6+զ%F4.md
│   ├── phpmailer/
│   │   └── phpmailer/
│   │       ├── LICENSE
│   │       ├── PHPMailerAutoload.php
│   │       ├── VERSION
│   │       ├── class.phpmailer.php
│   │       ├── class.phpmaileroauth.php
│   │       ├── class.phpmaileroauthgoogle.php
│   │       ├── class.pop3.php
│   │       ├── class.smtp.php
│   │       ├── composer.json
│   │       ├── examples/
│   │       │   ├── DKIM.phps
│   │       │   ├── code_generator.phps
│   │       │   ├── contactform.phps
│   │       │   ├── contents.html
│   │       │   ├── contentsutf8.html
│   │       │   ├── exceptions.phps
│   │       │   ├── gmail.phps
│   │       │   ├── gmail_xoauth.phps
│   │       │   ├── index.html
│   │       │   ├── mail.phps
│   │       │   ├── mailing_list.phps
│   │       │   ├── pop_before_smtp.phps
│   │       │   ├── scripts/
│   │       │   │   ├── XRegExp.js
│   │       │   │   ├── shAutoloader.js
│   │       │   │   ├── shBrushPhp.js
│   │       │   │   ├── shCore.js
│   │       │   │   └── shLegacy.js
│   │       │   ├── send_file_upload.phps
│   │       │   ├── send_multiple_file_upload.phps
│   │       │   ├── sendmail.phps
│   │       │   ├── signed-mail.phps
│   │       │   ├── smtp.phps
│   │       │   ├── smtp_check.phps
│   │       │   ├── smtp_no_auth.phps
│   │       │   ├── ssl_options.phps
│   │       │   └── styles/
│   │       │       ├── shCore.css
│   │       │       ├── shCoreDefault.css
│   │       │       ├── shCoreDjango.css
│   │       │       ├── shCoreEclipse.css
│   │       │       ├── shCoreEmacs.css
│   │       │       ├── shCoreFadeToGrey.css
│   │       │       ├── shCoreMDUltra.css
│   │       │       ├── shCoreMidnight.css
│   │       │       ├── shCoreRDark.css
│   │       │       ├── shThemeAppleScript.css
│   │       │       ├── shThemeDefault.css
│   │       │       ├── shThemeDjango.css
│   │       │       ├── shThemeEclipse.css
│   │       │       ├── shThemeEmacs.css
│   │       │       ├── shThemeFadeToGrey.css
│   │       │       ├── shThemeMDUltra.css
│   │       │       ├── shThemeMidnight.css
│   │       │       ├── shThemeRDark.css
│   │       │       └── shThemeVisualStudio.css
│   │       ├── extras/
│   │       │   ├── EasyPeasyICS.php
│   │       │   ├── README.md
│   │       │   ├── htmlfilter.php
│   │       │   └── ntlm_sasl_client.php
│   │       ├── get_oauth_token.php
│   │       └── language/
│   │           ├── phpmailer.lang-am.php
│   │           ├── phpmailer.lang-ar.php
│   │           ├── phpmailer.lang-az.php
│   │           ├── phpmailer.lang-be.php
│   │           ├── phpmailer.lang-bg.php
│   │           ├── phpmailer.lang-ca.php
│   │           ├── phpmailer.lang-ch.php
│   │           ├── phpmailer.lang-cs.php
│   │           ├── phpmailer.lang-da.php
│   │           ├── phpmailer.lang-de.php
│   │           ├── phpmailer.lang-el.php
│   │           ├── phpmailer.lang-eo.php
│   │           ├── phpmailer.lang-es.php
│   │           ├── phpmailer.lang-et.php
│   │           ├── phpmailer.lang-fa.php
│   │           ├── phpmailer.lang-fi.php
│   │           ├── phpmailer.lang-fo.php
│   │           ├── phpmailer.lang-fr.php
│   │           ├── phpmailer.lang-gl.php
│   │           ├── phpmailer.lang-he.php
│   │           ├── phpmailer.lang-hr.php
│   │           ├── phpmailer.lang-hu.php
│   │           ├── phpmailer.lang-id.php
│   │           ├── phpmailer.lang-it.php
│   │           ├── phpmailer.lang-ja.php
│   │           ├── phpmailer.lang-ka.php
│   │           ├── phpmailer.lang-ko.php
│   │           ├── phpmailer.lang-lt.php
│   │           ├── phpmailer.lang-lv.php
│   │           ├── phpmailer.lang-ms.php
│   │           ├── phpmailer.lang-nb.php
│   │           ├── phpmailer.lang-nl.php
│   │           ├── phpmailer.lang-pl.php
│   │           ├── phpmailer.lang-pt.php
│   │           ├── phpmailer.lang-pt_br.php
│   │           ├── phpmailer.lang-ro.php
│   │           ├── phpmailer.lang-ru.php
│   │           ├── phpmailer.lang-sk.php
│   │           ├── phpmailer.lang-sl.php
│   │           ├── phpmailer.lang-sr.php
│   │           ├── phpmailer.lang-sv.php
│   │           ├── phpmailer.lang-tr.php
│   │           ├── phpmailer.lang-uk.php
│   │           ├── phpmailer.lang-vi.php
│   │           ├── phpmailer.lang-zh.php
│   │           └── phpmailer.lang-zh_cn.php
│   └── phpoffice/
│       └── phpexcel/
│           ├── .gitattributes
│           ├── .gitignore
│           ├── .travis.yml
│           ├── Classes/
│           │   ├── PHPExcel/
│           │   │   ├── Autoloader.php
│           │   │   ├── CachedObjectStorage/
│           │   │   │   ├── APC.php
│           │   │   │   ├── CacheBase.php
│           │   │   │   ├── DiscISAM.php
│           │   │   │   ├── ICache.php
│           │   │   │   ├── Igbinary.php
│           │   │   │   ├── Memcache.php
│           │   │   │   ├── Memory.php
│           │   │   │   ├── MemoryGZip.php
│           │   │   │   ├── MemorySerialized.php
│           │   │   │   ├── PHPTemp.php
│           │   │   │   ├── SQLite.php
│           │   │   │   ├── SQLite3.php
│           │   │   │   └── Wincache.php
│           │   │   ├── CachedObjectStorageFactory.php
│           │   │   ├── CalcEngine/
│           │   │   │   ├── CyclicReferenceStack.php
│           │   │   │   └── Logger.php
│           │   │   ├── Calculation/
│           │   │   │   ├── Database.php
│           │   │   │   ├── DateTime.php
│           │   │   │   ├── Engineering.php
│           │   │   │   ├── Exception.php
│           │   │   │   ├── ExceptionHandler.php
│           │   │   │   ├── Financial.php
│           │   │   │   ├── FormulaParser.php
│           │   │   │   ├── FormulaToken.php
│           │   │   │   ├── Function.php
│           │   │   │   ├── Functions.php
│           │   │   │   ├── Logical.php
│           │   │   │   ├── LookupRef.php
│           │   │   │   ├── MathTrig.php
│           │   │   │   ├── Statistical.php
│           │   │   │   ├── TextData.php
│           │   │   │   ├── Token/
│           │   │   │   │   └── Stack.php
│           │   │   │   └── functionlist.txt
│           │   │   ├── Calculation.php
│           │   │   ├── Cell/
│           │   │   │   ├── AdvancedValueBinder.php
│           │   │   │   ├── DataType.php
│           │   │   │   ├── DataValidation.php
│           │   │   │   ├── DefaultValueBinder.php
│           │   │   │   ├── Hyperlink.php
│           │   │   │   └── IValueBinder.php
│           │   │   ├── Cell.php
│           │   │   ├── Chart/
│           │   │   │   ├── Axis.php
│           │   │   │   ├── DataSeries.php
│           │   │   │   ├── DataSeriesValues.php
│           │   │   │   ├── Exception.php
│           │   │   │   ├── GridLines.php
│           │   │   │   ├── Layout.php
│           │   │   │   ├── Legend.php
│           │   │   │   ├── PlotArea.php
│           │   │   │   ├── Properties.php
│           │   │   │   ├── Renderer/
│           │   │   │   │   ├── PHP Charting Libraries.txt
│           │   │   │   │   └── jpgraph.php
│           │   │   │   └── Title.php
│           │   │   ├── Chart.php
│           │   │   ├── Comment.php
│           │   │   ├── DocumentProperties.php
│           │   │   ├── DocumentSecurity.php
│           │   │   ├── Exception.php
│           │   │   ├── HashTable.php
│           │   │   ├── Helper/
│           │   │   │   └── HTML.php
│           │   │   ├── IComparable.php
│           │   │   ├── IOFactory.php
│           │   │   ├── NamedRange.php
│           │   │   ├── Reader/
│           │   │   │   ├── Abstract.php
│           │   │   │   ├── CSV.php
│           │   │   │   ├── DefaultReadFilter.php
│           │   │   │   ├── Excel2003XML.php
│           │   │   │   ├── Excel2007/
│           │   │   │   │   ├── Chart.php
│           │   │   │   │   └── Theme.php
│           │   │   │   ├── Excel2007.php
│           │   │   │   ├── Excel5/
│           │   │   │   │   ├── Escher.php
│           │   │   │   │   ├── MD5.php
│           │   │   │   │   └── RC4.php
│           │   │   │   ├── Excel5.php
│           │   │   │   ├── Exception.php
│           │   │   │   ├── Gnumeric.php
│           │   │   │   ├── HTML.php
│           │   │   │   ├── IReadFilter.php
│           │   │   │   ├── IReader.php
│           │   │   │   ├── OOCalc.php
│           │   │   │   └── SYLK.php
│           │   │   ├── ReferenceHelper.php
│           │   │   ├── RichText/
│           │   │   │   ├── ITextElement.php
│           │   │   │   ├── Run.php
│           │   │   │   └── TextElement.php
│           │   │   ├── RichText.php
│           │   │   ├── Settings.php
│           │   │   ├── Shared/
│           │   │   │   ├── CodePage.php
│           │   │   │   ├── Date.php
│           │   │   │   ├── Drawing.php
│           │   │   │   ├── Escher/
│           │   │   │   │   ├── DgContainer/
│           │   │   │   │   │   ├── SpgrContainer/
│           │   │   │   │   │   │   └── SpContainer.php
│           │   │   │   │   │   └── SpgrContainer.php
│           │   │   │   │   ├── DgContainer.php
│           │   │   │   │   ├── DggContainer/
│           │   │   │   │   │   ├── BstoreContainer/
│           │   │   │   │   │   │   ├── BSE/
│           │   │   │   │   │   │   │   └── Blip.php
│           │   │   │   │   │   │   └── BSE.php
│           │   │   │   │   │   └── BstoreContainer.php
│           │   │   │   │   └── DggContainer.php
│           │   │   │   ├── Escher.php
│           │   │   │   ├── Excel5.php
│           │   │   │   ├── File.php
│           │   │   │   ├── Font.php
│           │   │   │   ├── JAMA/
│           │   │   │   │   ├── CHANGELOG.TXT
│           │   │   │   │   ├── CholeskyDecomposition.php
│           │   │   │   │   ├── EigenvalueDecomposition.php
│           │   │   │   │   ├── LUDecomposition.php
│           │   │   │   │   ├── Matrix.php
│           │   │   │   │   ├── QRDecomposition.php
│           │   │   │   │   ├── SingularValueDecomposition.php
│           │   │   │   │   └── utils/
│           │   │   │   │       ├── Error.php
│           │   │   │   │       └── Maths.php
│           │   │   │   ├── OLE/
│           │   │   │   │   ├── ChainedBlockStream.php
│           │   │   │   │   ├── PPS/
│           │   │   │   │   │   ├── File.php
│           │   │   │   │   │   └── Root.php
│           │   │   │   │   └── PPS.php
│           │   │   │   ├── OLE.php
│           │   │   │   ├── OLERead.php
│           │   │   │   ├── PCLZip/
│           │   │   │   │   ├── gnu-lgpl.txt
│           │   │   │   │   ├── pclzip.lib.php
│           │   │   │   │   └── readme.txt
│           │   │   │   ├── PasswordHasher.php
│           │   │   │   ├── String.php
│           │   │   │   ├── TimeZone.php
│           │   │   │   ├── XMLWriter.php
│           │   │   │   ├── ZipArchive.php
│           │   │   │   ├── ZipStreamWrapper.php
│           │   │   │   └── trend/
│           │   │   │       ├── bestFitClass.php
│           │   │   │       ├── exponentialBestFitClass.php
│           │   │   │       ├── linearBestFitClass.php
│           │   │   │       ├── logarithmicBestFitClass.php
│           │   │   │       ├── polynomialBestFitClass.php
│           │   │   │       ├── powerBestFitClass.php
│           │   │   │       └── trendClass.php
│           │   │   ├── Style/
│           │   │   │   ├── Alignment.php
│           │   │   │   ├── Border.php
│           │   │   │   ├── Borders.php
│           │   │   │   ├── Color.php
│           │   │   │   ├── Conditional.php
│           │   │   │   ├── Fill.php
│           │   │   │   ├── Font.php
│           │   │   │   ├── NumberFormat.php
│           │   │   │   ├── Protection.php
│           │   │   │   └── Supervisor.php
│           │   │   ├── Style.php
│           │   │   ├── Worksheet/
│           │   │   │   ├── AutoFilter/
│           │   │   │   │   ├── Column/
│           │   │   │   │   │   └── Rule.php
│           │   │   │   │   └── Column.php
│           │   │   │   ├── AutoFilter.php
│           │   │   │   ├── BaseDrawing.php
│           │   │   │   ├── CellIterator.php
│           │   │   │   ├── Column.php
│           │   │   │   ├── ColumnCellIterator.php
│           │   │   │   ├── ColumnDimension.php
│           │   │   │   ├── ColumnIterator.php
│           │   │   │   ├── Drawing/
│           │   │   │   │   └── Shadow.php
│           │   │   │   ├── Drawing.php
│           │   │   │   ├── HeaderFooter.php
│           │   │   │   ├── HeaderFooterDrawing.php
│           │   │   │   ├── MemoryDrawing.php
│           │   │   │   ├── PageMargins.php
│           │   │   │   ├── PageSetup.php
│           │   │   │   ├── Protection.php
│           │   │   │   ├── Row.php
│           │   │   │   ├── RowCellIterator.php
│           │   │   │   ├── RowDimension.php
│           │   │   │   ├── RowIterator.php
│           │   │   │   └── SheetView.php
│           │   │   ├── Worksheet.php
│           │   │   ├── WorksheetIterator.php
│           │   │   ├── Writer/
│           │   │   │   ├── Abstract.php
│           │   │   │   ├── CSV.php
│           │   │   │   ├── Excel2007/
│           │   │   │   │   ├── Chart.php
│           │   │   │   │   ├── Comments.php
│           │   │   │   │   ├── ContentTypes.php
│           │   │   │   │   ├── DocProps.php
│           │   │   │   │   ├── Drawing.php
│           │   │   │   │   ├── Rels.php
│           │   │   │   │   ├── RelsRibbon.php
│           │   │   │   │   ├── RelsVBA.php
│           │   │   │   │   ├── StringTable.php
│           │   │   │   │   ├── Style.php
│           │   │   │   │   ├── Theme.php
│           │   │   │   │   ├── Workbook.php
│           │   │   │   │   ├── Worksheet.php
│           │   │   │   │   └── WriterPart.php
│           │   │   │   ├── Excel2007.php
│           │   │   │   ├── Excel5/
│           │   │   │   │   ├── BIFFwriter.php
│           │   │   │   │   ├── Escher.php
│           │   │   │   │   ├── Font.php
│           │   │   │   │   ├── Parser.php
│           │   │   │   │   ├── Workbook.php
│           │   │   │   │   ├── Worksheet.php
│           │   │   │   │   └── Xf.php
│           │   │   │   ├── Excel5.php
│           │   │   │   ├── Exception.php
│           │   │   │   ├── HTML.php
│           │   │   │   ├── IWriter.php
│           │   │   │   ├── OpenDocument/
│           │   │   │   │   ├── Cell/
│           │   │   │   │   │   └── Comment.php
│           │   │   │   │   ├── Content.php
│           │   │   │   │   ├── Meta.php
│           │   │   │   │   ├── MetaInf.php
│           │   │   │   │   ├── Mimetype.php
│           │   │   │   │   ├── Settings.php
│           │   │   │   │   ├── Styles.php
│           │   │   │   │   ├── Thumbnails.php
│           │   │   │   │   └── WriterPart.php
│           │   │   │   ├── OpenDocument.php
│           │   │   │   ├── PDF/
│           │   │   │   │   ├── Core.php
│           │   │   │   │   ├── DomPDF.php
│           │   │   │   │   ├── mPDF.php
│           │   │   │   │   └── tcPDF.php
│           │   │   │   └── PDF.php
│           │   │   └── locale/
│           │   │       ├── bg/
│           │   │       │   └── config
│           │   │       ├── cs/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── da/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── de/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── en/
│           │   │       │   └── uk/
│           │   │       │       └── config
│           │   │       ├── es/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── fi/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── fr/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── hu/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── it/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── nl/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── no/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── pl/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── pt/
│           │   │       │   ├── br/
│           │   │       │   │   ├── config
│           │   │       │   │   └── functions
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── ru/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       ├── sv/
│           │   │       │   ├── config
│           │   │       │   └── functions
│           │   │       └── tr/
│           │   │           ├── config
│           │   │           └── functions
│           │   └── PHPExcel.php
│           ├── Examples/
│           │   ├── .gitignore
│           │   ├── 01pharSimple.php
│           │   ├── 01simple-download-ods.php
│           │   ├── 01simple-download-pdf.php
│           │   ├── 01simple-download-xls.php
│           │   ├── 01simple-download-xlsx.php
│           │   ├── 01simple.php
│           │   ├── 01simplePCLZip.php
│           │   ├── 02types-xls.php
│           │   ├── 02types.php
│           │   ├── 03formulas.php
│           │   ├── 04printing.php
│           │   ├── 05featuredemo.inc.php
│           │   ├── 05featuredemo.php
│           │   ├── 06largescale-with-cellcaching-sqlite.php
│           │   ├── 06largescale-with-cellcaching-sqlite3.php
│           │   ├── 06largescale-with-cellcaching.php
│           │   ├── 06largescale-xls.php
│           │   ├── 06largescale.php
│           │   ├── 07reader.php
│           │   ├── 07readerPCLZip.php
│           │   ├── 08conditionalformatting.php
│           │   ├── 08conditionalformatting2.php
│           │   ├── 09pagebreaks.php
│           │   ├── 10autofilter-selection-1.php
│           │   ├── 10autofilter-selection-2.php
│           │   ├── 10autofilter-selection-display.php
│           │   ├── 10autofilter.php
│           │   ├── 11documentsecurity-xls.php
│           │   ├── 11documentsecurity.php
│           │   ├── 12cellProtection.php
│           │   ├── 13calculation.php
│           │   ├── 14excel5.php
│           │   ├── 15datavalidation-xls.php
│           │   ├── 15datavalidation.php
│           │   ├── 16csv.php
│           │   ├── 17html.php
│           │   ├── 18extendedcalculation.php
│           │   ├── 19namedrange.php
│           │   ├── 20readexcel5.php
│           │   ├── 21pdf.php
│           │   ├── 22heavilyformatted.php
│           │   ├── 23sharedstyles.php
│           │   ├── 24readfilter.php
│           │   ├── 25inmemoryimage.php
│           │   ├── 26utf8.php
│           │   ├── 27imagesexcel5.php
│           │   ├── 28iterator.php
│           │   ├── 29advancedvaluebinder.php
│           │   ├── 30template.php
│           │   ├── 31docproperties_write-xls.php
│           │   ├── 31docproperties_write.php
│           │   ├── 32chartreadwrite.php
│           │   ├── 33chartcreate-area.php
│           │   ├── 33chartcreate-bar-stacked.php
│           │   ├── 33chartcreate-bar.php
│           │   ├── 33chartcreate-column-2.php
│           │   ├── 33chartcreate-column.php
│           │   ├── 33chartcreate-composite.php
│           │   ├── 33chartcreate-line.php
│           │   ├── 33chartcreate-multiple-charts.php
│           │   ├── 33chartcreate-pie.php
│           │   ├── 33chartcreate-radar.php
│           │   ├── 33chartcreate-scatter.php
│           │   ├── 33chartcreate-stock.php
│           │   ├── 34chartupdate.php
│           │   ├── 35chartrender.php
│           │   ├── 36chartreadwriteHTML.php
│           │   ├── 36chartreadwritePDF.php
│           │   ├── 37page_layout_view.php
│           │   ├── 38cloneWorksheet.php
│           │   ├── 39dropdown.php
│           │   ├── 40duplicateStyle.php
│           │   ├── 41password.php
│           │   ├── 42richText.php
│           │   ├── Excel2003XMLReader.php
│           │   ├── Excel2003XMLTest.xml
│           │   ├── GnumericReader.php
│           │   ├── GnumericTest.gnumeric
│           │   ├── OOCalcReader.php
│           │   ├── OOCalcReaderPCLZip.php
│           │   ├── OOCalcTest.ods
│           │   ├── Quadratic.php
│           │   ├── Quadratic2.php
│           │   ├── SylkReader.php
│           │   ├── SylkTest.slk
│           │   ├── XMLReader.php
│           │   ├── XMLTest.xml
│           │   ├── data/
│           │   │   └── continents/
│           │   │       ├── Africa.txt
│           │   │       ├── Asia.txt
│           │   │       ├── Europe.txt
│           │   │       ├── North America.txt
│           │   │       ├── Oceania.txt
│           │   │       └── South America.txt
│           │   └── runall.php
│           ├── changelog.txt
│           ├── composer.json
│           ├── install.txt
│           ├── license.md
│           └── unitTests/
│               ├── Classes/
│               │   └── PHPExcel/
│               │       ├── AutoloaderTest.php
│               │       ├── Calculation/
│               │       │   ├── DateTimeTest.php
│               │       │   ├── EngineeringTest.php
│               │       │   ├── FinancialTest.php
│               │       │   ├── FunctionsTest.php
│               │       │   ├── LogicalTest.php
│               │       │   ├── LookupRefTest.php
│               │       │   ├── MathTrigTest.php
│               │       │   └── TextDataTest.php
│               │       ├── CalculationTest.php
│               │       ├── Cell/
│               │       │   ├── AdvancedValueBinderTest.php
│               │       │   ├── DataTypeTest.php
│               │       │   ├── DefaultValueBinderTest.php
│               │       │   └── HyperlinkTest.php
│               │       ├── CellTest.php
│               │       ├── Chart/
│               │       │   ├── DataSeriesValuesTest.php
│               │       │   ├── LayoutTest.php
│               │       │   └── LegendTest.php
│               │       ├── Reader/
│               │       │   └── XEEValidatorTest.php
│               │       ├── ReferenceHelperTest.php
│               │       ├── Shared/
│               │       │   ├── CodePageTest.php
│               │       │   ├── DateTest.php
│               │       │   ├── FileTest.php
│               │       │   ├── FontTest.php
│               │       │   ├── PasswordHasherTest.php
│               │       │   ├── StringTest.php
│               │       │   └── TimeZoneTest.php
│               │       ├── Style/
│               │       │   ├── ColorTest.php
│               │       │   └── NumberFormatTest.php
│               │       └── Worksheet/
│               │           ├── AutoFilter/
│               │           │   ├── Column/
│               │           │   │   └── RuleTest.php
│               │           │   └── ColumnTest.php
│               │           ├── AutoFilterTest.php
│               │           ├── CellCollectionTest.php
│               │           ├── ColumnCellIteratorTest.php
│               │           ├── ColumnIteratorTest.php
│               │           ├── RowCellIteratorTest.php
│               │           ├── RowIteratorTest.php
│               │           ├── WorksheetColumnTest.php
│               │           └── WorksheetRowTest.php
│               ├── bootstrap.php
│               ├── custom/
│               │   ├── Complex.php
│               │   └── complexAssert.php
│               ├── phpunit-cc.xml
│               ├── phpunit.xml
│               ├── rawTestData/
│               │   ├── Calculation/
│               │   │   ├── DateTime/
│               │   │   │   ├── DATE.data
│               │   │   │   ├── DATEDIF.data
│               │   │   │   ├── DATEVALUE.data
│               │   │   │   ├── DAY.data
│               │   │   │   ├── DAYS360.data
│               │   │   │   ├── EDATE.data
│               │   │   │   ├── EOMONTH.data
│               │   │   │   ├── HOUR.data
│               │   │   │   ├── MINUTE.data
│               │   │   │   ├── MONTH.data
│               │   │   │   ├── NETWORKDAYS.data
│               │   │   │   ├── SECOND.data
│               │   │   │   ├── TIME.data
│               │   │   │   ├── TIMEVALUE.data
│               │   │   │   ├── WEEKDAY.data
│               │   │   │   ├── WEEKNUM.data
│               │   │   │   ├── WORKDAY.data
│               │   │   │   ├── YEAR.data
│               │   │   │   └── YEARFRAC.data
│               │   │   ├── Engineering/
│               │   │   │   ├── BESSELI.data
│               │   │   │   ├── BESSELJ.data
│               │   │   │   ├── BESSELK.data
│               │   │   │   ├── BESSELY.data
│               │   │   │   ├── BIN2DEC.data
│               │   │   │   ├── BIN2HEX.data
│               │   │   │   ├── BIN2OCT.data
│               │   │   │   ├── COMPLEX.data
│               │   │   │   ├── CONVERTUOM.data
│               │   │   │   ├── DEC2BIN.data
│               │   │   │   ├── DEC2HEX.data
│               │   │   │   ├── DEC2OCT.data
│               │   │   │   ├── DELTA.data
│               │   │   │   ├── ERF.data
│               │   │   │   ├── ERFC.data
│               │   │   │   ├── GESTEP.data
│               │   │   │   ├── HEX2BIN.data
│               │   │   │   ├── HEX2DEC.data
│               │   │   │   ├── HEX2OCT.data
│               │   │   │   ├── IMABS.data
│               │   │   │   ├── IMAGINARY.data
│               │   │   │   ├── IMARGUMENT.data
│               │   │   │   ├── IMCONJUGATE.data
│               │   │   │   ├── IMCOS.data
│               │   │   │   ├── IMDIV.data
│               │   │   │   ├── IMEXP.data
│               │   │   │   ├── IMLN.data
│               │   │   │   ├── IMLOG10.data
│               │   │   │   ├── IMLOG2.data
│               │   │   │   ├── IMPOWER.data
│               │   │   │   ├── IMPRODUCT.data
│               │   │   │   ├── IMREAL.data
│               │   │   │   ├── IMSIN.data
│               │   │   │   ├── IMSQRT.data
│               │   │   │   ├── IMSUB.data
│               │   │   │   ├── IMSUM.data
│               │   │   │   ├── OCT2BIN.data
│               │   │   │   ├── OCT2DEC.data
│               │   │   │   └── OCT2HEX.data
│               │   │   ├── Financial/
│               │   │   │   ├── ACCRINT.data
│               │   │   │   ├── ACCRINTM.data
│               │   │   │   ├── AMORDEGRC.data
│               │   │   │   ├── AMORLINC.data
│               │   │   │   ├── COUPDAYBS.data
│               │   │   │   ├── COUPDAYS.data
│               │   │   │   ├── COUPDAYSNC.data
│               │   │   │   ├── COUPNCD.data
│               │   │   │   ├── COUPNUM.data
│               │   │   │   ├── COUPPCD.data
│               │   │   │   ├── CUMIPMT.data
│               │   │   │   ├── CUMPRINC.data
│               │   │   │   ├── DB.data
│               │   │   │   ├── DDB.data
│               │   │   │   ├── DISC.data
│               │   │   │   ├── DOLLARDE.data
│               │   │   │   ├── DOLLARFR.data
│               │   │   │   ├── EFFECT.data
│               │   │   │   ├── FV.data
│               │   │   │   ├── FVSCHEDULE.data
│               │   │   │   ├── INTRATE.data
│               │   │   │   ├── IPMT.data
│               │   │   │   ├── IRR.data
│               │   │   │   ├── ISPMT.data
│               │   │   │   ├── MIRR.data
│               │   │   │   ├── NOMINAL.data
│               │   │   │   ├── NPER.data
│               │   │   │   ├── NPV.data
│               │   │   │   ├── PRICE.data
│               │   │   │   ├── RATE.data
│               │   │   │   └── XIRR.data
│               │   │   ├── Functions/
│               │   │   │   ├── ERROR_TYPE.data
│               │   │   │   ├── IS_BLANK.data
│               │   │   │   ├── IS_ERR.data
│               │   │   │   ├── IS_ERROR.data
│               │   │   │   ├── IS_EVEN.data
│               │   │   │   ├── IS_LOGICAL.data
│               │   │   │   ├── IS_NA.data
│               │   │   │   ├── IS_NONTEXT.data
│               │   │   │   ├── IS_NUMBER.data
│               │   │   │   ├── IS_ODD.data
│               │   │   │   ├── IS_TEXT.data
│               │   │   │   ├── N.data
│               │   │   │   └── TYPE.data
│               │   │   ├── Logical/
│               │   │   │   ├── AND.data
│               │   │   │   ├── IF.data
│               │   │   │   ├── IFERROR.data
│               │   │   │   ├── NOT.data
│               │   │   │   └── OR.data
│               │   │   ├── LookupRef/
│               │   │   │   ├── HLOOKUP.data
│               │   │   │   └── VLOOKUP.data
│               │   │   ├── MathTrig/
│               │   │   │   ├── ATAN2.data
│               │   │   │   ├── CEILING.data
│               │   │   │   ├── COMBIN.data
│               │   │   │   ├── EVEN.data
│               │   │   │   ├── FACT.data
│               │   │   │   ├── FACTDOUBLE.data
│               │   │   │   ├── FLOOR.data
│               │   │   │   ├── GCD.data
│               │   │   │   ├── INT.data
│               │   │   │   ├── LCM.data
│               │   │   │   ├── LOG.data
│               │   │   │   ├── MDETERM.data
│               │   │   │   ├── MINVERSE.data
│               │   │   │   ├── MMULT.data
│               │   │   │   ├── MOD.data
│               │   │   │   ├── MROUND.data
│               │   │   │   ├── MULTINOMIAL.data
│               │   │   │   ├── ODD.data
│               │   │   │   ├── POWER.data
│               │   │   │   ├── PRODUCT.data
│               │   │   │   ├── QUOTIENT.data
│               │   │   │   ├── ROMAN.data
│               │   │   │   ├── ROUNDDOWN.data
│               │   │   │   ├── ROUNDUP.data
│               │   │   │   ├── SERIESSUM.data
│               │   │   │   ├── SIGN.data
│               │   │   │   ├── SQRTPI.data
│               │   │   │   ├── SUMSQ.data
│               │   │   │   └── TRUNC.data
│               │   │   └── TextData/
│               │   │       ├── CHAR.data
│               │   │       ├── CLEAN.data
│               │   │       ├── CODE.data
│               │   │       ├── CONCATENATE.data
│               │   │       ├── DOLLAR.data
│               │   │       ├── FIND.data
│               │   │       ├── FIXED.data
│               │   │       ├── LEFT.data
│               │   │       ├── LEN.data
│               │   │       ├── LOWER.data
│               │   │       ├── MID.data
│               │   │       ├── PROPER.data
│               │   │       ├── REPLACE.data
│               │   │       ├── RIGHT.data
│               │   │       ├── SEARCH.data
│               │   │       ├── SUBSTITUTE.data
│               │   │       ├── T.data
│               │   │       ├── TEXT.data
│               │   │       ├── TRIM.data
│               │   │       ├── UPPER.data
│               │   │       └── VALUE.data
│               │   ├── CalculationBinaryComparisonOperation.data
│               │   ├── Cell/
│               │   │   └── DefaultValueBinder.data
│               │   ├── CellAbsoluteCoordinate.data
│               │   ├── CellAbsoluteReference.data
│               │   ├── CellBuildRange.data
│               │   ├── CellCoordinates.data
│               │   ├── CellExtractAllCellReferencesInRange.data
│               │   ├── CellGetRangeBoundaries.data
│               │   ├── CellRangeBoundaries.data
│               │   ├── CellRangeDimension.data
│               │   ├── CellSplitRange.data
│               │   ├── ColumnIndex.data
│               │   ├── ColumnString.data
│               │   ├── Reader/
│               │   │   ├── XEETestInvalidUTF-16.xml
│               │   │   ├── XEETestInvalidUTF-16BE.xml
│               │   │   ├── XEETestInvalidUTF-16LE.xml
│               │   │   ├── XEETestInvalidUTF-8.xml
│               │   │   ├── XEETestValidUTF-16.xml
│               │   │   ├── XEETestValidUTF-16BE.xml
│               │   │   ├── XEETestValidUTF-16LE.xml
│               │   │   └── XEETestValidUTF-8.xml
│               │   ├── Shared/
│               │   │   ├── CentimeterSizeToPixels.data
│               │   │   ├── CodePage.data
│               │   │   ├── DateTimeExcelToPHP1900.data
│               │   │   ├── DateTimeExcelToPHP1900Timezone.data
│               │   │   ├── DateTimeExcelToPHP1904.data
│               │   │   ├── DateTimeFormatCodes.data
│               │   │   ├── DateTimeFormattedPHPToExcel1900.data
│               │   │   ├── DateTimePHPToExcel1900.data
│               │   │   ├── DateTimePHPToExcel1904.data
│               │   │   ├── FontSizeToPixels.data
│               │   │   ├── InchSizeToPixels.data
│               │   │   └── PasswordHashes.data
│               │   └── Style/
│               │       ├── ColorChangeBrightness.data
│               │       ├── ColorGetBlue.data
│               │       ├── ColorGetGreen.data
│               │       ├── ColorGetRed.data
│               │       └── NumberFormat.data
│               └── testDataFileIterator.php
└── wemall7.sql
Download .txt
Showing preview only (735K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (8733 symbols across 609 files)

FILE: addons/putong/demo/Demo.php
  class Demo (line 19) | class Demo extends Addons
    method install (line 34) | public function install()
    method uninstall (line 43) | public function uninstall()
    method temphook (line 52) | public function temphook($param)

FILE: addons/putong/demo/controller/Admin.php
  class Admin (line 7) | class Admin extends Controller
    method _initialize (line 9) | public function _initialize(){
    method index (line 22) | public function index()
    method add (line 33) | public function add()
    method update (line 62) | public function update()

FILE: addons/putong/demo/controller/Index.php
  class Index (line 6) | class Index extends Controller
    method _initialize (line 8) | public function _initialize(){
    method index (line 16) | public function index()

FILE: addons/putong/demo/data/install.sql
  type `addons_putong_demo_config` (line 5) | CREATE TABLE `addons_putong_demo_config` (

FILE: addons/putong/demo/model/AddonsPutongDemoConfig.php
  class AddonsPutongDemoConfig (line 5) | class AddonsPutongDemoConfig extends Model
    method file (line 14) | public function file()

FILE: application/admin/controller/AddonsController.php
  class AddonsController (line 10) | class AddonsController extends BaseController
    method _initialize (line 15) | public function _initialize()
    method index (line 21) | public function index()
    method shop (line 59) | public function shop()
    method getFileDownload (line 67) | public function getFileDownload()
    method compare (line 92) | public function compare()

FILE: application/admin/controller/BaseController.php
  class BaseController (line 11) | class BaseController extends Controller
    method _initialize (line 13) | public function _initialize(){

FILE: application/admin/controller/FileController.php
  class FileController (line 4) | class FileController extends BaseController
    method index (line 7) | public function index(){
    method upload (line 19) | public function upload(){

FILE: application/admin/controller/HelpController.php
  class HelpController (line 4) | class HelpController extends BaseController
    method index (line 7) | public function index(){

FILE: application/admin/controller/IndexController.php
  class IndexController (line 6) | class IndexController extends BaseController
    method index (line 8) | public function index()
    method getDateAnalysis (line 41) | public function getDateAnalysis(){

FILE: application/admin/controller/PublicController.php
  class PublicController (line 12) | class PublicController extends Controller
    method login (line 20) | public function login()
    method loginout (line 70) | public function loginout(){

FILE: application/admin/controller/WechatController.php
  class WechatController (line 6) | class WechatController extends Controller
    method _initialize (line 13) | public function _initialize(){
    method init (line 17) | public function init()
    method index (line 32) | public function index()
    method check (line 52) | public function check($type)
    method checkEvents (line 69) | public function checkEvents($event)
    method checkKeyWords (line 88) | public function checkKeyWords($key = '')
    method toKeyUnknow (line 123) | public function toKeyUnknow($key)
    method checkUser (line 150) | public function checkUser($openId)
    method updateUser (line 181) | public function updateUser($openId)
    method getQRCode (line 189) | public function getQRCode()
    method getMenu (line 202) | public function getMenu()
    method createWxMenu (line 209) | public function createWxMenu()
    method addTplMessageId (line 257) | public function addTplMessageId($id)
    method sendTplMsgOrder (line 276) | public function sendTplMsgOrder($order_id)
    method sendTplMessageOrderAdmin (line 325) | public function sendTplMessageOrderAdmin($order_id)
    method sendTplMsgPay (line 386) | public function sendTplMsgPay($order_id)
    method sendTplMsgOrderPublish (line 423) | public function sendTplMsgOrderPublish($order_id)

FILE: application/admin/controller/article/CategoryController.php
  class CategoryController (line 7) | class CategoryController extends BaseController
    method index (line 10) | public function index(){
    method add (line 22) | public function add(){
    method update (line 51) | public function update(){
    method del (line 63) | public function del(){

FILE: application/admin/controller/article/IndexController.php
  class IndexController (line 7) | class IndexController extends BaseController
    method index (line 10) | public function index(){
    method add (line 20) | public function add(){
    method update (line 50) | public function update(){
    method del (line 61) | public function del(){

FILE: application/admin/controller/auth/AdminController.php
  class AdminController (line 7) | class AdminController extends BaseController
    method index (line 11) | public function index(){
    method add (line 20) | public function add(){
    method del (line 74) | public function del(){
    method update (line 89) | public function update(){

FILE: application/admin/controller/auth/GroupController.php
  class GroupController (line 7) | class GroupController extends BaseController
    method index (line 10) | public function index(){
    method add (line 20) | public function add(){
    method del (line 52) | public function del(){
    method update (line 65) | public function update(){

FILE: application/admin/controller/config/MailController.php
  class MailController (line 5) | class MailController extends BaseController
    method index (line 8) | public function index(){

FILE: application/admin/controller/config/SiteController.php
  class SiteController (line 6) | class SiteController extends BaseController
    method index (line 10) | public function index(){

FILE: application/admin/controller/config/SmsController.php
  class SmsController (line 5) | class SmsController extends BaseController
    method index (line 8) | public function index(){

FILE: application/admin/controller/tpl/MailController.php
  class MailController (line 5) | class MailController extends BaseController
    method index (line 8) | public function index(){
    method add (line 18) | public function add(){
    method update (line 42) | public function update(){
    method send (line 53) | public function send()

FILE: application/admin/controller/tpl/ShopController.php
  class ShopController (line 5) | class ShopController extends BaseController
    method index (line 8) | public function index(){

FILE: application/admin/controller/tpl/SmsController.php
  class SmsController (line 8) | class SmsController extends BaseController
    method index (line 11) | public function index(){
    method add (line 21) | public function add(){
    method update (line 45) | public function update(){
    method send (line 56) | public function send()

FILE: application/admin/controller/user/IndexController.php
  class IndexController (line 6) | class IndexController extends BaseController
    method index (line 9) | public function index(){
    method add (line 30) | public function add(){
    method del (line 59) | public function del(){
    method update (line 72) | public function update(){
    method export (line 86) | public function export(){

FILE: application/admin/controller/user/LevelController.php
  class LevelController (line 6) | class LevelController extends BaseController
    method index (line 10) | public function index(){
    method add (line 21) | public function add(){

FILE: application/admin/controller/wx/ConfigController.php
  class ConfigController (line 5) | class ConfigController extends BaseController
    method index (line 8) | public function index(){

FILE: application/admin/controller/wx/KefuController.php
  class KefuController (line 5) | class KefuController extends BaseController
    method index (line 8) | public function index(){

FILE: application/admin/controller/wx/MenuController.php
  class MenuController (line 5) | class MenuController extends BaseController
    method index (line 8) | public function index(){
    method add (line 19) | public function add(){
    method del (line 45) | public function del(){

FILE: application/admin/controller/wx/PrintController.php
  class PrintController (line 5) | class PrintController extends BaseController
    method index (line 8) | public function index(){

FILE: application/admin/controller/wx/ReplyController.php
  class ReplyController (line 5) | class ReplyController extends BaseController
    method index (line 8) | public function index(){
    method add (line 18) | public function add(){
    method del (line 44) | public function del(){

FILE: application/admin/controller/wx/TplmsgController.php
  class TplmsgController (line 5) | class TplmsgController extends BaseController
    method index (line 9) | public function index(){
    method add (line 19) | public function add(){
    method update (line 44) | public function update(){

FILE: application/admin/validate/Admin.php
  class Admin (line 6) | class Admin extends Validate

FILE: application/app/controller/AddonsController.php
  class AddonsController (line 12) | class AddonsController extends Controller
    method _initialize (line 16) | public function _initialize(){
    method index (line 20) | public function index()

FILE: application/app/controller/IndexController.php
  class IndexController (line 12) | class IndexController extends Controller
    method index (line 14) | public function index()
    method themeStatic (line 26) | public function themeStatic()
    method source (line 56) | public function source(){

FILE: application/common.php
  function data_auth_sign (line 10) | function data_auth_sign($data) {
  function http_down (line 27) | function http_down($url, $filename, $timeout = 60) {
  function wp_file_get_contents (line 45) | function wp_file_get_contents($url)
  function unzip (line 58) | function unzip($filePath, $toPath,$filesize=0){
  function export_to (line 82) | function export_to($data,$name=false,$type = 0){
  function list_to_tree (line 104) | function list_to_tree($list, $pk = 'id', $pid = 'pid', $child = '_child'...
  function my_sort (line 143) | function my_sort($arrays,$sort_key,$sort_order='asc',$sort_type=SORT_NUM...
  function show_msg (line 165) | function show_msg($msg, $class = ''){
  function execute_sql_file (line 173) | function execute_sql_file($sql_path)
  function getHttpResponseGET (line 201) | function getHttpResponseGET($url) {
  function send_mail (line 230) | function send_mail($tomail, $name, $subject = '', $body = '', $attachmen...
  function wxPrint (line 267) | function wxPrint($id)
  function rand_code (line 328) | function rand_code($length = 6)
  function simplest_xml_to_array (line 344) | function simplest_xml_to_array($xmlstring)

FILE: application/common/behavior/Config.php
  class Config (line 10) | class Config {
    method run (line 17) | public function run(&$params)

FILE: application/common/model/Admin.php
  class Admin (line 6) | class Admin extends Model
    method group (line 13) | public function group(){
    method login (line 24) | public function login($username, $password, $type = 1){
    method updateLogin (line 61) | protected function updateLogin($uid){

FILE: application/common/model/Analysis.php
  class Analysis (line 6) | class Analysis extends Model
    method add (line 21) | public function add($orders = 0, $trades = 0, $registers = 0, $users = 0)

FILE: application/common/model/Article.php
  class Article (line 6) | class Article extends Model
    method category (line 14) | public function category()

FILE: application/common/model/ArticleCategory.php
  class ArticleCategory (line 6) | class ArticleCategory extends Model

FILE: application/common/model/AuthGroup.php
  class AuthGroup (line 6) | class AuthGroup extends Model

FILE: application/common/model/AuthGroupAccess.php
  class AuthGroupAccess (line 6) | class AuthGroupAccess extends Model

FILE: application/common/model/AuthRule.php
  class AuthRule (line 6) | class AuthRule extends Model

FILE: application/common/model/Config.php
  class Config (line 6) | class Config extends Model
    method logo (line 14) | public function logo()

FILE: application/common/model/File.php
  class File (line 12) | class File extends Model

FILE: application/common/model/Mail.php
  class Mail (line 6) | class Mail extends Model

FILE: application/common/model/MailTpl.php
  class MailTpl (line 6) | class MailTpl extends Model

FILE: application/common/model/Sms.php
  class Sms (line 6) | class Sms extends Model

FILE: application/common/model/SmsTpl.php
  class SmsTpl (line 6) | class SmsTpl extends Model

FILE: application/common/model/User.php
  class User (line 6) | class User extends Model
    method contact (line 16) | public function contact()
    method avater (line 20) | public function avater()
    method wx (line 24) | public function wx()
    method applet (line 28) | public function applet()
    method getLevelAttr (line 34) | protected function getLevelAttr($value, $data)
    method login (line 54) | public function login($username, $password, $type = 1){
    method updateLogin (line 91) | protected function updateLogin($uid){

FILE: application/common/model/UserLevel.php
  class UserLevel (line 6) | class UserLevel extends Model

FILE: application/common/model/WxConfig.php
  class WxConfig (line 6) | class WxConfig extends Model
    method getJsSign (line 14) | public function getJsSign($url = '')
    method getWeObj (line 29) | public function getWeObj($type = 1)

FILE: application/common/model/WxKefu.php
  class WxKefu (line 6) | class WxKefu extends Model

FILE: application/common/model/WxMenu.php
  class WxMenu (line 6) | class WxMenu extends Model

FILE: application/common/model/WxPrint.php
  class WxPrint (line 6) | class WxPrint extends Model

FILE: application/common/model/WxReply.php
  class WxReply (line 6) | class WxReply extends Model
    method file (line 14) | public function file()

FILE: application/common/model/WxTplmsg.php
  class WxTplmsg (line 6) | class WxTplmsg extends Model

FILE: application/install/common.php
  function check_env (line 7) | function check_env()
  function check_dirfile (line 41) | function check_dirfile()
  function check_func (line 87) | function check_func()
  function install_show_msg (line 115) | function install_show_msg($msg, $class = true)
  function filter_string (line 129) | function filter_string($data)
  function install_save_config (line 149) | function install_save_config($file, $config)
  function install_get_config_file (line 184) | function install_get_config_file($file)
  function write_config (line 217) | function write_config($config){
  function get_mysql_data (line 243) | function get_mysql_data($sql_path, $old_prefix = "", $new_prefix = "", $...

FILE: application/install/controller/IndexController.php
  class IndexController (line 6) | class IndexController extends Controller
    method _initialize (line 8) | public function _initialize()
    method index (line 25) | public function index()
    method setup1 (line 33) | public function setup1()
    method setup2 (line 45) | public function setup2()
    method setup3 (line 53) | public function setup3()

FILE: extend/com/Auth.php
  class Auth (line 69) | class Auth{
    method __construct (line 81) | public function __construct() {
    method check (line 96) | public function check($name, $uid, $type=1, $mode='url', $relation='or...
    method getGroups (line 143) | public function getGroups($uid) {
    method getAuthList (line 162) | protected function getAuthList($uid,$type) {
    method getUserInfo (line 223) | protected function getUserInfo($uid) {

FILE: public/install/js/install.js
  function no (line 1) | function no() {
  function showmsg (line 5) | function showmsg(msg, tyle) {
  function insok (line 9) | function insok(adminUrl) {

FILE: public/static/dist/js/app.js
  function _init (line 244) | function _init() {
  function start (line 700) | function start(box) {
  function done (line 707) | function done(box) {

FILE: public/static/dist/js/wemall.js
  function imageUploader (line 55) | function imageUploader(obj, more) {
  function removeImage (line 100) | function removeImage(obj, more) {
  function tabPage (line 111) | function tabPage(obj) {
  function selectImage (line 125) | function selectImage(obj, id) {
  function cancelSelectImage (line 132) | function cancelSelectImage(obj, id) {
  function ajaxForm (line 137) | function ajaxForm() {
  function checkAll (line 149) | function checkAll() {
  function batchUrl (line 156) | function batchUrl(url, is_pajx) {

FILE: public/static/layui/lay/dest/layui.all.js
  function s (line 2) | function s(e,t){var n="PLaySTATION 3"===navigator.platform?/^complete$/:...
  function c (line 2) | function c(){a.push(layui[m]),e.length>1?f.use(e.slice(1),t,a):"function...
  function t (line 2) | function t(a){new p(a)}
  function n (line 2) | function n(e){var t=!!e&&"length"in e&&e.length,n=pe.type(e);return"func...
  function r (line 2) | function r(e,t,n){if(pe.isFunction(t))return pe.grep(e,function(e,r){ret...
  function i (line 2) | function i(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}
  function o (line 2) | function o(e){var t={};return pe.each(e.match(De)||[],function(e,n){t[n]...
  function a (line 2) | function a(){re.addEventListener?(re.removeEventListener("DOMContentLoad...
  function s (line 2) | function s(){(re.addEventListener||"load"===e.event.type||"complete"===r...
  function u (line 2) | function u(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace...
  function l (line 2) | function l(e){var t;for(t in e)if(("data"!==t||!pe.isEmptyObject(e[t]))&...
  function c (line 2) | function c(e,t,n,r){if(He(e)){var i,o,a=pe.expando,s=e.nodeType,u=s?pe.c...
  function f (line 2) | function f(e,t,n){if(He(e)){var r,i,o=e.nodeType,a=o?pe.cache:e,s=o?e[pe...
  function d (line 2) | function d(e,t,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:functi...
  function p (line 2) | function p(e){var t=ze.split("|"),n=e.createDocumentFragment();if(n.crea...
  function h (line 2) | function h(e,t){var n,r,i=0,o="undefined"!=typeof e.getElementsByTagName...
  function g (line 2) | function g(e,t){for(var n,r=0;null!=(n=e[r]);r++)pe._data(n,"globalEval"...
  function m (line 2) | function m(e){Be.test(e.type)&&(e.defaultChecked=e.checked)}
  function y (line 2) | function y(e,t,n,r,i){for(var o,a,s,u,l,c,f,d=e.length,y=p(t),v=[],x=0;x...
  function v (line 2) | function v(){return!0}
  function x (line 2) | function x(){return!1}
  function b (line 2) | function b(){try{return re.activeElement}catch(e){}}
  function w (line 2) | function w(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof ...
  function T (line 2) | function T(e,t){return pe.nodeName(e,"table")&&pe.nodeName(11!==t.nodeTy...
  function C (line 2) | function C(e){return e.type=(null!==pe.find.attr(e,"type"))+"/"+e.type,e}
  function E (line 2) | function E(e){var t=it.exec(e.type);return t?e.type=t[1]:e.removeAttribu...
  function N (line 2) | function N(e,t){if(1===t.nodeType&&pe.hasData(e)){var n,r,i,o=pe._data(e...
  function k (line 2) | function k(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase...
  function S (line 2) | function S(e,t,n,r){t=oe.apply([],t);var i,o,a,s,u,l,c=0,f=e.length,d=f-...
  function A (line 2) | function A(e,t,n){for(var r,i=t?pe.filter(t,e):e,o=0;null!=(r=i[o]);o++)...
  function D (line 2) | function D(e,t){var n=pe(t.createElement(e)).appendTo(t.body),r=pe.css(n...
  function j (line 2) | function j(e){var t=re,n=lt[e];return n||(n=D(e,t),"none"!==n&&n||(ut=(u...
  function L (line 2) | function L(e,t){return{get:function(){return e()?void delete this.get:(t...
  function H (line 2) | function H(e){if(e in Et)return e;for(var t=e.charAt(0).toUpperCase()+e....
  function q (line 2) | function q(e,t){for(var n,r,i,o=[],a=0,s=e.length;a<s;a++)r=e[a],r.style...
  function _ (line 2) | function _(e,t,n){var r=bt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2...
  function F (line 2) | function F(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t...
  function M (line 2) | function M(t,n,r){var i=!0,o="width"===n?t.offsetWidth:t.offsetHeight,a=...
  function O (line 2) | function O(e,t,n,r,i){return new O.prototype.init(e,t,n,r,i)}
  function R (line 2) | function R(){return e.setTimeout(function(){Nt=void 0}),Nt=pe.now()}
  function P (line 2) | function P(e,t){var n,r={height:e},i=0;for(t=t?1:0;i<4;i+=2-t)n=Oe[i],r[...
  function B (line 2) | function B(e,t,n){for(var r,i=($.tweeners[t]||[]).concat($.tweeners["*"]...
  function W (line 2) | function W(e,t,n){var r,i,o,a,s,u,l,c,f=this,d={},p=e.style,h=e.nodeType...
  function I (line 2) | function I(e,t){var n,r,i,o,a;for(n in e)if(r=pe.camelCase(n),i=t[r],o=e...
  function $ (line 2) | function $(e,t,n){var r,i,o=0,a=$.prefilters.length,s=pe.Deferred().alwa...
  function z (line 2) | function z(e){return pe.attr(e,"class")||""}
  function X (line 2) | function X(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r...
  function U (line 2) | function U(e,t,n,r){function i(s){var u;return o[s]=!0,pe.each(e[s]||[],...
  function V (line 2) | function V(e,t){var n,r,i=pe.ajaxSettings.flatOptions||{};for(r in t)voi...
  function Y (line 2) | function Y(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;"*"===u[0];...
  function J (line 2) | function J(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for...
  function G (line 2) | function G(e){return e.style&&e.style.display||pe.css(e,"display")}
  function K (line 2) | function K(e){for(;e&&1===e.nodeType;){if("none"===G(e)||"hidden"===e.ty...
  function Q (line 2) | function Q(e,t,n,r){var i;if(pe.isArray(t))pe.each(t,function(t,i){n||rn...
  function Z (line 2) | function Z(){try{return new e.XMLHttpRequest}catch(t){}}
  function ee (line 2) | function ee(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(...
  function te (line 2) | function te(e){return pe.isWindow(e)?e:9===e.nodeType&&(e.defaultView||e...
  function t (line 2) | function t(e,t,n,r){var i,o,a,s,u,l,f,p,h=t&&t.ownerDocument,g=t?t.nodeT...
  function n (line 2) | function n(){function e(n,r){return t.push(n+" ")>T.cacheLength&&delete ...
  function r (line 2) | function r(e){return e[P]=!0,e}
  function i (line 2) | function i(e){var t=H.createElement("div");try{return!!e(t)}catch(n){ret...
  function o (line 2) | function o(e,t){for(var n=e.split("|"),r=n.length;r--;)T.attrHandle[n[r]...
  function a (line 2) | function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sour...
  function s (line 2) | function s(e){return function(t){var n=t.nodeName.toLowerCase();return"i...
  function u (line 2) | function u(e){return function(t){var n=t.nodeName.toLowerCase();return("...
  function l (line 2) | function l(e){return r(function(t){return t=+t,r(function(n,r){for(var i...
  function c (line 2) | function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}
  function f (line 2) | function f(){}
  function d (line 2) | function d(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}
  function p (line 2) | function p(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=I++;return t.first...
  function h (line 2) | function h(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)...
  function g (line 2) | function g(e,n,r){for(var i=0,o=n.length;i<o;i++)t(e,n[i],r);return r}
  function m (line 2) | function m(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o...
  function y (line 2) | function y(e,t,n,i,o,a){return i&&!i[P]&&(i=y(i)),o&&!o[P]&&(o=y(o,a)),r...
  function v (line 2) | function v(e){for(var t,n,r,i=e.length,o=T.relative[e[0].type],a=o||T.re...
  function x (line 2) | function x(e,n){var i=n.length>0,o=e.length>0,a=function(r,a,s,u,l){var ...
  function t (line 4) | function t(){var t,c,f=re.documentElement;f.appendChild(u),l.style.cssTe...
  function r (line 4) | function r(t,n,r,i){var o,f,v,x,w,C=n;2!==b&&(b=2,u&&e.clearTimeout(u),c...
  function t (line 5) | function t(e){e=l.find(e),e.height(f[1]-c-d-2*(0|parseFloat(e.css("paddi...
  function e (line 5) | function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}
  function o (line 5) | function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onlo...

FILE: public/static/layui/lay/lib/jquery.js
  function n (line 2) | function n(e){var t=!!e&&"length"in e&&e.length,n=pe.type(e);return"func...
  function r (line 2) | function r(e,t,n){if(pe.isFunction(t))return pe.grep(e,function(e,r){ret...
  function i (line 2) | function i(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}
  function o (line 2) | function o(e){var t={};return pe.each(e.match(De)||[],function(e,n){t[n]...
  function a (line 2) | function a(){re.addEventListener?(re.removeEventListener("DOMContentLoad...
  function s (line 2) | function s(){(re.addEventListener||"load"===e.event.type||"complete"===r...
  function u (line 2) | function u(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace...
  function l (line 2) | function l(e){var t;for(t in e)if(("data"!==t||!pe.isEmptyObject(e[t]))&...
  function c (line 2) | function c(e,t,n,r){if(He(e)){var i,o,a=pe.expando,s=e.nodeType,u=s?pe.c...
  function f (line 2) | function f(e,t,n){if(He(e)){var r,i,o=e.nodeType,a=o?pe.cache:e,s=o?e[pe...
  function d (line 2) | function d(e,t,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:functi...
  function p (line 2) | function p(e){var t=ze.split("|"),n=e.createDocumentFragment();if(n.crea...
  function h (line 2) | function h(e,t){var n,r,i=0,o="undefined"!=typeof e.getElementsByTagName...
  function g (line 2) | function g(e,t){for(var n,r=0;null!=(n=e[r]);r++)pe._data(n,"globalEval"...
  function m (line 2) | function m(e){Be.test(e.type)&&(e.defaultChecked=e.checked)}
  function y (line 2) | function y(e,t,n,r,i){for(var o,a,s,u,l,c,f,d=e.length,y=p(t),v=[],x=0;x...
  function v (line 2) | function v(){return!0}
  function x (line 2) | function x(){return!1}
  function b (line 2) | function b(){try{return re.activeElement}catch(e){}}
  function w (line 2) | function w(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof ...
  function T (line 2) | function T(e,t){return pe.nodeName(e,"table")&&pe.nodeName(11!==t.nodeTy...
  function C (line 2) | function C(e){return e.type=(null!==pe.find.attr(e,"type"))+"/"+e.type,e}
  function E (line 2) | function E(e){var t=it.exec(e.type);return t?e.type=t[1]:e.removeAttribu...
  function N (line 2) | function N(e,t){if(1===t.nodeType&&pe.hasData(e)){var n,r,i,o=pe._data(e...
  function k (line 2) | function k(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase...
  function S (line 2) | function S(e,t,n,r){t=oe.apply([],t);var i,o,a,s,u,l,c=0,f=e.length,d=f-...
  function A (line 2) | function A(e,t,n){for(var r,i=t?pe.filter(t,e):e,o=0;null!=(r=i[o]);o++)...
  function D (line 2) | function D(e,t){var n=pe(t.createElement(e)).appendTo(t.body),r=pe.css(n...
  function j (line 2) | function j(e){var t=re,n=lt[e];return n||(n=D(e,t),"none"!==n&&n||(ut=(u...
  function L (line 2) | function L(e,t){return{get:function(){return e()?void delete this.get:(t...
  function H (line 2) | function H(e){if(e in Et)return e;for(var t=e.charAt(0).toUpperCase()+e....
  function q (line 2) | function q(e,t){for(var n,r,i,o=[],a=0,s=e.length;a<s;a++)r=e[a],r.style...
  function _ (line 2) | function _(e,t,n){var r=bt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2...
  function F (line 2) | function F(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t...
  function M (line 2) | function M(t,n,r){var i=!0,o="width"===n?t.offsetWidth:t.offsetHeight,a=...
  function O (line 2) | function O(e,t,n,r,i){return new O.prototype.init(e,t,n,r,i)}
  function R (line 2) | function R(){return e.setTimeout(function(){Nt=void 0}),Nt=pe.now()}
  function P (line 2) | function P(e,t){var n,r={height:e},i=0;for(t=t?1:0;i<4;i+=2-t)n=Oe[i],r[...
  function B (line 2) | function B(e,t,n){for(var r,i=($.tweeners[t]||[]).concat($.tweeners["*"]...
  function W (line 2) | function W(e,t,n){var r,i,o,a,s,u,l,c,f=this,d={},p=e.style,h=e.nodeType...
  function I (line 2) | function I(e,t){var n,r,i,o,a;for(n in e)if(r=pe.camelCase(n),i=t[r],o=e...
  function $ (line 2) | function $(e,t,n){var r,i,o=0,a=$.prefilters.length,s=pe.Deferred().alwa...
  function z (line 2) | function z(e){return pe.attr(e,"class")||""}
  function X (line 2) | function X(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r...
  function U (line 2) | function U(e,t,n,r){function i(s){var u;return o[s]=!0,pe.each(e[s]||[],...
  function V (line 2) | function V(e,t){var n,r,i=pe.ajaxSettings.flatOptions||{};for(r in t)voi...
  function Y (line 2) | function Y(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;"*"===u[0];...
  function J (line 2) | function J(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for...
  function G (line 2) | function G(e){return e.style&&e.style.display||pe.css(e,"display")}
  function K (line 2) | function K(e){for(;e&&1===e.nodeType;){if("none"===G(e)||"hidden"===e.ty...
  function Q (line 2) | function Q(e,t,n,r){var i;if(pe.isArray(t))pe.each(t,function(t,i){n||rn...
  function Z (line 2) | function Z(){try{return new e.XMLHttpRequest}catch(t){}}
  function ee (line 2) | function ee(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(...
  function te (line 2) | function te(e){return pe.isWindow(e)?e:9===e.nodeType&&(e.defaultView||e...
  function t (line 2) | function t(e,t,n,r){var i,o,a,s,u,l,f,p,h=t&&t.ownerDocument,g=t?t.nodeT...
  function n (line 2) | function n(){function e(n,r){return t.push(n+" ")>T.cacheLength&&delete ...
  function r (line 2) | function r(e){return e[P]=!0,e}
  function i (line 2) | function i(e){var t=H.createElement("div");try{return!!e(t)}catch(n){ret...
  function o (line 2) | function o(e,t){for(var n=e.split("|"),r=n.length;r--;)T.attrHandle[n[r]...
  function a (line 2) | function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sour...
  function s (line 2) | function s(e){return function(t){var n=t.nodeName.toLowerCase();return"i...
  function u (line 2) | function u(e){return function(t){var n=t.nodeName.toLowerCase();return("...
  function l (line 2) | function l(e){return r(function(t){return t=+t,r(function(n,r){for(var i...
  function c (line 2) | function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}
  function f (line 2) | function f(){}
  function d (line 2) | function d(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}
  function p (line 2) | function p(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=I++;return t.first...
  function h (line 2) | function h(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)...
  function g (line 2) | function g(e,n,r){for(var i=0,o=n.length;i<o;i++)t(e,n[i],r);return r}
  function m (line 2) | function m(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o...
  function y (line 2) | function y(e,t,n,i,o,a){return i&&!i[P]&&(i=y(i)),o&&!o[P]&&(o=y(o,a)),r...
  function v (line 2) | function v(e){for(var t,n,r,i=e.length,o=T.relative[e[0].type],a=o||T.re...
  function x (line 2) | function x(e,n){var i=n.length>0,o=e.length>0,a=function(r,a,s,u,l){var ...
  function t (line 4) | function t(){var t,c,f=re.documentElement;f.appendChild(u),l.style.cssTe...
  function r (line 4) | function r(t,n,r,i){var o,f,v,x,w,C=n;2!==b&&(b=2,u&&e.clearTimeout(u),c...

FILE: public/static/layui/lay/modules/layer.js
  function t (line 2) | function t(e){e=l.find(e),e.height(f[1]-c-d-2*(0|parseFloat(e.css("paddi...
  function e (line 2) | function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}
  function o (line 2) | function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onlo...

FILE: public/static/layui/lay/modules/laypage.js
  function t (line 2) | function t(a){new p(a)}

FILE: public/static/layui/layui.js
  function s (line 2) | function s(e,t){var n="PLaySTATION 3"===navigator.platform?/^complete$/:...
  function c (line 2) | function c(){a.push(layui[m]),e.length>1?f.use(e.slice(1),t,a):"function...

FILE: public/static/plugins/bootbox/bootbox.js
  function _t (line 94) | function _t(key) {
  function processCallback (line 99) | function processCallback(e, dialog, callback) {
  function getKeyLength (line 116) | function getKeyLength(obj) {
  function each (line 125) | function each(collection, iterator) {
  function sanitize (line 132) | function sanitize(options) {
  function mapArguments (line 197) | function mapArguments(args, properties) {
  function mergeArguments (line 218) | function mergeArguments(defaults, args, properties) {
  function mergeDialogOptions (line 239) | function mergeDialogOptions(className, labels, properties, args) {
  function createLabels (line 265) | function createLabels() {
  function validateButtons (line 281) | function validateButtons(options, buttons) {

FILE: public/static/plugins/bootstrap-datetimepicker/js/bootstrap-datetimepicker.js
  function elementOrParentIsFixed (line 44) | function elementOrParentIsFixed (element) {
  function UTCDate (line 57) | function UTCDate() {
  function UTCToday (line 61) | function UTCToday() {

FILE: public/static/plugins/bootstrap-slider/bootstrap-slider.js
  function noop (line 64) | function noop() {}
  function defineBridget (line 68) | function defineBridget( $ ) {
  function createNewSlider (line 305) | function createNewSlider(element, options) {

FILE: public/static/plugins/bootstrap-switch/js/bootstrap-switch.js
  function BootstrapSwitch (line 29) | function BootstrapSwitch(element, options) {

FILE: public/static/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.js
  function isHostMethod (line 112) | function isHostMethod(o, p) {
  function isHostObject (line 117) | function isHostObject(o, p) {
  function isHostProperty (line 121) | function isHostProperty(o, p) {
  function createMultiplePropertyTest (line 126) | function createMultiplePropertyTest(testFunc) {
  function isTextRange (line 143) | function isTextRange(range) {
  function getBody (line 147) | function getBody(doc) {
  function consoleLog (line 180) | function consoleLog(msg) {
  function alertOrLog (line 186) | function alertOrLog(msg, shouldAlert) {
  function fail (line 194) | function fail(reason) {
  function warn (line 202) | function warn(msg) {
  function getErrorDesc (line 279) | function getErrorDesc(ex) {
  function init (line 284) | function init() {
  function shim (line 361) | function shim(win) {
  function Module (line 373) | function Module(name, dependencies, initializer) {
  function createModule (line 423) | function createModule(isCore, name, dependencies, initFunc) {
  function RangePrototype (line 466) | function RangePrototype() {}
  function SelectionPrototype (line 470) | function SelectionPrototype() {}
  function isHtmlNamespace (line 560) | function isHtmlNamespace(node) {
  function parentElement (line 565) | function parentElement(node) {
  function getNodeIndex (line 570) | function getNodeIndex(node) {
  function getNodeLength (line 578) | function getNodeLength(node) {
  function getCommonAncestor (line 591) | function getCommonAncestor(node1, node2) {
  function isAncestorOf (line 606) | function isAncestorOf(ancestor, descendant, selfIsAncestor) {
  function isOrIsAncestorOf (line 618) | function isOrIsAncestorOf(ancestor, descendant) {
  function getClosestAncestorIn (line 622) | function getClosestAncestorIn(node, ancestor, selfIsAncestor) {
  function isCharacterDataNode (line 634) | function isCharacterDataNode(node) {
  function isTextOrCommentNode (line 639) | function isTextOrCommentNode(node) {
  function insertAfter (line 647) | function insertAfter(node, precedingNode) {
  function splitDataNode (line 658) | function splitDataNode(node, index, positionsToPreserve) {
  function getDocument (line 681) | function getDocument(node) {
  function getWindow (line 695) | function getWindow(node) {
  function getIframeDocument (line 706) | function getIframeDocument(iframeEl) {
  function getIframeWindow (line 716) | function getIframeWindow(iframeEl) {
  function isWindow (line 727) | function isWindow(obj) {
  function getContentDocument (line 731) | function getContentDocument(obj, module, methodName) {
  function getRootContainer (line 756) | function getRootContainer(node) {
  function comparePoints (line 764) | function comparePoints(nodeA, offsetA, nodeB, offsetB) {
  function isBrokenNode (line 808) | function isBrokenNode(node) {
  function inspectNode (line 830) | function inspectNode(node) {
  function fragmentFromNodeChildren (line 847) | function fragmentFromNodeChildren(node) {
  function NodeIterator (line 868) | function NodeIterator(root) {
  function createIterator (line 903) | function createIterator(root) {
  function DomPosition (line 907) | function DomPosition(node, offset) {
  function DOMException (line 926) | function DOMException(codeName) {
  function isNonTextPartiallySelected (line 1006) | function isNonTextPartiallySelected(node, range) {
  function getRangeDocument (line 1011) | function getRangeDocument(range) {
  function getBoundaryBeforeNode (line 1015) | function getBoundaryBeforeNode(node) {
  function getBoundaryAfterNode (line 1019) | function getBoundaryAfterNode(node) {
  function insertNodeAtPosition (line 1023) | function insertNodeAtPosition(node, n, o) {
  function rangesIntersect (line 1039) | function rangesIntersect(rangeA, rangeB, touchingIsIntersecting) {
  function cloneSubtree (line 1053) | function cloneSubtree(iterator) {
  function iterateSubtree (line 1072) | function iterateSubtree(rangeIterator, func, iteratorState) {
  function deleteSubtree (line 1104) | function deleteSubtree(iterator) {
  function extractSubtree (line 1117) | function extractSubtree(iterator) {
  function getNodesInRange (line 1136) | function getNodesInRange(range, nodeTypes, filter) {
  function inspect (line 1168) | function inspect(range) {
  function RangeIterator (line 1178) | function RangeIterator(range, clonePartiallySelectedTextNodes) {
  function createAncestorFinder (line 1298) | function createAncestorFinder(nodeTypes) {
  function assertNoDocTypeNotationEntityAncestor (line 1316) | function assertNoDocTypeNotationEntityAncestor(node, allowSelf) {
  function assertValidNodeType (line 1322) | function assertValidNodeType(node, invalidTypes) {
  function assertValidOffset (line 1328) | function assertValidOffset(node, offset) {
  function assertSameDocumentOrFragment (line 1334) | function assertSameDocumentOrFragment(node1, node2) {
  function assertNodeNotReadOnly (line 1340) | function assertNodeNotReadOnly(node) {
  function assertNode (line 1346) | function assertNode(node, codeName) {
  function isOrphan (line 1352) | function isOrphan(node) {
  function isValidOffset (line 1357) | function isValidOffset(node, offset) {
  function isRangeValid (line 1361) | function isRangeValid(range) {
  function assertRangeValid (line 1369) | function assertRangeValid(range) {
  function splitRangeBoundaries (line 1460) | function splitRangeBoundaries(range, positionsToPreserve) {
  function rangeToHtml (line 1483) | function rangeToHtml(range) {
  function copyComparisonConstantsToObject (line 1853) | function copyComparisonConstantsToObject(obj) {
  function copyComparisonConstants (line 1865) | function copyComparisonConstants(constructor) {
  function createRangeContentRemover (line 1870) | function createRangeContentRemover(remover, boundaryUpdater) {
  function createPrototypeRange (line 1903) | function createPrototypeRange(constructor, boundaryUpdater) {
  function updateCollapsedAndCommonAncestor (line 2131) | function updateCollapsedAndCommonAncestor(range) {
  function updateBoundaries (line 2137) | function updateBoundaries(range, startContainer, startOffset, endContain...
  function Range (line 2147) | function Range(doc) {
  function updateRangeProperties (line 2202) | function updateRangeProperties(range) {
  function updateNativeRange (line 2212) | function updateNativeRange(range, startContainer, startOffset, endContai...
  function isDirectionBackward (line 2818) | function isDirectionBackward(dir) {
  function getWindow (line 2822) | function getWindow(win, methodName) {
  function getWinSelection (line 2835) | function getWinSelection(winParam) {
  function getDocSelection (line 2839) | function getDocSelection(winParam) {
  function winSelectionIsBackward (line 2843) | function winSelectionIsBackward(sel) {
  function updateAnchorAndFocusFromRange (line 3013) | function updateAnchorAndFocusFromRange(sel, range, backward) {
  function updateAnchorAndFocusFromNativeSelection (line 3021) | function updateAnchorAndFocusFromNativeSelection(sel) {
  function updateEmptySelection (line 3029) | function updateEmptySelection(sel) {
  function getNativeRange (line 3037) | function getNativeRange(range) {
  function rangeContainsSingleElement (line 3051) | function rangeContainsSingleElement(rangeNodes) {
  function getSingleElementFromRange (line 3063) | function getSingleElementFromRange(range) {
  function isTextRange (line 3072) | function isTextRange(range) {
  function updateFromTextRange (line 3076) | function updateFromTextRange(sel, range) {
  function updateControlSelection (line 3086) | function updateControlSelection(sel) {
  function addRangeToControlSelection (line 3112) | function addRangeToControlSelection(sel, range) {
  function WrappedSelection (line 3163) | function WrappedSelection(selection, docSelection, win) {
  function deleteProperties (line 3173) | function deleteProperties(sel) {
  function actOnCachedSelection (line 3181) | function actOnCachedSelection(win, action) {
  function createControlSelection (line 3234) | function createControlSelection(sel, ranges) {
  function assertNodeInSameDocument (line 3554) | function assertNodeInSameDocument(sel, node) {
  function createStartOrEndSetter (line 3651) | function createStartOrEndSetter(isStart) {
  function inspect (line 3743) | function inspect(sel) {
  function gEBI (line 3829) | function gEBI(id, doc) {
  function insertRangeBoundaryMarker (line 3833) | function insertRangeBoundaryMarker(range, atStart) {
  function setRangeBoundary (line 3854) | function setRangeBoundary(doc, range, markerId, atStart) {
  function compareRanges (line 3864) | function compareRanges(r1, r2) {
  function saveRange (line 3868) | function saveRange(range, backward) {
  function restoreRange (line 3895) | function restoreRange(rangeInfo, normalize) {
  function saveRanges (line 3930) | function saveRanges(ranges, backward) {
  function saveSelection (line 3957) | function saveSelection(win) {
  function restoreRanges (line 3982) | function restoreRanges(rangeInfos) {
  function restoreSelection (line 3996) | function restoreSelection(savedSelection, preserveDirection) {
  function removeMarkerElement (line 4013) | function removeMarkerElement(doc, markerId) {
  function removeMarkers (line 4020) | function removeMarkers(savedSelection) {
  function iosVersion (line 4195) | function iosVersion(userAgent) {
  function androidVersion (line 4199) | function androidVersion(userAgent) {
  function isIE (line 4203) | function isIE(version, equation) {
  function autoLink (line 4917) | function autoLink(element, ignoreInClasses) {
  function _convertUrlsToLinks (line 4933) | function _convertUrlsToLinks(str) {
  function _getTempElement (line 4961) | function _getTempElement(context) {
  function _wrapMatchesInNode (line 4972) | function _wrapMatchesInNode(textNode) {
  function _hasParentThatShouldBeIgnored (line 4989) | function _hasParentThatShouldBeIgnored(node, ignoreInClasses) {
  function _parseNode (line 5006) | function _parseNode(element, ignoreInClasses) {
  function _createListItem (line 5112) | function _createListItem(doc, list) {
  function _createList (line 5118) | function _createList(doc, type) {
  function convertToList (line 5122) | function convertToList(element, listType, uneditableClass) {
  function _isSameNodeName (line 5459) | function _isSameNodeName(nodeName, desiredNodeNames) {
  function _isElement (line 5471) | function _isElement(node) {
  function _hasClassName (line 5475) | function _hasClassName(element, className, classRegExp) {
  function _hasStyle (line 5483) | function _hasStyle(element, cssStyle, styleRegExp) {
  function camelize (line 5525) | function camelize(str) {
  function _getDocumentIdentifier (line 5608) | function _getDocumentIdentifier(doc) {
  function _getDocumentIdentifier (line 5636) | function _getDocumentIdentifier(doc) {
  function _isLineBreak (line 5702) | function _isLineBreak(n) {
  function _isLineBreakOrBlockElement (line 5710) | function _isLineBreakOrBlockElement(element) {
  function parse (line 5888) | function parse(elementOrHtml, config) {
  function _convert (line 5941) | function _convert(oldNode, cleanUp, clearInternals, uneditableClass) {
  function _applySelectorRules (line 6041) | function _applySelectorRules (element, selectorRules) {
  function _handleElement (line 6059) | function _handleElement(oldNode, clearInternals) {
  function _testTypes (line 6142) | function _testTypes(oldNode, rules, types, clearInternals) {
  function array_contains (line 6161) | function array_contains(a, obj) {
  function _testType (line 6171) | function _testType(oldNode, definition) {
  function _handleStyles (line 6235) | function _handleStyles(oldNode, newNode, rule) {
  function _getAttributesBeginningWith (line 6256) | function _getAttributesBeginningWith(beginning, attributes) {
  function _checkAttribute (line 6266) | function _checkAttribute(attributeName, attributeValue, methodName, node...
  function _checkAttributes (line 6282) | function _checkAttributes(oldNode, local_attributes) {
  function _handleAttributes (line 6312) | function _handleAttributes(oldNode, newNode, rule, clearInternals) {
  function _handleText (line 6453) | function _handleText(oldNode) {
  function _handleComment (line 6465) | function _handleComment(oldNode) {
  function _isBlockElement (line 6755) | function _isBlockElement(node) {
  function _isLineBreak (line 6759) | function _isLineBreak(node) {
  function _appendLineBreak (line 6763) | function _appendLineBreak(element) {
  function resolveList (line 6768) | function resolveList(list, useLineBreaks) {
  function queryInList (line 7364) | function queryInList(list, query) {
  function removeElement (line 7376) | function removeElement(el) {
  function insertAfter (line 7380) | function insertAfter(referenceNode, newNode) {
  function nextNode (line 7384) | function nextNode(node, tag) {
  function init (line 8510) | function init () {
  function handleSelectionMousedown (line 8522) | function handleSelectionMousedown (target) {
  function removeCellSelections (line 8538) | function removeCellSelections () {
  function addSelections (line 8549) | function addSelections (cells) {
  function handleMouseMove (line 8555) | function handleMouseMove (event) {
  function handleMouseUp (line 8578) | function handleMouseUp (event) {
  function bindSideclick (line 8587) | function bindSideclick () {
  function selectCells (line 8600) | function selectCells (start, end) {
  function _getCumulativeOffsetTop (line 8707) | function _getCumulativeOffsetTop(element) {
  function getDepth (line 8719) | function getDepth(ancestor, descendant) {
  function expandRangeToSurround (line 8732) | function expandRangeToSurround(range) {
  function hasClass (line 9560) | function hasClass(el, cssClass, regExp) {
  function hasStyleAttr (line 9569) | function hasStyleAttr(el, regExp) {
  function addStyle (line 9577) | function addStyle(el, cssStyle, regExp) {
  function addClass (line 9590) | function addClass(el, cssClass, regExp) {
  function removeClass (line 9599) | function removeClass(el, regExp) {
  function removeStyle (line 9605) | function removeStyle(el, regExp) {
  function getMatchingStyleRegexp (line 9623) | function getMatchingStyleRegexp(el, style) {
  function isMatchingAllready (line 9647) | function isMatchingAllready(node, tags, style, className) {
  function areMatchingAllready (line 9657) | function areMatchingAllready(nodes, tags, style, className) {
  function removeOrChangeStyle (line 9666) | function removeOrChangeStyle(el, style, regExp) {
  function hasSameClasses (line 9680) | function hasSameClasses(el1, el2) {
  function replaceWithOwnChildren (line 9684) | function replaceWithOwnChildren(el) {
  function elementsHaveSameNonClassAttributes (line 9692) | function elementsHaveSameNonClassAttributes(el1, el2) {
  function isSplitPoint (line 9712) | function isSplitPoint(node, offset) {
  function splitNodeAt (line 9726) | function splitNodeAt(node, descendantNode, descendantOffset, container) {
  function Merge (line 9757) | function Merge(firstNode) {
  function HTMLApplier (line 9798) | function HTMLApplier(tagNames, cssClass, similarClassRegExp, normalize, ...
  function _format (line 10306) | function _format(composer, attributes) {
  function _changeLinks (line 10351) | function _changeLinks(composer, anchors, attributes) {
  function _removeFormat (line 10406) | function _removeFormat(composer, anchors) {
  function _addClass (line 10623) | function _addClass(element, className, classRegExp) {
  function _addStyle (line 10632) | function _addStyle(element, cssStyle, styleRegExp) {
  function _removeClass (line 10641) | function _removeClass(element, classRegExp) {
  function _removeStyle (line 10650) | function _removeStyle(element, styleRegExp) {
  function _removeLastChildIfLineBreak (line 10659) | function _removeLastChildIfLineBreak(node) {
  function _isLineBreak (line 10666) | function _isLineBreak(node) {
  function _execCommand (line 10674) | function _execCommand(doc, composer, command, nodeName, className) {
  function _selectionWrap (line 10701) | function _selectionWrap(composer, options) {
  function _hasClasses (line 10716) | function _hasClasses(element) {
  function _hasStyles (line 10720) | function _hasStyles(element) {
  function _getTagNames (line 10927) | function _getTagNames(tagName) {
  function _getApplier (line 10932) | function _getApplier(tagName, className, classRegExp, cssStyle, styleReg...
  function cleanTempElements (line 11771) | function cleanTempElements(doc) {
  function adjust (line 12398) | function adjust(selectedNode) {
  function a (line 14167) | function a(a){this.string=a}
  function b (line 14167) | function b(a){return h[a]||"&amp;"}
  function c (line 14167) | function c(a,b){for(var c in b)Object.prototype.hasOwnProperty.call(b,c)...
  function d (line 14167) | function d(a){return a instanceof g?a.toString():a||0===a?(a=""+a,j.test...
  function e (line 14167) | function e(a){return a||0===a?m(a)&&0===a.length?!0:!1:!0}
  function a (line 14167) | function a(a,b){var d;b&&b.firstLine&&(d=b.firstLine,a+=" - "+d+":"+b.fi...
  function c (line 14167) | function c(a,b){this.helpers=a||{},this.partials=b||{},d(this)}
  function d (line 14167) | function d(a){a.registerHelper("helperMissing",function(a){if(2===argume...
  function e (line 14167) | function e(a,b){p.log(a,b)}
  function d (line 14167) | function d(a){var b=a&&a[0]||1,c=m;if(b!==c){if(c>b){var d=n[c],e=n[b];t...
  function e (line 14167) | function e(a,b){if(!b)throw new l("No environment passed to template");v...
  function f (line 14167) | function f(a,b,c){var d=Array.prototype.slice.call(arguments,3),e=functi...
  function g (line 14167) | function g(a,b,c){var d=function(a,d){return d=d||{},b(a,d.data||c)};ret...
  function h (line 14167) | function h(a,b,c,d,e,f){var g={partial:!0,helpers:d,partials:e,data:f};i...
  function i (line 14167) | function i(){return""}
  function program1 (line 14175) | function program1(depth0,data) {
  function program3 (line 14183) | function program3(depth0,data) {
  function program5 (line 14189) | function program5(depth0,data) {
  function program1 (line 14210) | function program1(depth0,data) {
  function program1 (line 14254) | function program1(depth0,data) {
  function program3 (line 14262) | function program3(depth0,data) {
  function program1 (line 14301) | function program1(depth0,data) {
  function program3 (line 14309) | function program3(depth0,data) {
  function program5 (line 14315) | function program5(depth0,data) {
  function program1 (line 14352) | function program1(depth0,data) {
  function program3 (line 14360) | function program3(depth0,data) {
  function program5 (line 14366) | function program5(depth0,data) {
  function program1 (line 14389) | function program1(depth0,data) {
  function program3 (line 14395) | function program3(depth0,data) {
  function program5 (line 14403) | function program5(depth0,data) {
  function program7 (line 14409) | function program7(depth0,data) {
  function program1 (line 14441) | function program1(depth0,data) {
  function program3 (line 14447) | function program3(depth0,data) {
  function program5 (line 14455) | function program5(depth0,data) {
  function program7 (line 14461) | function program7(depth0,data) {
  function program1 (line 14495) | function program1(depth0,data) {
  function program3 (line 14503) | function program3(depth0,data) {
  function program5 (line 14509) | function program5(depth0,data) {
  function program7 (line 14515) | function program7(depth0,data) {
  function program9 (line 14521) | function program9(depth0,data) {
  function program11 (line 14527) | function program11(depth0,data) {
  function program13 (line 14533) | function program13(depth0,data) {
  function program15 (line 14539) | function program15(depth0,data) {
  function program17 (line 14545) | function program17(depth0,data) {

FILE: public/static/plugins/bootstrap/js/bootstrap.js
  function transitionEnd (line 34) | function transitionEnd() {
  function removeElement (line 126) | function removeElement() {
  function Plugin (line 142) | function Plugin(option) {
  function Plugin (line 251) | function Plugin(option) {
  function Plugin (line 470) | function Plugin(option) {
  function getTargetFromTrigger (line 689) | function getTargetFromTrigger($trigger) {
  function Plugin (line 701) | function Plugin(option) {
  function getParent (line 768) | function getParent($this) {
  function clearMenus (line 781) | function clearMenus(e) {
  function Plugin (line 874) | function Plugin(option) {
  function Plugin (line 1200) | function Plugin(option, _relatedTarget) {
  function complete (line 1566) | function complete() {
  function Plugin (line 1736) | function Plugin(option) {
  function Plugin (line 1845) | function Plugin(option) {
  function ScrollSpy (line 1888) | function ScrollSpy(element, options) {
  function Plugin (line 2008) | function Plugin(option) {
  function next (line 2117) | function next() {
  function Plugin (line 2163) | function Plugin(option) {
  function Plugin (line 2320) | function Plugin(option) {

FILE: public/static/plugins/chartjs/Chart.js
  function tmpl (line 474) | function tmpl(str, data){

FILE: public/static/plugins/ckeditor/ckeditor.js
  function b (line 6) | function b(){try{document.addEventListener?(document.removeEventListener...
  function d (line 7) | function d(){for(var d;d=a.shift();)d()}
  function a (line 9) | function a(a){var d=e(this);return d[a]||(d[a]=new b(a))}
  function i (line 10) | function i(a,f,o,q){a={name:b,sender:this,editor:a,data:f,listenerData:e...
  function j (line 10) | function j(){q.removeListener(b,d)}
  function d (line 32) | function d(){e=(new Date).getTime();h=false;c()}
  function a (line 75) | function a(a){var b=true;if(!a.$.id){a.$.id="cke_tmp_"+CKEDITOR.tools.ge...
  function e (line 75) | function e(a,b){return"#"+a.$.id+" "+b.split(/,\s*/).join(", #"+a.$.id+"...
  function b (line 75) | function b(a){for(var b=0,e=0,n=c[a].length;e<n;e++)b=b+(parseInt(this.g...
  function a (line 79) | function a(){try{this.$.focus()}catch(b){}}
  function a (line 90) | function a(b){b=this.$.attributes.getNamedItem(b);return!(!b||!b.specifi...
  function a (line 91) | function a(b,d,c){if(d&&d.type==CKEDITOR.NODE_ELEMENT){for(var e=[];d.da...
  function q (line 100) | function q(b,f){if(/body|html/.test(a.getName()))a.getWindow().$.scrollB...
  function s (line 100) | function s(a,b){var d={x:0,y:0};if(!a.is(f?"body":"html")){var c=
  function u (line 101) | function u(a,b){return parseInt(a.getComputedStyle("margin-"+b)||0,10)||0}
  function a (line 105) | function a(b,c){var d=b.childNodes;if(c>=0&&c<d.length)return d[c]}
  function a (line 111) | function a(a,b){var c=this.range;if(this._.end)return null;if(!this._.st...
  function e (line 113) | function e(b){for(var c,d=null;c=a.call(this,b);)d=c;return d}
  function b (line 114) | function b(a){if(j(a))return false;if(a.type==CKEDITOR.NODE_TEXT)return ...
  function c (line 116) | function c(a){return a&&
  function b (line 118) | function b(a){return!g(a)&&!n(a)}
  function a (line 122) | function a(){var a=false,b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR....
  function e (line 122) | function e(a){var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.wal...
  function b (line 123) | function b(a){return function(){var b;return this[a?"getPreviousNode":"g...
  function a (line 130) | function a(b){var c=b.container,d=b.offset,f;f=c;var e=d;f=f.type!=CKEDI...
  function c (line 137) | function c(a){return a&&a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("c...
  function a (line 153) | function a(d){return function(a){return b(a)||(c(a)||a.type==CKEDITOR.NO...
  function a (line 157) | function a(b,c){for(;b;){if(b.type==
  function a (line 165) | function a(a){if(!(arguments.length<1)){this.range=a;this.forceBrBreak=0...
  function e (line 165) | function e(a,b,c){for(a=a.getNextSourceNode(b,null,c);!h(a);)a=a.getNext...
  function b (line 165) | function b(a){var b=[];a.forEach(function(a){if(a.getAttribute("contente...
  function c (line 165) | function c(a,d,e,h){a:{h==void 0&&(h=b(e));for(var g;g=h.shift();)if(g.g...
  function a (line 180) | function a(a,b,c,f,k){var m=b.name;if((f||typeof a.elements!="function"|...
  function e (line 181) | function e(a,b,c){if(!a)return false;if(a===true)return true;for(var d i...
  function b (line 181) | function b(a,b){if(!a)return false;if(a===true)return a;if(typeof a=="st...
  function c (line 182) | function c(b){if(b._.filterFunction)return b._.filterFunction;var c=/^ck...
  function d (line 184) | function d(a,b){if(!b)return true;for(var c=0;c<b.length;++c)if(!(b[c]in...
  function h (line 185) | function h(a){if(!a)return{};for(var a=a.split(/\s*,\s*/).sort(),b={};a....
  function g (line 185) | function g(a){for(var b,c,d,f,e={},k=1,a=r(a);b=a.match(z);){if(c=b[2]){...
  function n (line 185) | function n(a,b){var c=a.match(M[b]);return c?r(c[1]):null}
  function i (line 185) | function i(a){if(!a.styles)a.styles=CKEDITOR.tools.parseCssText(a.attrib...
  function j (line 186) | function j(a){var b=a.attributes,c;delete b.style;delete b["class"];if(c...
  function o (line 186) | function o(a){switch(a.name){case "a":if(!a.children.length&&!a.attribut...
  function q (line 186) | function q(a){return!a?false:a===true?true:function(b){return b in a}}
  function s (line 186) | function s(){return new CKEDITOR.htmlParser.element("br")}
  function u (line 187) | function u(a){return a.type==CKEDITOR.NODE_ELEMENT&&(a.name=="br"||t.$bl...
  function f (line 187) | function f(a,b,c){var d=a.name;if(t.$empty[d]||!a.children.length)if(d==...
  function p (line 189) | function p(a,b,c){var d,f;for(d=0;d<c.length;++d){f=c[d];if((!f.check||a...
  function y (line 189) | function y(a,b){var c=b.getDefinition(),d=c.attributes,f=c.styles,e,k,m,...
  function m (line 190) | function m(a,b){var c,d;if(typeof a=="string")c=a;else if(a instanceof C...
  function k (line 190) | function k(a){return function(b){return y(b,a)}}
  function l (line 190) | function l(a){return function(b,c){c[a](b)}}
  function e (line 208) | function e(){if(this.hasFocus){this.hasFocus=false;var a=this._.editor.c...
  function a (line 216) | function a(){var b;(b=c[0])&&this.load(b.scriptUrl,b.callback,CKEDITOR,0)}
  function a (line 224) | function a(a,c,h){CKEDITOR.event.call(this);a=a&&CKEDITOR.tools.clone(a)...
  function e (line 226) | function e(){do var a="editor"+
  function b (line 227) | function b(){var a=this.commands,b;for(b in a)c(this,a[b])}
  function c (line 227) | function c(a,b){b[b.startDisabled?"disable":a.readOnly&&!b.readOnly?"dis...
  function d (line 227) | function d(a,b,c){if(b){var d,e,l=a.commands;for(e in l){d=l[e];(c||d.co...
  function h (line 227) | function h(a){var b=a.config.customConfig;if(!b)return false;var b=CKEDI...
  function g (line 228) | function g(a,b){a.on("customConfigLoaded",function(){if(b){if(b.on)for(v...
  function n (line 230) | function n(a){CKEDITOR.skin.loadPart("editor",function(){i(a)})}
  function i (line 230) | function i(a){CKEDITOR.lang.load(a.config.language,a.config.defaultLangu...
  function j (line 231) | function j(a){a.getStylesSet(function(b){a.once("loaded",function(){a.fi...
  function o (line 231) | function o(a){var b=a.config,c=b.plugins,d=b.extraPlugins,e=b.removePlug...
  function q (line 234) | function q(){var a=this.element;if(a&&this.elementMode!=CKEDITOR.ELEMENT...
  function a (line 255) | function a(a){return a.attributes["data-cke-survive"]?false:a.name=="a"&...
  function n (line 255) | function n(a){var b;if(p.length>0)for(var c=0;c<p.length;c++){var d=
  function i (line 256) | function i(){for(;y.length;)o(y.shift(),m)}
  function j (line 256) | function j(a){if(a._.isBlockLike&&a.name!="pre"&&a.name!="textarea"){var...
  function o (line 256) | function o(b,c,d){var c=c||m||f,
  function q (line 257) | function q(a,b){if((a==f||a.name=="body")&&g&&(!a.name||CKEDITOR.dtd[a.n...
  function s (line 258) | function s(a,b){return a in CKEDITOR.dtd.$listItem||a in CKEDITOR.dtd.$t...
  function a (line 266) | function a(){this.rules=[]}
  function e (line 266) | function e(b,c,d,e){var g,n;for(g in c){(n=b[g])||(n=b[g]=new a);n.add(c...
  function a (line 272) | function a(a,e){function f(a){return a||CKEDITOR.env.needsNbspFiller?new...
  function e (line 275) | function e(a,b){return a!=CKEDITOR.ENTER_BR&&b!==false?a==CKEDITOR.ENTER...
  function b (line 275) | function b(a){for(a=a.children[a.children.length-1];a&&d(a);)a=a.previou...
  function c (line 275) | function c(a){for(a=a.previous;a&&d(a);)a=a.previous;return a}
  function d (line 275) | function d(a){return a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(a....
  function h (line 276) | function h(a){return a&&(a.type==CKEDITOR.NODE_ELEMENT&&a.name in t||a.t...
  function g (line 276) | function g(a,b){var c=a.children[a.children.length-1];a.children.push(b)...
  function n (line 276) | function n(a){a=a.attributes;a.contenteditable!="false"&&(a["data-cke-ed...
  function i (line 276) | function i(a){a=a.attributes;switch(a["data-cke-editable"]){case "true":...
  function j (line 277) | function j(a){return a.replace(I,function(a,b,c){return"<"+b+c.replace(E...
  function o (line 277) | function o(a,b){return a.replace(b,function(a,b,c){a.indexOf("<textarea"...
  function q (line 277) | function q(a){return a.replace(Q,function(a,b){return decodeURIComponent...
  function s (line 278) | function s(a){return a.replace(/<\!--(?!{cke_protected})[\s\S]+?--\>/g,f...
  function u (line 278) | function u(a){return a.replace(/<\!--\{cke_protected\}\{C\}([\s\S]+?)--\...
  function f (line 278) | function f(a,b){var c=b._.dataStore;return a.replace(/<\!--\{cke_protect...
  function p (line 278) | function p(a,
  function a (line 294) | function a(a){return function(b){return b.type==CKEDITOR.NODE_ELEMENT&&(...
  function a (line 307) | function a(a,c,g,n){if(!CKEDITOR.env.isCompatible)return null;a=CKEDITOR...
  function e (line 308) | function e(){var a=this.container,b=this.element;if(a){a.clearCustomData...
  function b (line 308) | function b(a){var b=a.name,e=a.element,n=a.elementMode,
  function a (line 315) | function a(a){var b=a.editor,d=a.data.path,m=d.blockLimit,k=a.data.selec...
  function e (line 316) | function e(a,b){if(a.isFake)return 0;var e=b.block||b.blockLimit,d=e&&e....
  function b (line 317) | function b(a){var b=a.data.getTarget();if(b.is("input")){b=b.getAttribut...
  function c (line 317) | function c(a){return o(a)&&q(a)}
  function d (line 317) | function d(a,b){return function(c){var e=CKEDITOR.dom.element.get(c.data...
  function h (line 317) | function h(a){var b,e=a.getRanges()[0],d=a.root,k={table:1,ul:1,ol:1,dl:...
  function g (line 318) | function g(a){a.editor.focus();a.editor.fire("saveSnapshot")}
  function n (line 318) | function n(a,b){var c=
  function a (line 340) | function a(b){return b.type==CKEDITOR.NODE_ELEMENT}
  function b (line 340) | function b(c,e){var d,k,m,l,h=[],i=e.range.startContainer;d=e.range.star...
  function e (line 341) | function e(b,c){var d=[],k=b.getChildren(),m=k.count(),l,h=0,r=g[c],i=!b...
  function d (line 342) | function d(b){return b&&a(b)&&(b.is(g.$removeEmpty)||b.is("a")&&!b.isBlo...
  function k (line 342) | function k(b,c,e,d){var l=b.clone(),m,g;l.setEndAt(c,CKEDITOR.POSITION_B...
  function l (line 343) | function l(b,c){function e(b,c){if(c.isBlock&&c.isElement&&!c.node.is("b...
  function a (line 353) | function a(b){b=new CKEDITOR.dom.walker(b);b.guard=function(a,b){if(b)re...
  function b (line 353) | function b(a,c,e){c=a.getDocument().createElement(c);
  function c (line 354) | function c(a){var b=a.count(),e;for(b;b-- >0;){e=a.getItem(b);if(!CKEDIT...
  function a (line 356) | function a(){var a=this._.fakeSelection,b;if(a){b=this.getSelection(1);i...
  function e (line 356) | function e(){q=true;if(!o){b.call(this);o=CKEDITOR.tools.setTimeout(b,
  function b (line 357) | function b(){o=null;if(q){CKEDITOR.tools.setTimeout(a,0,this);q=false}}
  function c (line 357) | function c(a){function b(c,e){return!c||c.type==CKEDITOR.NODE_TEXT?false...
  function d (line 357) | function d(a){return a.getCustomData("cke-fillingChar")}
  function h (line 358) | function h(a,b){var c=a&&a.removeCustomData("cke-fillingChar");if(c){if(...
  function g (line 359) | function g(a){return a.replace(/\u200B( )?/g,function(a){return a[1]?" "...
  function n (line 359) | function n(a,b,c){var e=a.on("focus",function(a){a.cancel()},null,null,-...
  function i (line 360) | function i(a){var b=CKEDITOR.dom.element.createFromHtml('<div data-cke-h...
  function j (line 361) | function j(a){var b={37:1,39:1,8:1,46:1};return function(c){var e=c.data...
  function a (line 362) | function a(b){return function(a){var c=a.editor.createRange();c.moveToCl...
  function b (line 362) | function b(a){return function(b){var c=b.editor,e=c.createRange(),d;if(!...
  function c (line 363) | function c(){var a=d.getSelection();a&&a.removeAllRanges()}
  function b (line 366) | function b(a){a=a.data.$;if(e){var c=m.$.createTextRange();try{c.moveToP...
  function d (line 366) | function d(){g.removeListener("mousemove",b);c.removeListener("mouseup",...
  function a (line 379) | function a(b){return(new CKEDITOR.dom.node(b)).getIndex()}
  function a (line 401) | function a(a,b){for(var c,d;a=a.getParent();){if(a.equals(b))break;if(a....
  function e (line 401) | function e(b){var d=b.document;if(b.collapsed){d=y(this,d);b.insertNode(...
  function b (line 406) | function b(a){function b(){for(var a=new CKEDITOR.dom.elementPath(d.getP...
  function c (line 408) | function c(a){var b=[];a.forEach(function(a){if(a.getAttribute("contente...
  function d (line 409) | function d(a){var b=a.getEnclosedNode()||a.getCommonAncestor(false,true)...
  function h (line 409) | function h(a){var b=a.getCommonAncestor(true,true);if(a=(new CKEDITOR.do...
  function g (line 410) | function g(a){var b=a.createBookmark(true),c=a.createIterator();c.enforc...
  function n (line 410) | function n(a){var b=a.createBookmark(1),c=a.createIterator();c.enforceRe...
  function i (line 411) | function i(a,b){var c=!b;if(c){b=a.getDocument().createElement("div");a....
  function j (line 413) | function j(a){a.getName();var b=[];o(a.getOuterHtml(),/(\S\s*)\n(?:\s|(<...
  function o (line 413) | function o(a,b,c){var d="",e="",a=a.replace(/(^<span[^>]+data-cke-bookma...
  function q (line 413) | function q(a,b){var c;a.length>1&&(c=new CKEDITOR.dom.documentFragment(b...
  function s (line 414) | function s(a,b){var c=this._.definition,
  function u (line 416) | function u(a){for(var b=l(this),c=a.getElementsByTag(this.element),d,e=c...
  function f (line 416) | function f(a,b,c){if(b=b&&b.attributes)for(var d=0;d<b.length;d++){var e...
  function p (line 417) | function p(a,b){if(!a.hasAttributes()||b)if(CKEDITOR.dtd.$block[a.getNam...
  function y (line 418) | function y(a,b,c){var d;d=a.element;d=="*"&&(d="span");d=new CKEDITOR.do...
  function m (line 418) | function m(a,b){var c=b._.definition,d=c.attributes,c=CKEDITOR.style.get...
  function k (line 418) | function k(a,b){for(var c in a)a[c]=a[c].replace(I,function(a,
  function l (line 419) | function l(a){if(a._.overrides)return a._.overrides;var b=a._.overrides=...
  function t (line 419) | function t(a,b,c){var d=new CKEDITOR.dom.element("span");d[c?"setStyle":...
  function x (line 420) | function x(a,b){for(var c=a.document,d=a.getRanges(),e=b?this.removeFrom...
  function a (line 440) | function a(a,c,d){var e=a.serializable,g=c[d?"endContainer":"startContai...
  function a (line 444) | function a(){return CKEDITOR.getUrl(CKEDITOR.skinName.split(",")[1]||"sk...
  function e (line 444) | function e(b){var c=CKEDITOR.skin["ua_"+b],d=CKEDITOR.env;if(c)for(var c...
  function b (line 444) | function b(a,b){if(!h[a]){CKEDITOR.document.appendStyleSheet(e(a));h[a]=...
  function c (line 445) | function c(a){var b=a.getById(g);if(!b){b=a.getHead().append("style");b....
  function d (line 445) | function d(a,b,c){var d,e,f;if(CKEDITOR.env.webkit){b=b.split("}").slice...
  function b (line 487) | function b(){d.$.open();var b="";e.size&&(b=e.size-(CKEDITOR.env.ie?7:0)...
  function t (line 494) | function t(){for(var a=this._.tabIdList.length,b=CKEDITOR.tools.indexOf(...
  function u (line 494) | function u(){for(var a=this._.tabIdList.length,b=CKEDITOR.tools.indexOf(...
  function G (line 494) | function G(a,b){for(var c=a.$.getElementsByTagName("input"),
  function P (line 495) | function P(a,b){var c=this.getInputElement();c&&(a?c.removeAttribute("ar...
  function Q (line 496) | function Q(){var a=this.getInputElement();a&&a.removeAttribute("aria-inv...
  function R (line 496) | function R(a){var a=CKEDITOR.dom.element.createFromHtml(CKEDITOR.addTemp...
  function H (line 497) | function H(a,b,c){this.element=b;this.focusIndex=c;this.tabIndex=
  function T (line 498) | function T(a){function b(){a.layout()}var c=CKEDITOR.document.getWindow(...
  function I (line 498) | function I(a,b){this._=
  function U (line 499) | function U(a){function b(b){var c=a.getSize(),h=CKEDITOR.document.getWin...
  function V (line 501) | function V(a){var b,c;function e(d){var e="rtl"==i.lang.dir,j=o.width,C=...
  function E (line 505) | function E(a){a.data.preventDefault(1)}
  function J (line 505) | function J(a){var b=CKEDITOR.document.getWindow(),c=a.config,e=c.dialog_...
  function K (line 508) | function K(a){q&&(a.focusManager.remove(q),a=CKEDITOR.document.getWindow...
  function c (line 510) | function c(){var a=m._.focusList;a.sort(function(a,b){return a.tabIndex!...
  function e (line 510) | function e(a){var b=m._.focusList,a=a||0;if(!(1>b.length)){var c=m._.cur...
  function d (line 510) | function d(b){if(m==
  function g (line 512) | function g(a){o?a.data.preventDefault(1):j&&a.data.stopPropagation()}
  function w (line 572) | function w(b){function a(){var e=b.editable();e.on(q,function(b){(!CKEDI...
  function x (line 584) | function x(b){if(CKEDITOR.env.webkit){if(!b.match(/^[^<]*$/g)&&!b.match(...
  function y (line 584) | function y(b,a){function c(a){return CKEDITOR.tools.repeat("</p><p>",~~(...
  function z (line 586) | function z(){var b=new CKEDITOR.htmlParser.filter,a={blockquote:1,dl:1,f...
  function A (line 588) | function A(b,a,c){var a=new CKEDITOR.htmlParser.fragment.fromHtml(a),
  function p (line 589) | function p(b,a){b.enterMode==
  function q (line 604) | function q(a,b,c,i,f){var f=CKEDITOR.tools.genKey(b.getUniqueId(),c.getU...
  function f (line 604) | function f(){d.hide()}
  function g (line 616) | function g(a){a.sort(function(a,c){return a.group<c.group?-1:a.group>c.g...
  function w (line 640) | function w(a){function d(){for(var b=g(),e=CKEDITOR.tools.clone(a.config...
  function n (line 642) | function n(a){return a._.toolbarGroups||(a._.toolbarGroups=[{name:"docum...
  function n (line 654) | function n(a,c){function j(d){d=i.list[d];if(d.equals(a.editable())||"tr...
  function l (line 660) | function l(e,c,b){b=e.config.forceEnterMode||b;"wysiwyg"==e.mode&&(c||(c...
  function q (line 660) | function q(e){for(var e=e.getSelection().getRanges(!0),c=e.length-1;0<c;...
  function j (line 668) | function j(a,b){var d={},e=[],f={nbsp:" ",shy:"­",gt:">",lt:"<",amp:"&",...
  function g (line 674) | function g(a,c){var d=[];if(c)for(var b in c)d.push(b+"="+encodeURICompo...
  function i (line 674) | function i(a){a+="";return a.charAt(0).toUpperCase()+a.substr(1)}
  function k (line 674) | function k(){var a=this.getDialog(),c=a.getParentEditor();c._.filebrowse...
  function l (line 675) | function l(){var a=this.getDialog();a.getParentEditor()._.filebrowserSe=...
  function m (line 675) | function m(a,c,d){var b=d.params||{};
  function j (line 676) | function j(a,c,d,b){if(b&&b.length)for(var e,g=b.length;g--;)if(e=b[g],(...
  function h (line 677) | function h(a,
  function n (line 678) | function n(a,c){var d=this._.filebrowserSe.getDialog(),b=this._.filebrow...
  function q (line 680) | function q(a){var i=a.config,l=a.fire("uiSpace",{space:"top",html:""}).h...
  function g (line 696) | function g(){var c=this.modes[a.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRI...
  function k (line 711) | function k(a){var d=this.editor,b=a.document,c=b.body;(a=b.getElementByI...
  function l (line 716) | function l(){var a=[];if(8<=CKEDITOR.document.$.documentMode){a.push("ht...
  function b (line 717) | function b(b){b&&b.removeListener();a.editable(new j(a,e.$.contentWindow...
  function e (line 726) | function e(b,a){a||(a=b.getSelection().getSelectedElement());if(a&&a.is(...
  function f (line 726) | function f(b){var a=b.getStyle("float");if("inherit"==a||"none"==a)a=0;a...
  function a (line 728) | function a(a){var d=b.getCommand("justify"+a);if(d){if("left"==a||"right...
  function k (line 729) | function k(a,b){var e,f;b.on("refresh",function(a){var b=[i],c;for(c in ...
  function s (line 734) | function s(e){function g(b){for(var f=d.startContainer,a=d.endContainer;...
  function p (line 738) | function p(e,g){g||(g=e.contains(this.context));return g&&e.block&&e.blo...
  function i (line 738) | function i(e){return e.type==CKEDITOR.NODE_ELEMENT&&e.is("li")}
  function t (line 738) | function t(e){return u(e)&&v(e)}
  function g (line 738) | function g(e,
  function g (line 740) | function g(a,b){var c=j.exec(a),d=j.exec(b);if(c){if(!c[2]&&"px"==d[2])r...
  function b (line 744) | function b(b){return d.replace(/%1/g,"rtl"==b?"right":"left").replace(/%...
  function E (line 756) | function E(c,k,e){function b(b){if((d=a[b?"getFirst":"getLast"]())&&(!d....
  function x (line 757) | function x(c,k){this.name=c;this.context=this.type=k;this.allowedContent=
  function A (line 758) | function A(c,k,e,b){for(var j,g;j=c[b?"getLast":"getFirst"](F);)(g=j.get...
  function B (line 758) | function B(c){var k;(k=function(e){var b=c[e?"getPrevious":"getNext"](q)...
  function C (line 758) | function C(c){return c.type==CKEDITOR.NODE_ELEMENT&&(c.getName()in CKEDI...
  function y (line 759) | function y(c,k,e){c.fire("saveSnapshot");e.enlarge(CKEDITOR.ENLARGE_LIST...
  function w (line 761) | function w(c){return(c=c.getLast(q))&&c.type==CKEDITOR.NODE_ELEMENT&&c.g...
  function Q (line 780) | function Q(a,c,d){return m(c)&&m(d)&&d.equals(c.getNext(function(a){retu...
  function u (line 780) | function u(a){this.upper=a[0];this.lower=a[1];this.set.apply(this,a.slic...
  function J (line 780) | function J(a){var c=a.element;if(c&&m(c)&&(c=c.getAscendant(a.triggers,!...
  function ga (line 780) | function ga(a,c,d){o(a,c);o(a,d);a=c.size.bottom;d=d.size.top;return a&&...
  function r (line 780) | function r(a,c,
  function K (line 781) | function K(a,c){if(a.data("cke-editable"))return null;for(c||(a=a.getPar...
  function ha (line 781) | function ha(a){var c=a.doc,d=B('<span contenteditable="false" style="'+L...
  function N (line 788) | function N(a,c,d){var b=new CKEDITOR.dom.range(a.doc),e=a.editor,f;n.ie&...
  function U (line 788) | function U(a,c){return{canUndo:!0,
  function v (line 790) | function v(a,c){if(!c||!(c.type==CKEDITOR.NODE_ELEMENT&&c.$))return!1;va...
  function m (line 790) | function m(a){return a&&
  function p (line 791) | function p(a){if(!m(a))return!1;var c;if(!(c=X(a)))m(a)?(c={left:1,right...
  function X (line 791) | function X(a){return!!{absolute:1,fixed:1}[a.getComputedStyle("position")]}
  function G (line 791) | function G(a,c){return m(c)?c.is(a.triggers):null}
  function W (line 791) | function W(a,c){if(!c)return!1;for(var d=c.getParents(1),b=d.length;b--;...
  function ja (line 791) | function ja(a,c,
  function Y (line 792) | function Y(a){var c=a.editable,d=a.mouse,b=a.view,e=a.triggerOffset;C(a)...
  function $ (line 793) | function $(a){var c=a.mouse,d=a.view,b=a.triggerOffset,e=J(a);if(!e)retu...
  function P (line 795) | function P(a,c,d,b){for(var e=function(){var b=n.ie?c.$.currentStyle:a.w...
  function o (line 797) | function o(a,c,d){if(!m(c))return c.size=null;if(c.size){if(c.size.ignor...
  function C (line 797) | function C(a,c){a.view.editable=P(a,a.editable,c,!0)}
  function I (line 797) | function I(a,c){a.view||(a.view={});var d=a.view;if(c||!(d&&d.date>new D...
  function la (line 798) | function la(a,c,d,b){for(var e=b,f=b,i=0,h=!1,g=!1,j=a.view.pane.height,...
  function a (line 807) | function a(a){var b=a.element,e,f,i;if(!m(b)||b.contains(a.editable)||b....
  function c (line 808) | function c(a,b){return!(b&&b.type==CKEDITOR.NODE_TEXT||A(b)||p(b)||v(a,b...
  function l (line 809) | function l(a){if(!a||a.type!=CKEDITOR.NODE_ELEMENT||"form"!=a.getName())...
  function o (line 809) | function o(a,e){if(a&&!(a.type!=CKEDITOR.NODE_ELEMENT||"form"!=a.getName...
  function n (line 809) | function n(a,e){var f=l(a),b={},d=a.$;e||(b["class"]=d.className||
  function p (line 810) | function p(a,e){var f=l(a),b=a.$;"class"in e&&(b.className=e["class"]);"...
  function q (line 810) | function q(a){if(!a.editable().isInline()){var e=CKEDITOR.instances,f;fo...
  function e (line 811) | function e(){var b=d.getViewPaneSize();a.resize(b.width,b.height,null,!0)}
  function h (line 817) | function h(a,d,f){var b=CKEDITOR.cleanWord;b?f():(a=CKEDITOR.getUrl(a.co...
  function i (line 817) | function i(a){a.data.type="html"}
  function d (line 822) | function d(){this.hide();this.setStyle("height",this.getParent().$.clien...
  function o (line 828) | function o(a,c){var b=0,d;for(d in c)if(c[d]==a){b=1;break}return b}
  function a (line 828) | function a(){b.once("focus",g);b.once("blur",c)}
  function c (line 828) | function c(b){var b=b.editor,c=d.getScayt(b),g=b.elementMode==CKEDITOR.E...
  function i (line 853) | function i(c){return{editorFocus:!1,canUndo:!1,modes:{wysiwyg:1},exec:fu...
  function d (line 859) | function d(a){return CKEDITOR.tools.extend(a||{},{contextSensitive:1,ref...
  function p (line 862) | function p(e){function d(a){!(0<b.length)&&(a.type==CKEDITOR.NODE_ELEMEN...
  function o (line 863) | function o(e,d){for(var b=p(e),c=b[0],a=c.getAscendant("table"),c=c.getD...
  function q (line 864) | function q(e){if(e instanceof CKEDITOR.dom.selection){for(var d=p(e),b=d...
  function r (line 866) | function r(e,d){for(var b=d?Infinity:0,c=0;c<e.length;c++){var a;a=e[c];...
  function k (line 866) | function k(e,d){for(var b=p(e),c=b[0].getAscendant("table"),a=r(b,1),b=r...
  function u (line 867) | function u(e,d){var b=e.getStartElement();if(b=b.getAscendant("td",1)||b...
  function t (line 867) | function t(e){if(e instanceof CKEDITOR.dom.selection){var e=p(e),d=e[0]&...
  function m (line 869) | function m(e,d){var b=e.getDocument(),c=CKEDITOR.document;CKEDITOR.env.i...
  function v (line 869) | function v(e,d,b){e=e[d];if("undefined"==typeof b)return e;for(d=0;e&&d<...
  function s (line 869) | function s(e,
  function w (line 872) | function w(e,d){var b=p(e);if(1<b.length)return!1;if(d)return!0;var b=b[...
  function x (line 874) | function x(e,d){var b=p(e);if(1<b.length)return!1;if(d)return!0;var b=b[...
  function d (line 875) | function d(a){return CKEDITOR.tools.extend(a||{},{contextSensitive:1,ref...
  function b (line 875) | function b(a,b){var c=e.addCommand(a,b);e.addFeature(c)}
  function g (line 886) | function g(a){this.editor=a;this.reset()}
  function c (line 886) | function c(a){b.enabled&&!1!==a.data.command.canUndo&&b.save()}
  function d (line 886) | function d(){b.enabled=a.readOnly?!1:"wysiwyg"==a.mode;b.onChange()}

FILE: public/static/plugins/ckeditor/plugins/clipboard/dialogs/paste.js
  function h (line 5) | function h(a){var b=new CKEDITOR.dom.document(a.document),f=b.getBody(),...

FILE: public/static/plugins/ckeditor/plugins/image/dialogs/image.js
  function r (line 5) | function r(){var a=arguments,b=this.getContentElement("advanced","txtdlg...
  function i (line 5) | function i(a){if(!s){s=1;var b=this.getDialog(),d=b.imageElement;if(d){t...
  function d (line 8) | function d(a,b){var d=a.match(k);return d?

FILE: public/static/plugins/ckeditor/plugins/link/dialogs/link.js
  function r (line 5) | function r(a){return a.replace(/'/g,"\\$&")}
  function t (line 5) | function t(a){var g,c=p,d,e;g=[q,"("];for(var b=0;b<c.length;b++)d=c[b]....
  function u (line 5) | function u(a){for(var g,c=a.length,d=[],e=0;e<c;e++)g=a.charCodeAt(e),d....
  function v (line 5) | function v(a){return(a=a.getAttribute("class"))?a.replace(/\s*(?:cke_anc...

FILE: public/static/plugins/ckeditor/plugins/pastefromword/filter/default.js
  function y (line 5) | function y(a){for(var a=a.toUpperCase(),c=z.length,b=0,f=0;f<c;++f)for(v...
  function A (line 5) | function A(a){for(var a=a.toUpperCase(),c=B.length,b=1,f=1;0<a.length;f*...

FILE: public/static/plugins/ckeditor/plugins/scayt/dialogs/options.js
  function w (line 5) | function w(){return"undefined"!=typeof document.forms["optionsbar_"+b]?d...
  function x (line 5) | function x(a,b){if(a){var e=a.length;if(void 0==e)a.checked=a.value==b.t...
  function n (line 5) | function n(a){f.getById("dic_message_"+b).setHtml('<span style="color:re...
  function o (line 5) | function o(a){f.getById("dic_message_"+b).setHtml('<span style="color:bl...
  function p (line 6) | function p(a){for(var a=(""+a).split(","),b=0,e=a.length;b<e;b+=1)f.getB...
  function q (line 6) | function q(a){for(var a=(""+a).split(","),b=0,e=a.length;b<e;b+=1)f.getB...
  function r (line 6) | function r(a){f.getById("dic_name_"+b).$.value=a}
  function a (line 13) | function a(a){var c=

FILE: public/static/plugins/ckeditor/plugins/table/dialogs/table.js
  function r (line 5) | function r(a){for(var e=0,l=0,k=0,m,g=a.$.rows.length;k<g;k++){m=a.$.row...
  function o (line 5) | function o(a){return function(){var e=this.getValue(),e=!!(CKEDITOR.dial...
  function n (line 5) | function n(a,e){var l=function(g){return new CKEDITOR.dom.element(g,a.do...

FILE: public/static/plugins/ckeditor/plugins/wsc/dialogs/wsc.js
  function w (line 5) | function w(a){if(!a)throw"Languages-by-groups list are required for cons...

FILE: public/static/plugins/ckeditor/plugins/wsc/dialogs/wsc_ie.js
  function c (line 5) | function c(a,c){var d=0;return function(){"function"==typeof window.doSp...
  function j (line 5) | function j(c){var f=new window._SP_FCK_LangCompare,b=CKEDITOR.getUrl(a.p...

FILE: public/static/plugins/datatables/extensions/ColReorder/js/dataTables.colReorder.js
  function fnInvertKeyValues (line 34) | function fnInvertKeyValues( aIn )
  function fnArraySwitch (line 53) | function fnArraySwitch( aArray, iFrom, iTo )
  function fnDomSwitch (line 69) | function fnDomSwitch( nParent, iFrom, iTo )

FILE: public/static/plugins/datatables/extensions/KeyTable/js/dataTables.keyTable.js
  function _fnEventAddTemplate (line 218) | function _fnEventAddTemplate( sKey )
  function _fnEventRemoveTemplate (line 259) | function _fnEventRemoveTemplate( sKey )
  function _fnEventAdd (line 327) | function _fnEventAdd( sType, x, y, fn )
  function _fnEventRemove (line 346) | function _fnEventRemove( sType, x, y, fn )
  function _fnEventFire (line 387) | function _fnEventFire ( sType, x, y )
  function _fnSetFocus (line 419) | function _fnSetFocus( nTarget, bAutoScroll )
  function _fnBlur (line 589) | function _fnBlur()
  function _fnRemoveFocus (line 605) | function _fnRemoveFocus( nTarget )
  function _fnClick (line 619) | function _fnClick ( e )
  function _fnKey (line 643) | function _fnKey ( e )
  function _fnCaptureKeys (line 832) | function _fnCaptureKeys( )
  function _fnReleaseKeys (line 847) | function _fnReleaseKeys( )
  function _fnCellFromCoords (line 865) | function _fnCellFromCoords( x, y )
  function _fnCoordsFromCell (line 892) | function _fnCoordsFromCell( n )
  function _fnSetScrollTop (line 920) | function _fnSetScrollTop( iPos )
  function _fnSetScrollLeft (line 933) | function _fnSetScrollLeft( iPos )
  function _fnGetPos (line 946) | function _fnGetPos ( obj )
  function _fnFindDtCell (line 973) | function _fnFindDtCell( nTarget )
  function _fnInit (line 1010) | function _fnInit( table, datatable, oInit, that )

FILE: public/static/plugins/datatables/jquery.dataTables.js
  function _fnHungarianMap (line 328) | function _fnHungarianMap ( o )
  function _fnCamelToHungarian (line 366) | function _fnCamelToHungarian ( src, user, force )
  function _fnLanguageCompat (line 405) | function _fnLanguageCompat( lang )
  function _fnCompatOpts (line 457) | function _fnCompatOpts ( init )
  function _fnCompatCols (line 490) | function _fnCompatCols ( init )
  function _fnBrowserDetect (line 510) | function _fnBrowserDetect( settings )
  function _fnReduce (line 564) | function _fnReduce ( that, fn, init, start, end, inc )
  function _fnAddColumn (line 598) | function _fnAddColumn( oSettings, nTh )
  function _fnColumnOptions (line 630) | function _fnColumnOptions( oSettings, iCol, oOptions )
  function _fnAdjustColumnSizing (line 757) | function _fnAdjustColumnSizing ( settings )
  function _fnVisibleToColumnIndex (line 789) | function _fnVisibleToColumnIndex( oSettings, iMatch )
  function _fnColumnIndexToVisible (line 807) | function _fnColumnIndexToVisible( oSettings, iMatch )
  function _fnVisbleColumns (line 822) | function _fnVisbleColumns( oSettings )
  function _fnGetColumns (line 836) | function _fnGetColumns( oSettings, sParam )
  function _fnColumnTypes (line 855) | function _fnColumnTypes ( settings )
  function _fnApplyColumnDefs (line 926) | function _fnApplyColumnDefs( oSettings, aoColDefs, aoCols, fn )
  function _fnAddData (line 1006) | function _fnAddData ( oSettings, aDataIn, nTr, anTds )
  function _fnAddTr (line 1054) | function _fnAddTr( settings, trs )
  function _fnNodeToDataIndex (line 1077) | function _fnNodeToDataIndex( oSettings, n )
  function _fnNodeToColumnIndex (line 1091) | function _fnNodeToColumnIndex( oSettings, iRow, n )
  function _fnGetCellData (line 1106) | function _fnGetCellData( settings, rowIdx, colIdx, type )
  function _fnSetCellData (line 1153) | function _fnSetCellData( settings, rowIdx, colIdx, val )
  function _fnSplitObjNotation (line 1175) | function _fnSplitObjNotation( str )
  function _fnGetObjectDataFn (line 1190) | function _fnGetObjectDataFn( mSource )
  function _fnSetObjectDataFn (line 1313) | function _fnSetObjectDataFn( mSource )
  function _fnGetDataMaster (line 1422) | function _fnGetDataMaster ( settings )
  function _fnClearTable (line 1433) | function _fnClearTable( settings )
  function _fnDeleteIndex (line 1448) | function _fnDeleteIndex( a, iTarget, splice )
  function _fnInvalidate (line 1487) | function _fnInvalidate( settings, rowIdx, src, colIdx )
  function _fnGetRowElements (line 1565) | function _fnGetRowElements( settings, row, colIdx, d )
  function _fnCreateTr (line 1659) | function _fnCreateTr ( oSettings, iRow, nTrIn, anTds )
  function _fnRowAttributes (line 1736) | function _fnRowAttributes( row )
  function _fnBuildHead (line 1774) | function _fnBuildHead( oSettings )
  function _fnDrawHead (line 1860) | function _fnDrawHead( oSettings, aoSource, bIncludeHidden )
  function _fnDraw (line 1958) | function _fnDraw( oSettings )
  function _fnReDraw (line 2099) | function _fnReDraw( settings, holdPosition )
  function _fnAddOptionsHtml (line 2137) | function _fnAddOptionsHtml ( oSettings )
  function _fnDetectHeader (line 2292) | function _fnDetectHeader ( aLayout, nThead )
  function _fnGetUniqueThs (line 2367) | function _fnGetUniqueThs ( oSettings, nHeader, aLayout )
  function _fnBuildAjax (line 2404) | function _fnBuildAjax( oSettings, data, fn )
  function _fnAjaxUpdate (line 2537) | function _fnAjaxUpdate( settings )
  function _fnAjaxParameters (line 2568) | function _fnAjaxParameters( settings )
  function _fnAjaxUpdateDraw (line 2676) | function _fnAjaxUpdateDraw ( settings, json )
  function _fnAjaxDataSrc (line 2726) | function _fnAjaxDataSrc ( oSettings, json )
  function _fnFeatureHtmlFilter (line 2749) | function _fnFeatureHtmlFilter ( settings )
  function _fnFilterComplete (line 2837) | function _fnFilterComplete ( oSettings, oInput, iForce )
  function _fnFilterCustom (line 2890) | function _fnFilterCustom( settings )
  function _fnFilterColumn (line 2927) | function _fnFilterColumn ( settings, searchStr, colIdx, regex, smart, ca...
  function _fnFilter (line 2957) | function _fnFilter( settings, input, force, regex, smart, caseInsensitive )
  function _fnFilterCreateSearch (line 3009) | function _fnFilterCreateSearch( search, regex, smart, caseInsensitive )
  function _fnEscapeRegex (line 3045) | function _fnEscapeRegex ( sVal )
  function _fnFilterData (line 3056) | function _fnFilterData ( settings )
  function _fnSearchToCamel (line 3129) | function _fnSearchToCamel ( obj )
  function _fnSearchToHung (line 3148) | function _fnSearchToHung ( obj )
  function _fnFeatureHtmlInfo (line 3164) | function _fnFeatureHtmlInfo ( settings )
  function _fnUpdateInfo (line 3198) | function _fnUpdateInfo ( settings )
  function _fnInfoMacros (line 3236) | function _fnInfoMacros ( settings, str )
  function _fnInitialise (line 3263) | function _fnInitialise ( settings )
  function _fnInitComplete (line 3344) | function _fnInitComplete ( settings, json )
  function _fnLengthChange (line 3358) | function _fnLengthChange ( settings, val )
  function _fnFeatureHtmlLength (line 3376) | function _fnFeatureHtmlLength ( settings )
  function _fnFeatureHtmlPaginate (line 3437) | function _fnFeatureHtmlPaginate ( settings )
  function _fnPageChange (line 3498) | function _fnPageChange ( settings, action, redraw )
  function _fnFeatureHtmlProcessing (line 3571) | function _fnFeatureHtmlProcessing ( settings )
  function _fnProcessingDisplay (line 3588) | function _fnProcessingDisplay ( settings, show )
  function _fnFeatureHtmlTable (line 3603) | function _fnFeatureHtmlTable ( settings )
  function _fnScrollDraw (line 3767) | function _fnScrollDraw ( settings )
  function _fnApplyToChildren (line 4057) | function _fnApplyToChildren( fn, an1, an2 )
  function _fnCalculateColumnWidths (line 4096) | function _fnCalculateColumnWidths ( oSettings )
  function _fnThrottle (line 4284) | function _fnThrottle( fn, freq ) {
  function _fnConvertToWidth (line 4319) | function _fnConvertToWidth ( width, parent )
  function _fnScrollingWidthAdjust (line 4343) | function _fnScrollingWidthAdjust ( settings, n )
  function _fnGetWidestNode (line 4364) | function _fnGetWidestNode( settings, colIdx )
  function _fnGetMaxLenString (line 4385) | function _fnGetMaxLenString( settings, colIdx )
  function _fnStringToCss (line 4409) | function _fnStringToCss( s )
  function _fnScrollBarWidth (line 4433) | function _fnScrollBarWidth ()
  function _fnSortFlatten (line 4463) | function _fnSortFlatten ( settings )
  function _fnSort (line 4535) | function _fnSort ( oSettings )
  function _fnSortAria (line 4661) | function _fnSortAria ( settings )
  function _fnSortListener (line 4716) | function _fnSortListener ( settings, colIdx, append, callback )
  function _fnSortAttachListener (line 4800) | function _fnSortAttachListener ( settings, attachTo, colIdx, callback )
  function _fnSortingClasses (line 4838) | function _fnSortingClasses( settings )
  function _fnSortData (line 4871) | function _fnSortData( settings, idx )
  function _fnSaveState (line 4914) | function _fnSaveState ( settings )
  function _fnLoadState (line 4949) | function _fnLoadState ( settings, oInit )
  function _fnSettingsFromNode (line 5036) | function _fnSettingsFromNode ( table )
  function _fnLog (line 5055) | function _fnLog( settings, level, msg, tn )
  function _fnMap (line 5096) | function _fnMap( ret, src, name, mappedName )
  function _fnExtend (line 5138) | function _fnExtend( out, extender, breakRefs )
  function _fnBindAction (line 5174) | function _fnBindAction( n, oData, fn )
  function _fnCallbackReg (line 5203) | function _fnCallbackReg( oSettings, sStore, fn, sName )
  function _fnCallbackFire (line 5229) | function _fnCallbackFire( settings, callbackArr, eventName, args )
  function _fnLengthOverflow (line 5251) | function _fnLengthOverflow ( settings )
  function _fnRenderer (line 5276) | function _fnRenderer( settings, type )
  function _fnDataSource (line 5305) | function _fnDataSource ( settings )
  function _numbers (line 14146) | function _numbers ( page, pages ) {
  function _addNumericSort (line 14427) | function _addNumericSort ( decimalPlace ) {
  function _fnExternApiFunc (line 14650) | function _fnExternApiFunc (fn)

FILE: public/static/plugins/datepicker/bootstrap-datepicker.js
  function UTCDate (line 27) | function UTCDate(){
  function UTCToday (line 30) | function UTCToday(){
  function alias (line 34) | function alias(method){
  function opts_from_el (line 1318) | function opts_from_el(el, prefix){
  function opts_from_locale (line 1335) | function opts_from_locale(lang){
  function match_part (line 1536) | function match_part(){

FILE: public/static/plugins/daterangepicker/moment.js
  function dfl (line 294) | function dfl(a, b, c) {
  function hasOwnProp (line 302) | function hasOwnProp(a, b) {
  function defaultParsingFlags (line 306) | function defaultParsingFlags() {
  function printMsg (line 323) | function printMsg(msg) {
  function deprecate (line 330) | function deprecate(msg, fn) {
  function deprecateSimple (line 341) | function deprecateSimple(name, msg) {
  function padToken (line 348) | function padToken(func, count) {
  function ordinalizeToken (line 353) | function ordinalizeToken(func, period) {
  function monthDiff (line 359) | function monthDiff(a, b) {
  function meridiemFixWrap (line 390) | function meridiemFixWrap(locale, hour, meridiem) {
  function Locale (line 419) | function Locale() {
  function Moment (line 423) | function Moment(config, skipOverflow) {
  function Duration (line 439) | function Duration(duration) {
  function extend (line 479) | function extend(a, b) {
  function copyConfig (line 497) | function copyConfig(to, from) {
  function absRound (line 544) | function absRound(number) {
  function leftZeroFill (line 554) | function leftZeroFill(number, targetLength, forceSign) {
  function positiveMomentsDifference (line 564) | function positiveMomentsDifference(base, other) {
  function momentsDifference (line 578) | function momentsDifference(base, other) {
  function createAdder (line 593) | function createAdder(direction, name) {
  function addOrSubtractDurationFromMoment (line 609) | function addOrSubtractDurationFromMoment(mom, duration, isAdding, update...
  function isArray (line 630) | function isArray(input) {
  function isDate (line 634) | function isDate(input) {
  function compareArrays (line 640) | function compareArrays(array1, array2, dontConvert) {
  function normalizeUnits (line 654) | function normalizeUnits(units) {
  function normalizeObjectUnits (line 662) | function normalizeObjectUnits(inputObject) {
  function makeList (line 679) | function makeList(field) {
  function toInt (line 721) | function toInt(argumentForCoercion) {
  function daysInMonth (line 736) | function daysInMonth(year, month) {
  function weeksInYear (line 740) | function weeksInYear(year, dow, doy) {
  function daysInYear (line 744) | function daysInYear(year) {
  function isLeapYear (line 748) | function isLeapYear(year) {
  function checkOverflow (line 752) | function checkOverflow(m) {
  function isValid (line 775) | function isValid(m) {
  function normalizeLocale (line 795) | function normalizeLocale(key) {
  function chooseLocale (line 802) | function chooseLocale(names) {
  function loadLocale (line 826) | function loadLocale(name) {
  function makeAs (line 841) | function makeAs(input, model) {
  function removeFormattingTokens (line 1073) | function removeFormattingTokens(input) {
  function makeFormatFunction (line 1080) | function makeFormatFunction(format) {
  function formatMoment (line 1101) | function formatMoment(m, format) {
  function expandFormat (line 1115) | function expandFormat(format, locale) {
  function getParseRegexForToken (line 1139) | function getParseRegexForToken(token, config) {
  function utcOffsetFromString (line 1228) | function utcOffsetFromString(string) {
  function addTimeToArrayFromToken (line 1239) | function addTimeToArrayFromToken(token, input, config) {
  function dayOfYearFromWeekInfo (line 1381) | function dayOfYearFromWeekInfo(config) {
  function dateFromConfig (line 1427) | function dateFromConfig(config) {
  function dateFromObject (line 1489) | function dateFromObject(config) {
  function currentDateArray (line 1510) | function currentDateArray(config) {
  function makeDateFromStringAndFormat (line 1524) | function makeDateFromStringAndFormat(config) {
  function unescapeFormat (line 1584) | function unescapeFormat(s) {
  function regexpEscape (line 1591) | function regexpEscape(s) {
  function makeDateFromStringAndArray (line 1596) | function makeDateFromStringAndArray(config) {
  function parseISO (line 1642) | function parseISO(config) {
  function makeDateFromString (line 1672) | function makeDateFromString(config) {
  function map (line 1680) | function map(arr, fn) {
  function makeDateFromInput (line 1688) | function makeDateFromInput(config) {
  function makeDate (line 1713) | function makeDate(y, m, d, h, M, s, ms) {
  function makeUTCDate (line 1725) | function makeUTCDate(y) {
  function parseWeekday (line 1733) | function parseWeekday(input, locale) {
  function substituteTimeAgo (line 1754) | function substituteTimeAgo(string, number, withoutSuffix, isFuture, loca...
  function relativeTime (line 1758) | function relativeTime(posNegDuration, withoutSuffix, locale) {
  function weekOfYear (line 1797) | function weekOfYear(mom, firstDayOfWeek, firstDayOfWeekOfYear) {
  function dayOfYearFromWeeks (line 1819) | function dayOfYearFromWeeks(year, week, weekday, firstDayOfWeekOfYear, f...
  function makeMoment (line 1837) | function makeMoment(config) {
  function pickBy (line 1912) | function pickBy(fn, moments) {
  function rawMonthSetter (line 2684) | function rawMonthSetter(mom, value) {
  function rawGetter (line 2702) | function rawGetter(mom, unit) {
  function rawSetter (line 2706) | function rawSetter(mom, unit, value) {
  function makeAccessor (line 2714) | function makeAccessor(unit, keepTime) {
  function daysToYears (line 2758) | function daysToYears (days) {
  function yearsToDays (line 2763) | function yearsToDays (years) {
  function makeDurationGetter (line 2949) | function makeDurationGetter(name) {
  function makeGlobal (line 3010) | function makeGlobal(shouldDeprecate) {

FILE: public/static/plugins/fastclick/fastclick.js
  function FastClick (line 23) | function FastClick(layer, options) {

FILE: public/static/plugins/flot/excanvas.js
  function getContext (line 59) | function getContext() {
  function bind (line 82) | function bind(f, obj, var_args) {
  function encodeHtmlAttribute (line 89) | function encodeHtmlAttribute(s) {
  function addNamespace (line 93) | function addNamespace(doc, prefix, urn) {
  function addNamespacesAndStylesheet (line 99) | function addNamespacesAndStylesheet(doc) {
  function onPropertyChange (line 178) | function onPropertyChange(e) {
  function onResize (line 196) | function onResize(e) {
  function createMatrixIdentity (line 214) | function createMatrixIdentity() {
  function matrixMultiply (line 222) | function matrixMultiply(m1, m2) {
  function copyState (line 239) | function copyState(o1, o2) {
  function getRgbHslContent (line 394) | function getRgbHslContent(styleString) {
  function percent (line 405) | function percent(s) {
  function clamp (line 409) | function clamp(v, min, max) {
  function hslToRgb (line 413) | function hslToRgb(parts){
  function hueToRgb (line 435) | function hueToRgb(m1, m2, h) {
  function processStyle (line 453) | function processStyle(styleString) {
  function processFontStyle (line 496) | function processFontStyle(styleString) {
  function getComputedStyle (line 518) | function getComputedStyle(style, element) {
  function buildStyle (line 550) | function buildStyle(style) {
  function processLineCap (line 560) | function processLineCap(lineCap) {
  function CanvasRenderingContext2D_ (line 570) | function CanvasRenderingContext2D_(canvasElement) {
  function bezierCurveTo (line 649) | function bezierCurveTo(self, cp1, cp2, p) {
  function appendStroke (line 978) | function appendStroke(ctx, lineStr) {
  function appendFill (line 1001) | function appendFill(ctx, lineStr, min, max) {
  function getCoords (line 1112) | function getCoords(ctx, aX, aY) {
  function matrixIsFinite (line 1134) | function matrixIsFinite(m) {
  function setM (line 1140) | function setM(ctx, m, updateLineScale) {
  function CanvasGradient_ (line 1343) | function CanvasGradient_(aType) {
  function CanvasPattern_ (line 1361) | function CanvasPattern_(image, repetition) {
  function throwException (line 1383) | function throwException(s) {
  function assertImageIsValid (line 1387) | function assertImageIsValid(img) {
  function DOMException_ (line 1396) | function DOMException_(s) {

FILE: public/static/plugins/flot/jquery.colorhelpers.js
  function clamp (line 55) | function clamp(min, value, max) {

FILE: public/static/plugins/flot/jquery.flot.canvas.js
  function init (line 42) | function init(plot, classes) {

FILE: public/static/plugins/flot/jquery.flot.categories.js
  function processRawData (line 56) | function processRawData(plot, series, data, datapoints) {
  function getNextIndex (line 97) | function getNextIndex(categories) {
  function categoriesTickGenerator (line 107) | function categoriesTickGenerator(axis) {
  function setupCategoriesForAxis (line 120) | function setupCategoriesForAxis(series, axis, datapoints) {
  function transformPointsOnAxis (line 146) | function transformPointsOnAxis(datapoints, axis, categories) {
  function processDatapoints (line 174) | function processDatapoints(plot, series, datapoints) {
  function init (line 179) | function init(plot) {

FILE: public/static/plugins/flot/jquery.flot.crosshair.js
  function init (line 70) | function init(plot) {

FILE: public/static/plugins/flot/jquery.flot.errorbars.js
  function processRawData (line 76) | function processRawData(plot, series, data, datapoints){
  function parseErrors (line 107) | function parseErrors(series, i){
  function drawSeriesErrors (line 162) | function drawSeriesErrors(plot, ctx, s){
  function drawError (line 275) | function drawError(ctx,err,x,y,upper,lower,drawUpper,drawLower,radius,of...
  function drawPath (line 322) | function drawPath(ctx, pts){
  function draw (line 330) | function draw(plot, ctx){
  function init (line 342) | function init(plot) {

FILE: public/static/plugins/flot/jquery.flot.fillbetween.js
  function init (line 40) | function init( plot ) {

FILE: public/static/plugins/flot/jquery.flot.image.js
  function drawSeries (line 118) | function drawSeries(plot, ctx, series) {
  function processRawData (line 216) | function processRawData(plot, series, data, datapoints) {
  function init (line 230) | function init(plot) {

FILE: public/static/plugins/flot/jquery.flot.js
  function clamp (line 32) | function clamp(min,value,max){return value<min?min:value>max?max:value}
  function Canvas (line 51) | function Canvas(cls, container) {
  function Plot (line 492) | function Plot(placeholder, data_, options_, plugins) {
  function floorInBase (line 3133) | function floorInBase(n, base) {

FILE: public/static/plugins/flot/jquery.flot.navigate.js
  function e (line 90) | function e(h){var k,j=this,l=h.data||{};if(l.elem)j=h.dragTarget=l.elem,...
  function f (line 90) | function f(b,c,d){b.type=c;var e=a.event.dispatch.call(d,b);return e===!...
  function g (line 90) | function g(a){return Math.pow(a,2)}
  function h (line 90) | function h(){return d.dragging===!1}
  function i (line 90) | function i(a,b){a&&(a.unselectable=b?"off":"on",a.onselectstart=function...
  function e (line 103) | function e(a){var b=a||window.event,c=[].slice.call(arguments,1),f=0,e=0...
  function init (line 126) | function init(plot) {

FILE: public/static/plugins/flot/jquery.flot.pie.js
  function init (line 68) | function init(plot) {

FILE: public/static/plugins/flot/jquery.flot.resize.js
  function p (line 23) | function p(){for(var n=r.length-1;n>=0;n--){var o=$(r[n]);if(o[0]==t||o....
  function s (line 23) | function s(t,i,s){var o=$(this),u=o.data(a);u.w=i!==n?i:o.width(),u.h=s!...
  function init (line 28) | function init(plot) {

FILE: public/static/plugins/flot/jquery.flot.selection.js
  function init (line 82) | function init(plot) {

FILE: public/static/plugins/flot/jquery.flot.stack.js
  function init (line 43) | function init(plot) {

FILE: public/static/plugins/flot/jquery.flot.symbol.js
  function processRawData (line 17) | function processRawData(plot, series, datapoints) {
  function init (line 62) | function init(plot) {

FILE: public/static/plugins/flot/jquery.flot.threshold.js
  function init (line 50) | function init(plot) {

FILE: public/static/plugins/flot/jquery.flot.time.js
  function floorInBase (line 24) | function floorInBase(n, base) {
  function formatDate (line 31) | function formatDate(d, fmt, monthNames, dayNames) {
  function makeUtcWrapper (line 111) | function makeUtcWrapper(d) {
  function dateGenerator (line 143) | function dateGenerator(ts, opts) {
  function init (line 195) | function init(plot) {

FILE: public/static/plugins/form/jquery.form.js
  function deepSerialize (line 272) | function deepSerialize(extraData){
  function fileUploadXhr (line 288) | function fileUploadXhr(a) {
  function fileUploadIframe (line 350) | function fileUploadIframe(a) {
  function doAjaxSubmit (line 885) | function doAjaxSubmit(e) {
  function captureSubmittingElement (line 894) | function captureSubmittingElement(e) {
  function log (line 1264) | function log() {

FILE: public/static/plugins/fullcalendar/fullcalendar.js
  function setDefaults (line 165) | function setDefaults(d) {
  function mergeOptions (line 176) | function mergeOptions(target) {
  function isForcedAtomicOption (line 197) | function isForcedAtomicOption(name) {
  function getMomentLocaleData (line 343) | function getMomentLocaleData(langCode) {
  function compensateScroll (line 366) | function compensateScroll(rowEls, scrollbarWidths) {
  function uncompensateScroll (line 383) | function uncompensateScroll(rowEls) {
  function disableCursor (line 394) | function disableCursor() {
  function enableCursor (line 400) | function enableCursor() {
  function distributeHeight (line 409) | function distributeHeight(els, availableHeight, shouldRedistribute) {
  function undistributeHeight (line 462) | function undistributeHeight(els) {
  function matchCellWidths (line 470) | function matchCellWidths(els) {
  function setPotentialScroller (line 491) | function setPotentialScroller(containerEl, height) {
  function unsetScroller (line 505) | function unsetScroller(containerEl) {
  function getScrollParent (line 515) | function getScrollParent(el) {
  function getScrollbarWidths (line 531) | function getScrollbarWidths(container) {
  function isPrimaryMouseButton (line 546) | function isPrimaryMouseButton(ev) {
  function intersectionToSeg (line 558) | function intersectionToSeg(subjectRange, constraintRange) {
  function smartProperty (line 596) | function smartProperty(obj, name) { // get a camel-cased/namespaced prop...
  function diffDayTime (line 622) | function diffDayTime(a, b) {
  function diffDay (line 631) | function diffDay(a, b) {
  function computeIntervalUnit (line 664) | function computeIntervalUnit(start, end) {
  function computeIntervalAs (line 681) | function computeIntervalAs(unit, start, end) {
  function isNativeDate (line 702) | function isNativeDate(input) {
  function isTimeString (line 708) | function isTimeString(str) {
  function createObject (line 720) | function createObject(proto) {
  function copyOwnProps (line 727) | function copyOwnProps(src, dest) {
  function hasOwnProp (line 736) | function hasOwnProp(obj, name) {
  function isAtomic (line 742) | function isAtomic(val) {
  function applyAll (line 747) | function applyAll(functions, thisObj, args) {
  function firstDefined (line 762) | function firstDefined() {
  function htmlEscape (line 771) | function htmlEscape(s) {
  function stripHtmlEntities (line 781) | function stripHtmlEntities(text) {
  function capitaliseFirstLetter (line 786) | function capitaliseFirstLetter(str) {
  function compareNumbers (line 791) | function compareNumbers(a, b) { // for .sort()
  function isInt (line 796) | function isInt(n) {
  function debounce (line 805) | function debounce(func, wait) {
  function makeMoment (line 879) | function makeMoment(args, parseAsUTC, parseZone) {
  function commonlyAmbiguate (line 1189) | function commonlyAmbiguate(inputs, preserveTime) {
  function transferAmbigs (line 1223) | function transferAmbigs(src, dest) {
  function setMomentValues (line 1242) | function setMomentValues(mom, a) {
  function oldMomentFormat (line 1284) | function oldMomentFormat(mom, formatStr) {
  function formatDate (line 1291) | function formatDate(date, formatStr) {
  function formatDateWithChunks (line 1296) | function formatDateWithChunks(date, chunks) {
  function formatDateWithChunk (line 1319) | function formatDateWithChunk(date, chunk) {
  function formatRange (line 1351) | function formatRange(date1, date2, formatStr, separator, isRTL) {
  function formatRangeWithChunks (line 1377) | function formatRangeWithChunks(date1, date2, chunks, separator, isRTL) {
  function formatSimilarChunk (line 1447) | function formatSimilarChunk(date1, date2, chunk) {
  function getFormatStringChunks (line 1475) | function getFormatStringChunks(formatStr) {
  function chunkFormatString (line 1484) | function chunkFormatString(formatStr) {
  function Class (line 1510) | function Class() { }
  function isCellsEqual (line 2281) | function isCellsEqual(cell1, cell2) {
  function complete (line 2357) | function complete() {
  function destroy (line 3662) | function destroy() { // resets the rendering to show the original event
  function isBgEvent (line 3959) | function isBgEvent(event) { // returns true if background OR inverse-bac...
  function isInverseBgEvent (line 3965) | function isInverseBgEvent(event) {
  function getEventRendering (line 3970) | function getEventRendering(event) {
  function groupEventsById (line 3975) | function groupEventsById(events) {
  function compareNormalRanges (line 3989) | function compareNormalRanges(range1, range2) {
  function compareSegs (line 3996) | function compareSegs(seg1, seg2) {
  function getDraggedElMeta (line 4016) | function getDraggedElMeta(el) {
  function emptyCellsUntil (line 4680) | function emptyCellsUntil(endCol) {
  function isDaySegCollision (line 4807) | function isDaySegCollision(seg, otherSegs) {
  function compareDaySegCols (line 4826) | function compareDaySegCols(a, b) {
  function emptyCellsUntil (line 4917) | function emptyCellsUntil(endCol) { // goes from current `col` to `endCol`
  function placeSlotSegs (line 5924) | function placeSlotSegs(segs) {
  function buildSlotSegLevels (line 5948) | function buildSlotSegLevels(segs) {
  function computeForwardSlotSegs (line 5974) | function computeForwardSlotSegs(levels) {
  function computeSlotSegPressures (line 5996) | function computeSlotSegPressures(seg) {
  function computeSlotSegCoords (line 6030) | function computeSlotSegCoords(seg, seriesBackwardPressure, seriesBackwar...
  function computeSlotSegCollisions (line 6068) | function computeSlotSegCollisions(seg, otherSegs, results) {
  function isSlotSegCollision (line 6082) | function isSlotSegCollision(seg1, seg2) {
  function compareForwardSlotSegs (line 6088) | function compareForwardSlotSegs(seg1, seg2) {
  function Calendar (line 6825) | function Calendar(element, instanceOptions) {
  function Header (line 7632) | function Header(calendar, options) {
  function EventManager (line 7865) | function EventManager(options) { // assumed to be a calendar
  function backupEventDates (line 8933) | function backupEventDates(event) {
  function scroll (line 9601) | function scroll() {

FILE: public/static/plugins/iCheck/icheck.js
  function operate (line 300) | function operate(input, direct, method) {
  function on (line 345) | function on(input, state, keep) {
  function off (line 410) | function off(input, state, keep) {
  function tidy (line 444) | function tidy(input, callback) {
  function option (line 460) | function option(input, state, regular) {
  function capitalize (line 466) | function capitalize(string) {
  function callbacks (line 470) | function callbacks(input, checked, callback, keep) {

FILE: public/static/plugins/input-mask/jquery.inputmask.js
  function isInputEventSupported (line 12) | function isInputEventSupported(eventName) {
  function resolveAlias (line 23) | function resolveAlias(aliasStr, options, opts) {
  function generateMaskSets (line 33) | function generateMaskSets(opts) {
  function maskScope (line 236) | function maskScope(masksets, activeMasksetIndex, opts, actionObj) {

FILE: public/static/plugins/input-mask/jquery.inputmask.regex.extensions.js
  function regexToken (line 25) | function regexToken() {
  function analyseRegex (line 31) | function analyseRegex() {
  function validateRegexToken (line 93) | function validateRegexToken(token, fromGroup) {

FILE: public/static/plugins/jQueryUI/jquery-ui.js
  function focusable (line 94) | function focusable( element, isTabIndexNotNaN ) {
  function visible (line 115) | function visible( element ) {
  function reduce (line 157) | function reduce( elem, size, border, margin ) {
  function handlerProxy (line 716) | function handlerProxy() {
  function handlerProxy (line 758) | function handlerProxy() {
  function getOffsets (line 1071) | function getOffsets( offsets, width, height ) {
  function parseCss (line 1078) | function parseCss( element, property ) {
  function getDimensions (line 1082) | function getDimensions( elem ) {
  function datepicker_getZindex (line 3784) | function datepicker_getZindex( elem ) {
  function Datepicker (line 3811) | function Datepicker() {
  function datepicker_bindHover (line 5754) | function datepicker_bindHover(dpDiv) {
  function datepicker_handleMouseover (line 5768) | function datepicker_handleMouseover() {
  function datepicker_extendRemove (line 5782) | function datepicker_extendRemove(target, props) {
  function checkFocus (line 8386) | function checkFocus() {
  function filteredUi (line 8570) | function filteredUi( ui ) {
  function filteredUi (line 8617) | function filteredUi( ui ) {
  function isOverAxis (line 9161) | function isOverAxis( x, reference, size ) {
  function clamp (line 9517) | function clamp( value, prop, allowEmpty ) {
  function stringParse (line 9543) | function stringParse( string ) {
  function hue2rgb (line 9793) | function hue2rgb( p, q, h ) {
  function getElementStyles (line 10059) | function getElementStyles( elem ) {
  function styleDifference (line 10086) | function styleDifference( oldStyle, newStyle ) {
  function _normalizeArguments (line 10406) | function _normalizeArguments( effect, options, speed, callback ) {
  function standardAnimationOption (line 10458) | function standardAnimationOption( option ) {
  function run (line 10503) | function run( next ) {
  function childComplete (line 10983) | function childComplete() {
  function animComplete (line 11032) | function animComplete() {
  function addItems (line 14129) | function addItems() {
  function delayEvent (line 14710) | function delayEvent( type, instance, container ) {
  function spinner_modifier (line 14799) | function spinner_modifier( fn ) {
  function checkFocus (line 14923) | function checkFocus() {
  function constrain (line 15517) | function constrain() {
  function complete (line 15893) | function complete() {
  function show (line 15898) | function show() {
  function position (line 16428) | function position( event ) {

FILE: public/static/plugins/layer/extend/layer.ext.js
  function e (line 2) | function e(a,b,c){var d=new Image;d.onload=function(){d.onload=null,b(d)...

FILE: public/static/plugins/layer/layer.js
  function b (line 2) | function b(a){a=g.find(a),a.height(i[1]-j-k-2*(0|parseFloat(a.css("paddi...
  function a (line 2) | function a(){var a=g.cancel&&g.cancel(b.index);a===!1||f.close(b.index)}
  function b (line 2) | function b(){a.css({top:f+(e.config.fix?d.scrollTop():0)})}

FILE: public/static/plugins/morris/morris.js
  function ctor (line 13) | function ctor() { this.constructor = child; }
  function EventEmitter (line 21) | function EventEmitter() {}
  function Grid (line 76) | function Grid(options) {
  function Hover (line 655) | function Hover(options) {
  function Line (line 718) | function Line(options) {
  function Area (line 1289) | function Area(options) {
  function Bar (line 1382) | function Bar(options) {
  function Donut (line 1641) | function Donut(options) {
  function DonutSegment (line 1800) | function DonutSegment(cx, cy, inner, outer, p0, p1, color, backgroundCol...

FILE: public/static/plugins/nprogress/nprogress.js
  function clamp (line 300) | function clamp(n, min, max) {
  function toBarPerc (line 311) | function toBarPerc(n) {
  function barPositionCSS (line 321) | function barPositionCSS(n, speed, ease) {
  function next (line 344) | function next() {
  function camelCase (line 369) | function camelCase(string) {
  function getVendorProp (line 375) | function getVendorProp(name) {
  function getStyleProp (line 390) | function getStyleProp(name) {
  function applyCss (line 395) | function applyCss(element, prop, value) {
  function hasClass (line 420) | function hasClass(element, name) {
  function addClass (line 429) | function addClass(element, name) {
  function removeClass (line 443) | function removeClass(element, name) {
  function classList (line 462) | function classList(element) {
  function removeElement (line 470) | function removeElement(element) {

FILE: public/static/plugins/pace/pace.js
  function ctor (line 5) | function ctor() { this.constructor = child; }
  function Evented (line 137) | function Evented() {}
  function NoTargetError (line 224) | function NoTargetError() {
  function Bar (line 234) | function Bar() {
  function Events (line 316) | function Events() {
  function RequestIntercept (line 419) | function RequestIntercept() {
  function AjaxMonitor (line 551) | function AjaxMonitor() {
  function XHRRequestTracker (line 578) | function XHRRequestTracker(request) {
  function SocketRequestTracker (line 617) | function SocketRequestTracker(request) {
  function ElementMonitor (line 635) | function ElementMonitor(options) {
  function ElementTracker (line 656) | function ElementTracker(selector) {
  function DocumentMonitor (line 688) | function DocumentMonitor() {
  function EventLagMonitor (line 706) | function EventLagMonitor() {
  function Scaler (line 737) | function Scaler(source) {

FILE: public/static/plugins/pjax/jquery.pjax.js
  function fnPjax (line 32) | function fnPjax(selector, container, options) {
  function handleClick (line 61) | function handleClick(event, container, options) {
  function handleSubmit (line 118) | function handleSubmit(event, container, options) {
  function pjax (line 172) | function pjax(options) {
  function pjaxReload (line 381) | function pjaxReload(container, options) {
  function locationReplace (line 398) | function locationReplace(url) {
  function onPjaxPopstate (line 424) | function onPjaxPopstate(event) {
  function fallbackPjax (line 507) | function fallbackPjax(options) {
  function abortXHR (line 547) | function abortXHR(xhr) {
  function uniqueId (line 560) | function uniqueId() {
  function cloneContents (line 564) | function cloneContents(container) {
  function stripInternalParams (line 577) | function stripInternalParams(url) {
  function parseURL (line 587) | function parseURL(url) {
  function stripHash (line 599) | function stripHash(location) {
  function optionsFor (line 620) | function optionsFor(container, options) {
  function findContainerFor (line 648) | function findContainerFor(container) {
  function findAll (line 671) | function findAll(elems, selector) {
  function parseHTML (line 675) | function parseHTML(html) {
  function extractContainer (line 690) | function extractContainer(data, xhr, options) {
  function executeScriptTags (line 763) | function executeScriptTags(scripts) {
  function cachePush (line 796) | function cachePush(id, value) {
  function cachePop (line 816) | function cachePop(direction, id, value) {
  function trimCacheStack (line 843) | function trimCacheStack(stack, length) {
  function findVersion (line 851) | function findVersion() {
  function enable (line 867) | function enable() {
  function disable (line 899) | function disable() {

FILE: public/static/plugins/select2/i18n/cs.js
  function e (line 3) | function e(e,t){switch(e){case 2:return t?"dva":"dvě";case 3:return"tři"...

FILE: public/static/plugins/select2/i18n/hr.js
  function e (line 3) | function e(e){var t=" "+e+" znak";return e%10<5&&e%10>0&&(e%100<5||e%100...

FILE: public/static/plugins/select2/i18n/lt.js
  function e (line 3) | function e(e,t,n,r){return e%100>9&&e%100<21||e%10===0?e%10>1?n:r:t}

FILE: public/static/plugins/select2/i18n/lv.js
  function e (line 3) | function e(e,t,n,r){return e===11?t:e%10===1?n:r}

FILE: public/static/plugins/select2/i18n/ru.js
  function e (line 3) | function e(e,t,n,r){return e%10<5&&e%10>0&&e%100<5||e%100>20?e%10>1?n:t:r}

FILE: public/static/plugins/select2/i18n/sr-Cyrl.js
  function e (line 3) | function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100...

FILE: public/static/plugins/select2/i18n/sr.js
  function e (line 3) | function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100...

FILE: public/static/plugins/select2/i18n/uk.js
  function e (line 3) | function e(e,t,n,r){return e%100>10&&e%100<15?r:e%10===1?t:e%10>1&&e%10<...

FILE: public/static/plugins/select2/select2.full.js
  function hasProp (line 55) | function hasProp(obj, prop) {
  function normalize (line 67) | function normalize(name, baseName) {
  function makeRequire (line 179) | function makeRequire(relName, forceSync) {
  function makeNormalize (line 196) | function makeNormalize(relName) {
  function makeLoad (line 202) | function makeLoad(depName) {
  function callDep (line 208) | function callDep(name) {
  function splitPrefix (line 225) | function splitPrefix(name) {
  function makeConfig (line 278) | function makeConfig(name) {
  function BaseConstructor (line 495) | function BaseConstructor() {
  function getMethods (line 512) | function getMethods(theClass) {
  function DecoratedClass (line 538) | function DecoratedClass() {
  function ctr (line 556) | function ctr() {
  function Results (line 754) | function Results($element, options, dataAdapter) {
  function BaseSelection (line 1298) | function BaseSelection($element, options) {
  function SingleSelection (line 1458) | function SingleSelection() {
  function MultipleSelection (line 1551) | function MultipleSelection($element, options) {
  function Placeholder (line 1659) | function Placeholder(decorated, $element, options) {
  function AllowClear (line 1710) | function AllowClear() {}
  function Search (line 1809) | function Search(decorated, $element, options) {
  function EventRelay (line 2030) | function EventRelay() {}
  function Translation (line 2077) | function Translation(dict) {
  function BaseAdapter (line 2961) | function BaseAdapter($element, options) {
  function SelectAdapter (line 3004) | function SelectAdapter($element, options) {
  function ArrayAdapter (line 3290) | function ArrayAdapter($element, options) {
  function onlyItem (line 3325) | function onlyItem(item) {
  function AjaxAdapter (line 3370) | function AjaxAdapter($element, options) {
  function request (line 3431) | function request() {
  function Tags (line 3470) | function Tags(decorated, $element, options) {
  function wrapper (line 3503) | function wrapper(obj, child) {
  function Tokenizer (line 3590) | function Tokenizer(decorated, $element, options) {
  function select (line 3610) | function select(data) {
  function MinimumInputLength (line 3684) | function MinimumInputLength(decorated, $e, options) {
  function MaximumInputLength (line 3715) | function MaximumInputLength(decorated, $e, options) {
  function MaximumSelectionLength (line 3747) | function MaximumSelectionLength(decorated, $e, options) {
  function Dropdown (line 3780) | function Dropdown($element, options) {
  function Search (line 3823) | function Search() {}
  function HidePlaceholder (line 3918) | function HidePlaceholder(decorated, $element, options, dataAdapter) {
  function InfiniteScroll (line 3961) | function InfiniteScroll(decorated, $element, options, dataAdapter) {
  function AttachBody (line 4052) | function AttachBody(decorated, $element, options) {
  function countResults (line 4268) | function countResults(data) {
  function MinimumResultsForSearch (line 4284) | function MinimumResultsForSearch(decorated, $element, options, dataAdapt...
  function SelectOnClose (line 4308) | function SelectOnClose() {}
  function CloseOnSelect (line 4349) | function CloseOnSelect() {}
  function Defaults (line 4476) | function Defaults() {
  function stripDiacritics (line 4723) | function stripDiacritics(text) {
  function matcher (line 4732) | function matcher(params, data) {
  function Options (line 4827) | function Options(options, $element) {
  function syncCssClasses (line 5492) | function syncCssClasses($dest, $src, adapter) {
  function _containerAdapter (line 5539) | function _containerAdapter(clazz) {
  function ContainerCSS (line 5543) | function ContainerCSS() {}
  function _dropdownAdapter (line 5596) | function _dropdownAdapter(clazz) {
  function DropdownCSS (line 5600) | function DropdownCSS() {}
  function InitSelection (line 5651) | function InitSelection(decorated, $element, options) {
  function InputData (line 5694) | function InputData(decorated, $element, options) {
  function getSelected (line 5712) | function getSelected(data, selectedIds) {
  function oldMatcher (line 5822) | function oldMatcher(matcher) {
  function Query (line 5865) | function Query(decorated, $element, options) {
  function AttachContainer (line 5892) | function AttachContainer(decorated, $element, options) {
  function StopPropagation (line 5911) | function StopPropagation() {}
  function StopPropagation (line 5950) | function StopPropagation() {}
  function handler (line 6077) | function handler(event) {
  function nullLowestDelta (line 6191) | function nullLowestDelta() {
  function shouldAdjustOldDeltas (line 6195) | function shouldAdjustOldDeltas(orgEvent, absDelta) {

FILE: public/static/plugins/select2/select2.js
  function hasProp (line 53) | function hasProp(obj, prop) {
  function normalize (line 65) | function normalize(name, baseName) {
  function makeRequire (line 177) | function makeRequire(relName, forceSync) {
  function makeNormalize (line 194) | function makeNormalize(relName) {
  function makeLoad (line 200) | function makeLoad(depName) {
  function callDep (line 206) | function callDep(name) {
  function splitPrefix (line 223) | function splitPrefix(name) {
  function makeConfig (line 276) | function makeConfig(name) {
  function BaseConstructor (line 491) | function BaseConstructor () {
  function getMethods (line 508) | function getMethods (theClass) {
  function DecoratedClass (line 534) | function DecoratedClass () {
  function ctr (line 552) | function ctr () {
  function Results (line 750) | function Results ($element, options, dataAdapter) {
  function BaseSelection (line 1294) | function BaseSelection ($element, options) {
  function SingleSelection (line 1454) | function SingleSelection () {
  function MultipleSelection (line 1547) | function MultipleSelection ($element, options) {
  function Placeholder (line 1655) | function Placeholder (decorated, $element, options) {
  function AllowClear (line 1706) | function AllowClear () { }
  function Search (line 1805) | function Search (decorated, $element, options) {
  function EventRelay (line 2026) | function EventRelay () { }
  function Translation (line 2073) | function Translation (dict) {
  function BaseAdapter (line 2957) | function BaseAdapter ($element, options) {
  function SelectAdapter (line 3000) | function SelectAdapter ($element, options) {
  function ArrayAdapter (line 3286) | function ArrayAdapter ($element, options) {
  function onlyItem (line 3321) | function onlyItem (item) {
  function AjaxAdapter (line 3366) | function AjaxAdapter ($element, options) {
  function request (line 3427) | function request () {
  function Tags (line 3466) | function Tags (decorated, $element, options) {
  function wrapper (line 3499) | function wrapper (obj, child) {
  function Tokenizer (line 3586) | function Tokenizer (decorated, $element, options) {
  function select (line 3606) | function select (data) {
  function MinimumInputLength (line 3680) | function MinimumInputLength (decorated, $e, options) {
  function MaximumInputLength (line 3711) | function MaximumInputLength (decorated, $e, options) {
  function MaximumSelectionLength (line 3743) | function MaximumSelectionLength (decorated, $e, options) {
  function Dropdown (line 3776) | function Dropdown ($element, options) {
  function Search (line 3819) | function Search () { }
  function HidePlaceholder (line 3914) | function HidePlaceholder (decorated, $element, options, dataAdapter) {
  function InfiniteScroll (line 3957) | function InfiniteScroll (decorated, $element, options, dataAdapter) {
  function AttachBody (line 4048) | function AttachBody (decorated, $element, options) {
  function countResults (line 4264) | function countResults (data) {
  function MinimumResultsForSearch (line 4280) | function MinimumResultsForSearch (decorated, $element, options, dataAdap...
  function SelectOnClose (line 4304) | function SelectOnClose () { }
  function CloseOnSelect (line 4345) | function CloseOnSelect () { }
  function Defaults (line 4472) | function Defaults () {
  function stripDiacritics (line 4719) | function stripDiacritics (text) {
  function matcher (line 4728) | function matcher (params, data) {
  function Options (line 4823) | function Options (options, $element) {

FILE: public/static/plugins/slimScroll/jquery.slimscroll.js
  function _onWheel (line 322) | function _onWheel(e)
  function scrollContent (line 354) | function scrollContent(y, isWheel, isJump)
  function attachWheel (line 403) | function attachWheel()
  function getBarHeight (line 416) | function getBarHeight()
  function showBar (line 427) | function showBar()
  function hideBar (line 464) | function hideBar()

FILE: public/static/plugins/wangeditor/js/lib/jquery-2.2.1.js
  function isArrayLike (line 524) | function isArrayLike( obj ) {
  function Sizzle (line 733) | function Sizzle( selector, context, results, seed ) {
  function createCache (line 873) | function createCache() {
  function markFunction (line 891) | function markFunction( fn ) {
  function assert (line 900) | function assert( fn ) {
  function addHandle (line 922) | function addHandle( attrs, handler ) {
  function siblingCheck (line 937) | function siblingCheck( a, b ) {
  function createInputPseudo (line 964) | function createInputPseudo( type ) {
  function createButtonPseudo (line 975) | function createButtonPseudo( type ) {
  function createPositionalPseudo (line 986) | function createPositionalPseudo( fn ) {
  function testContext (line 1009) | function testContext( context ) {
  function setFilters (line 2054) | function setFilters() {}
  function toSelector (line 2125) | function toSelector( tokens ) {
  function addCombinator (line 2135) | function addCombinator( matcher, combinator, base ) {
  function elementMatcher (line 2193) | function elementMatcher( matchers ) {
  function multipleContexts (line 2207) | function multipleContexts( selector, contexts, results ) {
  function condense (line 2216) | function condense( unmatched, map, filter, context, xml ) {
  function setMatcher (line 2237) | function setMatcher( preFilter, selector, matcher, postFilter, postFinde...
  function matcherFromTokens (line 2330) | function matcherFromTokens( tokens ) {
  function matcherFromGroupMatchers (line 2388) | function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
  function winnow (line 2726) | function winnow( elements, qualifier, not ) {
  function sibling (line 3033) | function sibling( cur, dir ) {
  function createOptions (line 3109) | function createOptions( options ) {
  function completed (line 3544) | function completed() {
  function Data (line 3655) | function Data() {
  function dataAttr (line 3865) | function dataAttr( elem, key, data ) {
  function adjustCSS (line 4182) | function adjustCSS( elem, prop, valueParts, tween ) {
  function getAll (line 4271) | function getAll( context, tag ) {
  function setGlobalEval (line 4288) | function setGlobalEval( elems, refElements ) {
  function buildFragment (line 4304) | function buildFragment( elems, context, scripts, selection, ignored ) {
  function returnTrue (line 4425) | function returnTrue() {
  function returnFalse (line 4429) | function returnFalse() {
  function safeActiveElement (line 4435) | function safeActiveElement() {
  function on (line 4441) | function on( elem, types, selector, data, fn, one ) {
  function manipulationTarget (line 5132) | function manipulationTarget( elem, content ) {
  function disableScript (line 5142) | function disableScript( elem ) {
  function restoreScript (line 5146) | function restoreScript( elem ) {
  function cloneCopyEvent (line 5158) | function cloneCopyEvent( src, dest ) {
  function fixInput (line 5193) | function fixInput( src, dest ) {
  function domManip (line 5206) | function domManip( collection, args, callback, ignored ) {
  function remove (line 5296) | function remove( elem, selector, keepData ) {
  function actualDisplay (line 5587) | function actualDisplay( name, doc ) {
  function defaultDisplay (line 5603) | function defaultDisplay( nodeName ) {
  function computeStyleTests (line 5699) | function computeStyleTests() {
  function curCSS (line 5789) | function curCSS( elem, name, computed ) {
  function addGetHookIf (line 5839) | function addGetHookIf( conditionFn, hookFn ) {
  function vendorPropName (line 5876) | function vendorPropName( name ) {
  function setPositiveNumber (line 5895) | function setPositiveNumber( elem, value, subtract ) {
  function augmentWidthOrHeight (line 5907) | function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
  function getWidthOrHeight (line 5951) | function getWidthOrHeight( elem, name, extra ) {
  function showHide (line 6009) | function showHide( elements, show ) {
  function Tween (line 6348) | function Tween( elem, options, prop, end, easing ) {
  function createFxNow (line 6472) | function createFxNow() {
  function genFx (line 6480) | function genFx( type, includeWidth ) {
  function createTween (line 6500) | function createTween( value, prop, animation ) {
  function defaultPrefilter (line 6514) | function defaultPrefilter( elem, props, opts ) {
  function propFilter (line 6650) | function propFilter( props, specialEasing ) {
  function Animation (line 6687) | function Animation( elem, properties, options ) {
  function getClass (line 7360) | function getClass( elem ) {
  function addToPrefiltersOrTransports (line 8025) | function addToPrefiltersOrTransports( structure ) {
  function inspectPrefiltersOrTransports (line 8059) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
  function ajaxExtend (line 8088) | function ajaxExtend( target, src ) {
  function ajaxHandleResponses (line 8108) | function ajaxHandleResponses( s, jqXHR, responses ) {
  function ajaxConvert (line 8166) | function ajaxConvert( s, response, jqXHR, isSuccess ) {
  function done (line 8671) | function done( status, nativeStatusText, responses, headers ) {
  function buildParams (line 8924) | function buildParams( prefix, obj, traditional, add ) {
  function getWindow (line 9507) | function getWindow( elem ) {

FILE: public/static/plugins/wangeditor/js/wangEditor.js
  function emptyFn (line 255) | function emptyFn() {}
  function commandFn (line 582) | function commandFn() {
  function hidePanelAndModal (line 668) | function hidePanelAndModal() {
  function _matchesSelectorForIE (line 720) | function _matchesSelectorForIE(selector) {
  function _getRedoList (line 794) | function _getRedoList(editor) {
  function _getUndoList (line 800) | function _getUndoList(editor) {
  function _handle (line 808) | function _handle(editor, data, type) {
  function show (line 1248) | function show() {
  function hide (line 1251) | function hide() {
  function divHandler (line 2263) | function divHandler() {
  function handle (line 2449) | function handle(elem) {
  function getResult (line 2503) | function getResult(elem) {
  function removeAttrs (line 2562) | function removeAttrs(elem) {
  function save (line 2774) | function save() {
  function saveSync (line 2779) | function saveSync() {
  function saveAync (line 2790) | function saveAync() {
  function doOnchange (line 2831) | function doOnchange() {
  function addAndShowTip (line 2964) | function addAndShowTip($target) {
  function removeTip (line 3005) | function removeTip() {
  function check (line 3584) | function check(menuId) {
  function checkElemFn (line 3785) | function checkElemFn(elem) {
  function commandFn (line 3921) | function commandFn() {
  function callback (line 3954) | function callback() {
  function updateValue (line 3993) | function updateValue() {
  function commandFn (line 4157) | function commandFn() {
  function callback (line 4164) | function callback() {
  function commandFn (line 4192) | function commandFn() {
  function callback (line 4214) | function callback() {
  function commandFn (line 4293) | function commandFn() {
  function callback (line 4296) | function callback() {
  function beforeEvent (line 4478) | function beforeEvent(e) {
  function afterEvent (line 4489) | function afterEvent(e) {
  function commandFn (line 4927) | function commandFn() {
  function callback (line 4930) | function callback() {
  function insertEmotionImgs (line 5085) | function insertEmotionImgs(data, $tabContent) {
  function tabToggle (line 5268) | function tabToggle() {
  function hideUploadImg (line 5296) | function hideUploadImg() {
  function hideLinkImg (line 5303) | function hideLinkImg() {
  function hidePanel (line 5337) | function hidePanel() {
  function linkContentHandler (line 5347) | function linkContentHandler (editor, menu, $linkContent) {
  function locationFun (line 5591) | function locationFun(result){
  function callback (line 5755) | function callback() {
  function loadHljs (line 5879) | function loadHljs() {
  function contentHandle (line 6024) | function contentHandle($content) {
  function updateMenu (line 6155) | function updateMenu() {
  function undo (line 6208) | function undo() {
  function convertBase64UrlToBlob (line 6603) | function convertBase64UrlToBlob(urlData, filetype){
  function insertImg (line 6619) | function insertImg(src, event) {
  function updateProgress (line 6636) | function updateProgress(e) {
  function timeoutCallback (line 6686) | function timeoutCallback() {
  function render (line 6780) | function render() {
  function hideProgress (line 6807) | function hideProgress() {
  function clearInput (line 6968) | function clearInput() {
  function onloadFn (line 7112) | function onloadFn() {
  function show (line 7158) | function show() {
  function findPasteImgAndUpload (line 7204) | function findPasteImgAndUpload() {
  function render (line 7407) | function render() {
  function bindEvent (line 7425) | function bindEvent() {
  function show (line 7482) | function show() {
  function hide (line 7535) | function hide() {
  function imgLink (line 7621) | function imgLink(e, url) {
  function render (line 7682) | function render() {
  function bindToolbarEvent (line 7719) | function bindToolbarEvent() {
  function bindDragEvent (line 7916) | function bindDragEvent() {
  function show (line 7988) | function show() {
  function hide (line 8054) | function hide() {
  function isEmotion (line 8069) | function isEmotion(imgSrc) {
  function render (line 8152) | function render() {
  function setPosition (line 8166) | function setPosition() {
  function show (line 8194) | function show() {
  function hide (line 8218) | function hide() {
  function commandFn (line 8414) | function commandFn() {
  function commandFn (line 8433) | function commandFn() {

FILE: public/static/ueditor/dialogs/attachment/attachment.js
  function initTabs (line 19) | function initTabs() {
  function setTabFocus (line 32) | function setTabFocus(id) {
  function initButtons (line 56) | function initButtons() {
  function UploadFile (line 87) | function UploadFile(target) {
  function addFile (line 181) | function addFile(file) {
  function removeFile (line 316) | function removeFile(file) {
  function updateTotalProgress (line 323) | function updateTotalProgress() {
  function setState (line 341) | function setState(val, files) {
  function updateStatus (line 417) | function updateStatus() {
  function OnlineFile (line 568) | function OnlineFile(target) {

FILE: public/static/ueditor/dialogs/background/background.js
  function initTabs (line 12) | function initTabs(){
  function initColorSelector (line 35) | function initColorSelector () {
  function initColorPicker (line 77) | function initColorPicker() {
  function initImagePanel (line 116) | function initImagePanel() {
  function updateFormState (line 121) | function updateFormState (radio, color, url, align, x, y) {
  function updateBackground (line 158) | function updateBackground () {
  function OnlineImage (line 184) | function OnlineImage(target) {

FILE: public/static/ueditor/dialogs/charts/charts.js
  function initChartsTypeView (line 49) | function initChartsTypeView () {
  function renderTable (line 64) | function renderTable ( table ) {
  function initUserConfig (line 104) | function initUserConfig ( config ) {
  function initEvent (line 125) | function initEvent () {
  function renderCharts (line 201) | function renderCharts () {
  function updateViewType (line 253) | function updateViewType ( index ) {
  function collectData (line 259) | function collectData () {
  function getUserConfig (line 283) | function getUserConfig () {
  function setUserConfig (line 302) | function setUserConfig ( config ) {
  function getSeriesAndCategories (line 317) | function getSeriesAndCategories () {
  function getTableDataFormat (line 367) | function getTableDataFormat () {
  function disableNotPieConfig (line 379) | function disableNotPieConfig() {
  function enableNotPieConfig (line 388) | function enableNotPieConfig() {
  function updateConfigItem (line 394) | function updateConfigItem ( value ) {
  function getSeriesForPieChart (line 420) | function getSeriesForPieChart () {
  function getTableData (line 445) | function getTableData () {
  function getTableInputValue (line 461) | function getTableInputValue () {
  function getCellValue (line 475) | function getCellValue ( cell ) {
  function syncTableData (line 505) | function syncTableData () {

FILE: public/static/ueditor/dialogs/emotion/emotion.js
  function initImgName (line 14) | function initImgName() {
  function initEvtHandler (line 30) | function initEvtHandler( conId ) {
  function InsertSmiley (line 47) | function InsertSmiley( url, evt ) {
  function switchTab (line 58) | function switchTab( index ) {
  function autoHeight (line 79) | function autoHeight( index ) {
  function createTab (line 117) | function createTab( tabName ) {
  function over (line 157) | function over( td, srcPath, posFlag ) {
  function out (line 164) | function out( td ) {
  function createTabList (line 171) | function createTabList( tabNum ) {
  function createArr (line 179) | function createArr( tabNum ) {

FILE: public/static/ueditor/dialogs/help/help.js
  function clickHandler (line 14) | function clickHandler( tabHeads,tabBodys,obj ) {
  function switchTab (line 41) | function switchTab( tabParentId ) {

FILE: public/static/ueditor/dialogs/image/image.js
  function initTabs (line 22) | function initTabs() {
  function setTabFocus (line 40) | function setTabFocus(id) {
  function initButtons (line 74) | function initButtons() {
  function initAlign (line 115) | function initAlign(){
  function setAlign (line 126) | function setAlign(align){
  function getAlign (line 139) | function getAlign(){
  function RemoteImage (line 146) | function RemoteImage(target) {
  function updatePreview (line 202) | function updatePreview(){
  function UploadImage (line 293) | function UploadImage(target) {
  function addFile (line 404) | function addFile(file) {
  function removeFile (line 534) | function removeFile(file) {
  function updateTotalProgress (line 541) | function updateTotalProgress() {
  function setState (line 559) | function setState(val, files) {
  function updateStatus (line 635) | function updateStatus() {
  function OnlineImage (line 792) | function OnlineImage(target) {
  function SearchImage (line 971) | function SearchImage() {

FILE: public/static/ueditor/dialogs/music/music.js
  function Music (line 1) | function Music() {

FILE: public/static/ueditor/dialogs/scrawl/scrawl.js
  function _appendStyle (line 419) | function _appendStyle() {
  function _getDom (line 441) | function _getDom() {
  function ue_callback (line 570) | function ue_callback(url, state) {
  function removeMaskLayer (line 615) | function removeMaskLayer() {
  function addMaskLayer (line 622) | function addMaskLayer(html) {
  function exec (line 629) | function exec(scrawlObj) {

FILE: public/static/ueditor/dialogs/searchreplace/searchreplace.js
  function clickHandler (line 19) | function clickHandler( tabHeads,tabBodys,obj ) {
  function switchTab (line 43) | function switchTab( tabParentId ) {
  function getMatchCase (line 61) | function getMatchCase(id) {

FILE: public/static/ueditor/dialogs/spechars/spechars.js
  function toArray (line 55) | function toArray(str) {

FILE: public/static/ueditor/dialogs/video/video.js
  function initTabs (line 24) | function initTabs(){
  function initVideo (line 43) | function initVideo(){
  function addOkListener (line 73) | function addOkListener(){
  function updateAlignButton (line 98) | function updateAlignButton( align ) {
  function insertSingle (line 116) | function insertSingle(){
  function insertSearch (line 135) | function insertSearch(id){
  function findFocus (line 156) | function findFocus( id, returnProperty ) {
  function convert_url (line 167) | function convert_url(url){
  function checkNum (line 190) | function checkNum( nodes ) {
  function isNumber (line 207) | function isNumber( value ) {
  function createAlignButton (line 215) | function createAlignButton( ids ) {
  function switchSelect (line 235) | function switchSelect( selectParentId ) {
  function addUrlChangeListener (line 252) | function addUrlChangeListener(url){
  function createPreviewVideo (line 268) | function createPreviewVideo(url){
  function insertUpload (line 286) | function insertUpload(){
  function initUpload (line 312) | function initUpload(){
  function UploadFile (line 318) | function UploadFile(target) {
  function addFile (line 412) | function addFile(file) {
  function removeFile (line 547) | function removeFile(file) {
  function updateTotalProgress (line 554) | function updateTotalProgress() {
  function setState (line 572) | function setState(val, files) {
  function updateStatus (line 648) | function updateStatus() {

FILE: public/static/ueditor/dialogs/wordimage/tangram.js
  function _createString (line 577) | function _createString(){
  function _checkReady (line 587) | function _checkReady(target){
  function _callFn (line 602) | function _callFn(callQueue, target){
  function _createFunName (line 618) | function _createFunName(fun){
  function _render (line 639) | function _render(options){
  function _check (line 728) | function _check(){
  function _call (line 743) | function _call(){
  function getCallBack (line 1197) | function getCallBack(onTimeOut){
  function encodeString (line 1354) | function encodeString(source) {
  function encodeArray (line 1376) | function encodeArray(source) {
  function pad (line 1405) | function pad(source) {
  function encodeDate (line 1413) | function encodeDate(source){

FILE: public/static/ueditor/dialogs/wordimage/wordimage.js
  function hideFlash (line 24) | function hideFlash(){
  function addOkListener (line 28) | function addOkListener() {
  function addUploadListener (line 59) | function addUploadListener() {
  function showLocalPath (line 66) | function showLocalPath(id) {
  function createFlashUploader (line 83) | function createFlashUploader(opt, callbacks) {
  function extendProperty (line 112) | function extendProperty(fromObj, toObj) {
  function getPasteData (line 123) | function getPasteData(id) {
  function createCopyButton (line 131) | function createCopyButton(id, dataFrom) {

FILE: public/static/ueditor/php/Uploader.class.php
  class Uploader (line 10) | class Uploader
    method __construct (line 53) | public function __construct($fileField, $config, $type = "upload")
    method upFile (line 73) | private function upFile()
    method upBase64 (line 132) | private function upBase64()
    method saveRemote (line 173) | private function saveRemote()
    method getStateInfo (line 266) | private function getStateInfo($errCode)
    method getFileExt (line 275) | private function getFileExt()
    method getFullName (line 284) | private function getFullName()
    method getFileName (line 318) | private function getFileName () {
    method getFilePath (line 326) | private function getFilePath()
    method checkType (line 342) | private function checkType()
    method checkSize (line 351) | private function  checkSize()
    method getFileInfo (line 360) | public function getFileInfo()

FILE: public/static/ueditor/php/action_list.php
  function getfiles (line 71) | function getfiles($path, $allowFiles, &$files = array())

FILE: public/static/ueditor/third-party/SyntaxHighlighter/shCore.js
  function clone (line 499) | function clone (regex, additionalFlags) {
  function getNativeFlags (line 513) | function getNativeFlags (regex) {
  function runTokens (line 521) | function runTokens (pattern, index, scope, context) {
  function indexOf (line 550) | function indexOf (array, item, from) {
  function defaultGetHtml (line 801) | function defaultGetHtml(highlighter, name)
  function getValue (line 839) | function getValue(name)
  function hasClass (line 1036) | function hasClass(target, className)
  function addClass (line 1046) | function addClass(target, className)
  function removeClass (line 1057) | function removeClass(target, className)
  function toArray (line 1068) | function toArray(source)
  function splitLines (line 1083) | function splitLines(block)
  function getHighlighterId (line 1093) | function getHighlighterId(id)
  function getHighlighterById (line 1104) | function getHighlighterById(id)
  function getHighlighterDivById (line 1114) | function getHighlighterDivById(id)
  function storeHighlighter (line 1124) | function storeHighlighter(highlighter)
  function findElement (line 1137) | function findElement(target, search, reverse /* optional */)
  function findParentElement (line 1170) | function findParentElement(target, className)
  function indexOf (line 1182) | function indexOf(array, searchElement, fromIndex)
  function guid (line 1196) | function guid(prefix)
  function merge (line 1208) | function merge(obj1, obj2)
  function toBoolean (line 1226) | function toBoolean(value)
  function popup (line 1241) | function popup(url, name, width, height, options)
  function attachEvent (line 1265) | function attachEvent(obj, type, func, scope)
  function alert (line 1297) | function alert(str)
  function findBrush (line 1309) | function findBrush(alias, showAlert)
  function eachLine (line 1352) | function eachLine(str, callback)
  function trimFirstAndLastLines (line 1370) | function trimFirstAndLastLines(str)
  function parseParams (line 1390) | function parseParams(str)
  function wrapLinesWithCode (line 1434) | function wrapLinesWithCode(str, css)
  function padNumber (line 1484) | function padNumber(number, length)
  function processTabs (line 1501) | function processTabs(code, tabSize)
  function processSmartTabs (line 1518) | function processSmartTabs(code, tabSize)
  function fixInputString (line 1566) | function fixInputString(str)
  function trim (line 1585) | function trim(str)
  function unindent (line 1595) | function unindent(str)
  function matchesSortCallback (line 1637) | function matchesSortCallback(m1, m2)
  function getMatches (line 1664) | function getMatches(code, regexInfo)
  function processUrls (line 1695) | function processUrls(code)
  function getSyntaxHighlighterScriptTags (line 1723) | function getSyntaxHighlighterScriptTags()
  function stripCData (line 1742) | function stripCData(original)
  function quickCodeHandler (line 1774) | function quickCodeHandler(e)
  function offsetMatches (line 1880) | function offsetMatches(matches, offset)
  function process (line 1886) | function process(match, info)
  function getBrushNameCss (line 2169) | function getBrushNameCss(match)
  function Brush (line 2388) | function Brush()
  function Brush (line 2432) | function Brush()
  function Brush (line 2491) | function Brush()
  function Brush (line 2534) | function Brush()
  function Brush (line 2618) | function Brush()
  function Brush (line 2699) | function Brush()
  function Brush (line 2748) | function Brush()
  function Brush (line 2823) | function Brush()
  function Brush (line 2862) | function Brush()
  function Brush (line 2887) | function Brush()
  function Brush (line 2923) | function Brush()
  function Brush (line 2974) | function Brush()
  function Brush (line 3015) | function Brush()
  function Brush (line 3057) | function Brush()
  function Brush (line 3093) | function Brush()
  function Brush (line 3170) | function Brush()
  function Brush (line 3242) | function Brush()
  function Brush (line 3259) | function Brush()
  function Brush (line 3318) | function Brush()
  function Brush (line 3366) | function Brush()
  function Brush (line 3405) | function Brush()
  function Brush (line 3483) | function Brush()
  function Brush (line 3518) | function Brush()
  function Brush (line 3568) | function Brush()
  function Brush (line 3608) | function Brush()

FILE: public/static/ueditor/third-party/codemirror/codemirror.js
  function CodeMirror (line 11) | function CodeMirror(place, givenOptions) {
  function lookupKey (line 1870) | function lookupKey(name, extraMap, map) {
  function isModifierKey (line 1885) | function isModifierKey(event) {
  function save (line 1896) | function save() {textarea.value = instance.getValue();}
  function wrappedSubmit (line 1902) | function wrappedSubmit() {
  function copyState (line 1933) | function copyState(mode, state) {
  function startState (line 1945) | function startState(mode, a1, a2) {
  function StringStream (line 1951) | function StringStream(string, tabSize) {
  function cased (line 1990) | function cased(str) {return caseInsensitive ? str.toLowerCase() : str;}
  function MarkedText (line 2006) | function MarkedText(from, to, className, set) {
  function Bookmark (line 2036) | function Bookmark(pos) {
  function Line (line 2072) | function Line(text, styles) {
  function span (line 2234) | function span(text, style) {
  function nextMark (line 2259) | function nextMark() {
  function copyStyles (line 2306) | function copyStyles(from, to, source, dest) {
  function LeafChunk (line 2322) | function LeafChunk(lines) {
  function BranchChunk (line 2356) | function BranchChunk(children) {
  function getLineAt (line 2454) | function getLineAt(chunk, n) {
  function lineNo (line 2464) | function lineNo(line) {
  function lineAtHeight (line 2475) | function lineAtHeight(chunk, h) {
  function heightAtLine (line 2493) | function heightAtLine(chunk, n) {
  function History (line 2510) | function History() {
  function stopMethod (line 2541) | function stopMethod() {e_stop(this);}
  function addStop (line 2543) | function addStop(event) {
  function e_preventDefault (line 2548) | function e_preventDefault(e) {
  function e_stopPropagation (line 2552) | function e_stopPropagation(e) {
  function e_stop (line 2556) | function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);}
  function e_target (line 2561) | function e_target(e) {return e.target || e.srcElement;}
  function e_button (line 2562) | function e_button(e) {
  function connect (line 2571) | function connect(node, type, handler, disconnect) {
  function Delayed (line 2584) | function Delayed() {this.id = null;}
  function countColumn (line 2610) | function countColumn(string, end, tabSize) {
  function computedStyle (line 2622) | function computedStyle(elt) {
  function eltOffset (line 2629) | function eltOffset(node, screen) {
  function eltText (line 2665) | function eltText(node) {
  function posEq (line 2670) | function posEq(a, b) {return a.line == b.line && a.ch == b.ch;}
  function posLess (line 2671) | function posLess(a, b) {return a.line < b.line || (a.line == b.line && a...
  function copyPos (line 2672) | function copyPos(x) {return {line: x.line, ch: x.ch};}
  function htmlEscape (line 2675) | function htmlEscape(str) {
  function editEnd (line 2697) | function editEnd(from, to) {
  function indexOf (line 2705) | function indexOf(collection, elt) {
  function isWordChar (line 2711) | function isWordChar(ch) {
  function inText (line 2775) | function inText(stream, state) {
  function inTag (line 2821) | function inTag(stream, state) {
  function inAttribute (line 2842) | function inAttribute(quote) {
  function inBlock (line 2854) | function inBlock(style, terminator) {
  function doctype (line 2866) | function doctype(depth) {
  function pass (line 2888) | function pass() {
  function cont (line 2891) | function cont() {
  function pushContext (line 2896) | function pushContext(tagName, startOfLine) {
  function popContext (line 2906) | function popContext() {
  function element (line 2910) | function element(type) {
  function endtag (line 2926) | function endtag(startOfLine) {
  function endclosetag (line 2935) | function endclosetag(err) {
  function attributes (line 2944) | function attributes(type) {
  function attvalue (line 2950) | function attvalue(type) {
  function attvaluemaybe (line 2955) | function attvaluemaybe(type) {
  function kw (line 3021) | function kw(type) {return {type: type, style: "keyword"};}
  function chain (line 3037) | function chain(stream, state, f) {
  function nextUntilUnescaped (line 3042) | function nextUntilUnescaped(stream, end) {
  function ret (line 3055) | function ret(tp, style, cont) {
  function jsTokenBase (line 3060) | function jsTokenBase(stream, state) {
  function jsTokenString (line 3108) | function jsTokenString(quote) {
  function jsTokenComment (line 3116) | function jsTokenComment(stream, state) {
  function JSLexical (line 3132) | function JSLexical(indented, column, type, align, prev, info) {
  function inScope (line 3141) | function inScope(state, varname) {
  function parseJS (line 3146) | function parseJS(state, style, type, content, stream) {
  function pass (line 3170) | function pass() {
  function cont (line 3173) | function cont() {
  function register (line 3177) | function register(varname) {
  function pushcontext (line 3190) | function pushcontext() {
  function popcontext (line 3194) | function popcontext() {
  function pushlex (line 3198) | function pushlex(type, info) {
  function poplex (line 3206) | function poplex() {
  function expect (line 3216) | function expect(wanted) {
  function statement (line 3224) | function statement(type) {
  function expression (line 3242) | function expression(type) {
  function maybeexpression (line 3252) | function maybeexpression(type) {
  function maybeoperator (line 3257) | function maybeoperator(type, value) {
  function maybelabel (line 3265) | function maybelabel(type) {
  function property (line 3269) | function property(type) {
  function objprop (line 3272) | function objprop(type) {
  function commasep (line 3276) | function commasep(what, end) {
  function block (line 3287) | function block(type) {
  function vardef1 (line 3291) | function vardef1(type, value) {
  function vardef2 (line 3295) | function vardef2(type, value) {
  function forspec1 (line 3299) | function forspec1(type) {
  function formaybein (line 3305) | function formaybein(type, value) {
  function forspec2 (line 3309) | function forspec2(type, value) {
  function forspec3 (line 3314) | function forspec3(type) {
  function functiondef (line 3317) | function functiondef(type, value) {
  function funarg (line 3321) | function funarg(type, value) {
  function ret (line 3377) | function ret(style, tp) {type = tp; return style;}
  function tokenBase (line 3379) | function tokenBase(stream, state) {
  function tokenCComment (line 3420) | function tokenCComment(stream, state) {
  function tokenSGMLComment (line 3432) | function tokenSGMLComment(stream, state) {
  function tokenString (line 3444) | function tokenString(quote) {
  function html (line 3504) | function html(stream, state) {
  function maybeBackup (line 3520) | function maybeBackup(stream, pat, style) {
  function javascript (line 3526) | function javascript(stream, state) {
  function css (line 3536) | function css(stream, state) {

FILE: public/static/ueditor/third-party/highcharts/adapters/standalone-framework.js
  function o (line 8) | function o(c){function a(a,b,d){a.removeEventListener(b,d,!1)}function d...

FILE: public/static/ueditor/third-party/highcharts/adapters/standalone-framework.src.js
  function augment (line 29) | function augment(obj) {

FILE: public/static/ueditor/third-party/highcharts/highcharts-more.js
  function J (line 8) | function J(a,b,c){this.init.call(this,a,b,c)}
  function K (line 8) | function K(a,b,c){a.call(this,b,c);if(this.chart.polar)this.closeSegment...
  function L (line 8) | function L(a,b){var c=this.chart,d=this.options.animation,g=this.group,f...

FILE: public/static/ueditor/third-party/highcharts/highcharts-more.src.js
  function Pane (line 42) | function Pane(options, chart, firstAxis) {
  function initArea (line 2028) | function initArea(proceed, chart, options) {
  function polarAnimate (line 2199) | function polarAnimate(proceed, init) {

FILE: public/static/ueditor/third-party/highcharts/highcharts.js
  function r (line 8) | function r(a,b){var c;a||(a={});for(c in b)a[c]=b[c];return a}
  function x (line 8) | function x(){var a,b=arguments.length,c={},d=function(a,b){var c,h;typeo...
  function C (line 8) | function C(a,b){return parseInt(a,b||10)}
  function ea (line 8) | function ea(a){return typeof a==="string"}
  function T (line 8) | function T(a){return typeof a===
  function Ia (line 9) | function Ia(a){return Object.prototype.toString.call(a)==="[object Array]"}
  function sa (line 9) | function sa(a){return typeof a==="number"}
  function na (line 9) | function na(a){return R.log(a)/R.LN10}
  function fa (line 9) | function fa(a){return R.pow(10,a)}
  function ga (line 9) | function ga(a,b){for(var c=a.length;c--;)if(a[c]===b){a.splice(c,1);break}}
  function u (line 9) | function u(a){return a!==w&&a!==null}
  function v (line 9) | function v(a,b,c){var d,e;if(ea(b))u(c)?a.setAttribute(b,c):a&&a.getAttr...
  function ja (line 9) | function ja(a){return Ia(a)?
  function o (line 10) | function o(){var a=arguments,b,c,d=a.length;for(b=0;b<d;b++)if(c=a[b],ty...
  function K (line 10) | function K(a,b){if(ta&&b&&b.opacity!==w)b.filter="alpha(opacity="+b.opac...
  function U (line 10) | function U(a,b,c,d,e){a=y.createElement(a);b&&r(a,b);e&&K(a,{padding:0,b...
  function ha (line 10) | function ha(a,b){var c=function(){};c.prototype=new a;r(c.prototype,b);r...
  function Aa (line 10) | function Aa(a,b,c,d){var e=M.lang,a=+a||0,f=b===-1?(a.toString().split("...
  function Ba (line 11) | function Ba(a,b){return Array((b||2)+1-String(a).length).join(0)+a}
  function mb (line 11) | function mb(a,b,c){var d=a[b];a[b]=function(){var a=Array.prototype.slic...
  function Ca (line 11) | function Ca(a,b){for(var c="{",d=!1,
  function nb (line 12) | function nb(a){return R.pow(10,P(R.log(a)/R.LN10))}
  function ob (line 12) | function ob(a,b,c,d){var e,c=o(c,1);e=a/c;b||(b=[1,2,2.5,5,10],d&&d.allo...
  function Cb (line 13) | function Cb(a,b){var c=b||[[Db,[1,2,5,10,20,25,50,100,200,500]],[pb,[1,2...
  function Eb (line 14) | function Eb(a,b,c,d){var e=[],f={},g=M.global.useUTC,h,i=new Date(b),j=a...
  function Jb (line 15) | function Jb(){this.symbol=this.color=0}
  function Kb (line 15) | function Kb(a,b){var c=a.length,d,e;for(e=0;e<c;e++)a[e].ss_i=e;a.sort(f...
  function Ja (line 16) | function Ja(a){for(var b=a.length,c=a[0];b--;)a[b]<c&&(c=a[b]);return c}
  function va (line 16) | function va(a){for(var b=a.length,c=a[0];b--;)a[b]>c&&(c=a[b]);return c}
  function Ka (line 16) | function Ka(a,b){for(var c in a)a[c]&&a[c]!==b&&a[c].destroy&&a[c].destr...
  function Ta (line 16) | function Ta(a){cb||(cb=U(Ea));a&&cb.appendChild(a);cb.innerHTML=""}
  function ka (line 16) | function ka(a,b){var c="Highcharts error #"+a+": www.highcharts.com/erro...
  function ia (line 16) | function ia(a){return parseFloat(a.toPrecision(14))}
  function La (line 17) | function La(a,b){Fa=o(a,b.animation)}
  function Lb (line 17) | function Lb(){var a=M.global.useUTC,b=a?"getUTC":"get",c=a?"setUTC":"set...
  function wa (line 17) | function wa(){}
  function Ma (line 17) | function Ma(a,b,c,d){this.axis=a;this.pos=b;this.type=c||"";this.isNew=!...
  function vb (line 17) | function vb(a,b){this.axis=a;if(b)this.options=
  function Mb (line 18) | function Mb(a,b,c,d,e,f){var g=a.chart.inverted;this.axis=a;this.isNegat...
  function db (line 18) | function db(){this.init.apply(this,arguments)}
  function wb (line 18) | function wb(){this.init.apply(this,arguments)}
  function xb (line 19) | function xb(a,b){this.init(a,b)}
  function eb (line 19) | function eb(a,b){this.init(a,b)}
  function yb (line 19) | function yb(){this.init.apply(this,arguments)}
  function j (line 72) | function j(){var a,b;a=o.element.style;L=(Oa===void 0||la===void 0||q.st...
  function k (line 73) | function k(){var a=q.styles,a=a&&a.textAlign,b=kb+da*(1-s),c;c=h?0:v;if(...
  function l (line 73) | function l(a,b){A?A.attr(a,b):lb[a]=b}
  function m (line 73) | function m(){o.add(q);q.attr({text:a,x:b,y:c});A&&u(e)&&q.attr({anchorX:...
  function a (line 93) | function a(){var a=b.length,d;for(d=0;d<a;d++)b[d]();b=[]}
  function a (line 193) | function a(a){var g=c.width||jb(d,"width"),h=c.height||jb(d,"height"),a=...
  function a (line 248) | function a(){var a={width:b.yAxis.len,height:b.xAxis.len};n(["group","ma...

FILE: public/static/ueditor/third-party/highcharts/highcharts.src.js
  function extend (line 128) | function extend(a, b) {
  function merge (line 145) | function merge() {
  function hash (line 188) | function hash() {
  function pInt (line 204) | function pInt(s, mag) {
  function isString (line 212) | function isString(s) {
  function isObject (line 220) | function isObject(obj) {
  function isArray (line 228) | function isArray(obj) {
  function isNumber (line 236) | function isNumber(n) {
  function log2lin (line 240) | function log2lin(num) {
  function lin2log (line 243) | function lin2log(num) {
  function erase (line 252) | function erase(arr, item) {
  function defined (line 267) | function defined(obj) {
  function attr (line 279) | function attr(elem, prop, value) {
  function splat (line 308) | function splat(obj) {
  function pick (line 316) | function pick() {
  function css (line 334) | function css(el, styles) {
  function createElement (line 351) | function createElement(tag, attribs, styles, parent, nopad) {
  function extendClass (line 373) | function extendClass(parent, members) {
  function numberFormat (line 387) | function numberFormat(number, decimals, decPoint, thousandsSep) {
  function pad (line 409) | function pad(number, length) {
  function wrap (line 422) | function wrap(obj, method, func) {
  function formatSingle (line 501) | function formatSingle(format, val) {
  function format (line 525) | function format(str, ctx) {
  function getMagnitude (line 575) | function getMagnitude(num) {
  function normalizeTickInterval (line 586) | function normalizeTickInterval(interval, multiples, magnitude, options) {
  function normalizeTimeTickInterval (line 629) | function normalizeTimeTickInterval(tickInterval, unitsOption) {
  function getTimeTicks (line 710) | function getTimeTicks(normalizedInterval, min, max, startOfWeek) {
  function ChartCounters (line 822) | function ChartCounters() {
  function stableSort (line 852) | function stableSort(arr, sortFunction) {
  function arrayMin (line 878) | function arrayMin(data) {
  function arrayMax (line 895) | function arrayMax(data) {
  function destroyObjectProperties (line 914) | function destroyObjectProperties(obj, except) {
  function discardElement (line 933) | function discardElement(element) {
  function error (line 949) | function error(code, stop) {
  function correctFloat (line 962) | function correctFloat(num) {
  function setAnimation (line 974) | function setAnimation(animation, chart) {
  function setTimeMethods (line 1821) | function setTimeMethods() {
  function setOptions (line 1854) | function setOptions(options) {
  function getOptions (line 1874) | function getOptions() {
  function init (line 1891) | function init(input) {
  function get (line 1925) | function get(format) {
  function brighten (line 1954) | function brighten(alpha) {
  function setOpacity (line 1979) | function setOpacity(alpha) {
  function SVGElement (line 2000) | function SVGElement() {}
  function updateBoxSize (line 4272) | function updateBoxSize() {
  function updateTextPadding (line 4312) | function updateTextPadding() {
  function boxAttr (line 4344) | function boxAttr(key, value) {
  function getSizeAfterAdd (line 4352) | function getSizeAfterAdd() {
  function drawDeferred (line 5727) | function drawDeferred() {
  function Tick (line 5763) | function Tick(axis, pos, type, noLabel) {
  function PlotLineOrBand (line 6170) | function PlotLineOrBand(axis, options) {
  function StackItem (line 6345) | function StackItem(axis, options, isNegative, x, stackOption, stacking) {
  function Axis (line 6456) | function Axis() {
  function Tooltip (line 8560) | function Tooltip() {
  function Pointer (line 9010) | function Pointer(chart, options) {
  function Legend (line 9848) | function Legend(chart, options) {
  function Chart (line 10518) | function Chart() {
  function reflow (line 11514) | function reflow(e) {
  function setInvert (line 14818) | function setInvert() {

FILE: public/static/ueditor/third-party/highcharts/modules/annotations.js
  function m (line 1) | function m(a){return typeof a==="number"}
  function n (line 1) | function n(a){return a!==D&&a!==null}

FILE: public/static/ueditor/third-party/highcharts/modules/annotations.src.js
  function defaultOptions (line 26) | function defaultOptions(shapeType) {
  function isArray (line 64) | function isArray(obj) {
  function isNumber (line 68) | function isNumber(n) {
  function defined (line 72) | function defined(obj) {
  function translatePath (line 76) | function translatePath(d, xAxis, yAxis, xOffset, yOffset) {

FILE: public/static/ueditor/third-party/highcharts/modules/canvas-tools.js
  function RGBColor (line 21) | function RGBColor(m){this.ok=!1;m.charAt(0)=="#"&&(m=m.substr(1,6));var ...
  function m (line 31) | function m(){var a={FRAMERATE:30,MAX_VIRTUAL_PIXELS:3E4};a.init=function...

FILE: public/static/ueditor/third-party/highcharts/modules/canvas-tools.src.js
  function RGBColor (line 8) | function RGBColor(color_string)
  function build (line 382) | function build() {

FILE: public/static/ueditor/third-party/highcharts/modules/drilldown.js
  function q (line 1) | function q(b,a,c){return"rgba("+[Math.round(b[0]+(a[0]-b[0])*c),Math.rou...

FILE: public/static/ueditor/third-party/highcharts/modules/drilldown.src.js
  function tweenColors (line 28) | function tweenColors(startColor, endColor, pos) {

FILE: public/static/ueditor/third-party/highcharts/modules/map.js
  function x (line 8) | function x(a,b,c){for(var d=4,e=[];d--;)e[d]=Math.round(b.rgba[d]+(a.rgb...

FILE: public/static/ueditor/third-party/highcharts/modules/map.src.js
  function tweenColors (line 40) | function tweenColors(from, to, pos) {

FILE: public/static/ueditor/third-party/highcharts/modules/no-data-to-display.js
  function f (line 10) | function f(){return!!this.points.length}
  function g (line 10) | function g(){this.hasData()?this.hideNoData():this.showNoData()}

FILE: public/static/ueditor/third-party/highcharts/modules/no-data-to-display.src.js
  function hasDataPie (line 43) | function hasDataPie() {
  function handleNoData (line 111) | function handleNoData() {

FILE: public/static/ueditor/third-party/jquery-1.10.2.js
  function isArraylike (line 983) | function isArraylike( obj ) {
  function Sizzle (line 1183) | function Sizzle( selector, context, results, seed ) {
  function createCache (line 1298) | function createCache() {
  function markFunction (line 1316) | function markFunction( fn ) {
  function assert (line 1325) | function assert( fn ) {
  function addHandle (line 1347) | function addHandle( attrs, handler ) {
  function siblingCheck (line 1362) | function siblingCheck( a, b ) {
  function createInputPseudo (line 1389) | function createInputPseudo( type ) {
  function createButtonPseudo (line 1400) | function createButtonPseudo( type ) {
  function createPositionalPseudo (line 1411) | function createPositionalPseudo( fn ) {
  function setFilters (line 2394) | function setFilters() {}
  function tokenize (line 2398) | function tokenize( selector, parseOnly ) {
  function toSelector (line 2465) | function toSelector( tokens ) {
  function addCombinator (line 2475) | function addCombinator( matcher, combinator, base ) {
  function elementMatcher (line 2525) | function elementMatcher( matchers ) {
  function condense (line 2539) | function condense( unmatched, map, filter, context, xml ) {
  function setMatcher (line 2560) | function setMatcher( preFilter, selector, matcher, postFilter, postFinde...
  function matcherFromTokens (line 2653) | function matcherFromTokens( tokens ) {
  function matcherFromGroupMatchers (line 2708) | function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
  function multipleContexts (line 2836) | function multipleContexts( selector, contexts, results ) {
  function select (line 2845) | function select( selector, context, results, seed ) {
  function createOptions (line 2985) | function createOptions( options ) {
  function internalData (line 3568) | function internalData( elem, name, data, pvt /* Internal Use Only */ ){
  function internalRemoveData (line 3657) | function internalRemoveData( elem, name, pvt ) {
  function dataAttr (line 3854) | function dataAttr( elem, key, data ) {
  function isEmptyDataObject (line 3886) | function isEmptyDataObject( obj ) {
  function returnTrue (line 4712) | function returnTrue() {
  function returnFalse (line 4716) | function returnFalse() {
  function safeActiveElement (line 4720) | function safeActiveElement() {
  function sibling (line 5838) | function sibling( cur, dir ) {
  function winnow (line 5956) | function winnow( elements, qualifier, not ) {
  function createSafeFragment (line 5984) | function createSafeFragment( document ) {
  function manipulationTarget (line 6298) | function manipulationTarget( elem, content ) {
  function disableScript (line 6308) | function disableScript( elem ) {
  function restoreScript (line 6312) | function restoreScript( elem ) {
  function setGlobalEval (line 6323) | function setGlobalEval( elems, refElements ) {
  function cloneCopyEvent (line 6331) | function cloneCopyEvent( src, dest ) {
  function fixCloneNodeIssues (line 6359) | function fixCloneNodeIssues( src, dest ) {
  function getAll (line 6452) | function getAll( context, tag ) {
  function fixDefaultChecked (line 6475) | function fixDefaultChecked( elem ) {
  function vendorPropName (line 6817) | function vendorPropName( style, name ) {
  function isHidden (line 6839) | function isHidden( elem, el ) {
  function showHide (line 6846) | function showHide( elements, show ) {
  function setPositiveNumber (line 7175) | function setPositiveNumber( elem, value, subtract ) {
  function augmentWidthOrHeight (line 7183) | function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
  function getWidthOrHeight (line 7222) | function getWidthOrHeight( elem, name, extra ) {
  function css_defaultDisplay (line 7266) | function css_defaultDisplay( nodeName ) {
  function actualDisplay (line 7298) | function actualDisplay( name, doc ) {
  function buildParams (line 7527) | function buildParams( prefix, obj, traditional, add ) {
  function addToPrefiltersOrTransports (line 7642) | function addToPrefiltersOrTransports( structure ) {
  function inspectPrefiltersOrTransports (line 7674) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
  function ajaxExtend (line 7701) | function ajaxExtend( target, src ) {
  function done (line 8149) | function done( status, nativeStatusText, responses, headers ) {
  function ajaxHandleResponses (line 8296) | function ajaxHandleResponses( s, jqXHR, responses ) {
  function ajaxConvert (line 8351) | function ajaxConvert( s, response, jqXHR, isSuccess ) {
  function createStandardXHR (line 8619) | function createStandardXHR() {
  function createActiveXHR (line 8625) | function createActiveXHR() {
  function createFxNow (line 8871) | function createFxNow() {
  function createTween (line 8878) | function createTween( value, prop, animation ) {
  function Animation (line 8892) | function Animation( elem, properties, options ) {
  function propFilter (line 8996) | function propFilter( props, specialEasing ) {
  function defaultPrefilter (line 9063) | function defaultPrefilter( elem, props, opts ) {
  function Tween (line 9188) | function Tween( elem, options, prop, end, easing ) {
  function genFx (line 9412) | function genFx( type, includeWidth ) {
  function getWindow (line 9708) | function getWindow( elem ) {

FILE: public/static/ueditor/third-party/video-js/video.dev.js
  function returnTrue (line 410) | function returnTrue() { return true; }
  function returnFalse (line 411) | function returnFalse() { return false; }
  function F (line 656) | function F() {}
  function createMethod (line 5055) | function createMethod(methodName){
  function walk (line 6995) | function walk(holder, key) {

FILE: public/static/ueditor/third-party/video-js/video.js
  function m (line 1) | function m(){return function(){}}
  function p (line 1) | function p(a){return function(){return this[a]}}
  function s (line 1) | function s(a){return function(){return a}}
  function u (line 1) | function u(a,c,d){if("string"===typeof a){0===a.indexOf("#")&&(a=a.slice...
  function c (line 6) | function c(){return f}
  function d (line 6) | function d(){return l}
  function e (line 8) | function e(){u.o(a,c,e);d.apply(this,arguments)}
  function c (line 9) | function c(){}
  function e (line 10) | function e(){return c.apply(a,arguments)}
  function D (line 25) | function D(a){a.u("vjs-lock-showing")}
  function E (line 26) | function E(a,c,d,e){if(d!==b)return a.a.style[c]=-1!==(""+d).indexOf("%"...
  function F (line 32) | function F(a,c){var d,e,g,j;d=a.a;e=u.ad(d);j=g=d.offsetWidth;d=a.handle...
  function ca (line 34) | function ca(a,c){a.Z(c);c.d("click",u.bind(a,function(){D(this)}))}
  function H (line 37) | function H(a){a.pa=f;a.wa.n("vjs-lock-showing");a.a.setAttribute("aria-p...
  function G (line 38) | function G(a){a.pa=l;D(a.wa);a.a.setAttribute("aria-pressed",l)}
  function da (line 42) | function da(a){var c={sources:[],tracks:[]};u.k.B(c,u.xb(a));if(a.hasChi...
  function I (line 45) | function I(a,c,d){a.h?(a.aa=l,a.h.D(),a.Eb&&(a.Eb=l,clearInterval(a.Ra))...
  function J (line 46) | function J(a){a.Fb=l;a.za();a.o("play",a.Cc);a.o("pause",a.za)}
  function L (line 48) | function L(a,c,d){if(a.h&&!a.h.aa)a.h.L(function(){this[c](d)});else try...
  function K (line 48) | function K(a,c){if(a.h&&a.h.aa)try{return a.h[c]()}catch(d){throw a.h[c]...
  function M (line 53) | function M(a){a.cd=l;u.o(document,"keydown",a.lc);document.documentEleme...
  function ea (line 86) | function ea(){var a=u.media.Va[i];return function(){throw Error('The "'+...
  function fa (line 99) | function fa(){var a=R[T],c=a.charAt(0).toUpperCase()+a.slice(1);Q["set"+...
  function U (line 99) | function U(a){Q[a]=function(){return this.a.vjs_getProperty(a)}}
  function V (line 105) | function V(a){a.Aa=a.Aa||[];return a.Aa}
  function W (line 105) | function W(a,c,d){for(var e=a.Aa,g=0,j=e.length,k,q;g<j;g++)k=e[g],k.id(...
  function X (line 108) | function X(a){0===a.ha&&a.load();0===a.ga&&(a.b.d("timeupdate",u.bind(a,...
  function Y (line 110) | function Y(a){var c=a.split(":");a=0;var d,e,g;3==c.length?(d=c[0],e=c[1...
  function d (line 121) | function d(a,e){var k,q,n=a[e];if(n&&"object"===typeof n)for(k in n)Obje...
  function $ (line 123) | function $(a,c){var d=a.split("."),e=ga;!(d[0]in e)&&e.execScript&&e.exe...

FILE: public/static/ueditor/third-party/webuploader/webuploader.custom.js
  function uncurryThis (line 194) | function uncurryThis( fn ) {
  function bindFn (line 200) | function bindFn( fn, context ) {
  function createObject (line 206) | function createObject( proto ) {
  function findHandlers (line 495) | function findHandlers( arr, name, callback, context ) {
  function eachEvent (line 505) | function eachEvent( events, callback, iterator ) {
  function triggerHanders (line 512) | function triggerHanders( events, args ) {
  function Uploader (line 721) | function Uploader( opts ) {
  function Runtime (line 903) | function Runtime( options ) {
  function RuntimeClient (line 1036) | function RuntimeClient( component, standalone ) {
  function Blob (line 1139) | function Blob( ruid, source ) {
  function File (line 1183) | function File( ruid, file ) {
  function FilePicker (line 1223) | function FilePicker( opts ) {
  function isArrayLike (line 1358) | function isArrayLike( obj ) {
  function Widget (line 1375) | function Widget( uploader ) {
  function Image (line 1653) | function Image( opts ) {
  function gid (line 2022) | function gid() {
  function WUFile (line 2033) | function WUFile( source ) {
  function Queue (line 2210) | function Queue() {
  function Transport (line 2758) | function Transport( opts ) {
  function CuteFile (line 2971) | function CuteFile( file, chunkSize ) {
  function CompBase (line 3541) | function CompBase( owner, runtime ) {
  function Html5Runtime (line 3573) | function Html5Runtime() {
  function detectVerticalSquash (line 4559) | function detectVerticalSquash( img, iw, ih ) {
  function detectSubsampling (line 4611) | function detectSubsampling( img ) {
  function JPEGEncoder (line 4727) | function JPEGEncoder(quality) {

FILE: public/static/ueditor/third-party/webuploader/webuploader.flashonly.js
  function uncurryThis (line 194) | function uncurryThis( fn ) {
  function bindFn (line 200) | function bindFn( fn, context ) {
  function createObject (line 206) | function createObject( proto ) {
  function findHandlers (line 495) | function findHandlers( arr, name, callback, context ) {
  function eachEvent (line 505) | function eachEvent( events, callback, iterator ) {
  function triggerHanders (line 512) | function triggerHanders( events, args ) {
  function Uploader (line 721) | function Uploader( opts ) {
  function Runtime (line 903) | function Runtime( options ) {
  function RuntimeClient (line 1036) | function RuntimeClient( component, standalone ) {
  function Blob (line 1139) | function Blob( ruid, source ) {
  function File (line 1183) | function File( ruid, file ) {
  function FilePicker (line 1223) | function FilePicker( opts ) {
  function isArrayLike (line 1358) | function isArrayLike( obj ) {
  function Widget (line 1375) | function Widget( uploader ) {
  function Image (line 1653) | function Image( opts ) {
  function gid (line 2022) | function gid() {
  function WUFile (line 2033) | function WUFile( source ) {
  function Queue (line 2210) | function Queue() {
  function Transport (line 2758) | function Transport( opts ) {
  function CuteFile (line 2971) | function CuteFile( file, chunkSize ) {
  function hashString (line 3715) | function hashString( str ) {
  function CompBase (line 3761) | function CompBase( owner, runtime ) {
  function getFlashVersion (line 3795) | function getFlashVersion() {
  function FlashRuntime (line 3813) | function FlashRuntime() {

FILE: public/static/ueditor/third-party/webuploader/webuploader.html5only.js
  function uncurryThis (line 194) | function uncurryThis( fn ) {
  function bindFn (line 200) | function bindFn( fn, context ) {
  function createObject (line 206) | function createObject( proto ) {
  function findHandlers (line 495) | function findHandlers( arr, name, callback, context ) {
  function eachEvent (line 505) | function eachEvent( events, callback, iterator ) {
  function triggerHanders (line 512) | function triggerHanders( events, args ) {
  function Uploader (line 721) | function Uploader( opts ) {
  function Runtime (line 903) | function Runtime( options ) {
  function RuntimeClient (line 1036) | function RuntimeClient( component, standalone ) {
  function DragAndDrop (line 1142) | function DragAndDrop( opts ) {
  function isArrayLike (line 1193) | function isArrayLike( obj ) {
  function Widget (line 1210) | function Widget( uploader ) {
  function FilePaste (line 1419) | function FilePaste( opts ) {
  function Blob (line 1500) | function Blob( ruid, source ) {
  function File (line 1544) | function File( ruid, file ) {
  function FilePicker (line 1584) | function FilePicker( opts ) {
  function Image (line 1847) | function Image( opts ) {
  function gid (line 2216) | function gid() {
  function WUFile (line 2227) | function WUFile( source ) {
  function Queue (line 2404) | function Queue() {
  function Transport (line 2952) | function Transport( opts ) {
  function CuteFile (line 3165) | function CuteFile( file, chunkSize ) {
  function hashString (line 3909) | function hashString( str ) {
  function CompBase (line 3955) | function CompBase( owner, runtime ) {
  function Html5Runtime (line 3987) | function Html5Runtime() {
  function detectVerticalSquash (line 5233) | function detectVerticalSquash( img, iw, ih ) {
  function detectSubsampling (line 5285) | function detectSubsampling( img ) {

FILE: public/static/ueditor/third-party/webuploader/webuploader.js
  function uncurryThis (line 194) | function uncurryThis( fn ) {
  function bindFn (line 200) | function bindFn( fn, context ) {
  function createObject (line 206) | function createObject( proto ) {
  function findHandlers (line 495) | function findHandlers( arr, name, callback, context ) {
  function eachEvent (line 505) | function eachEvent( events, callback, iterator ) {
  function triggerHanders (line 512) | function triggerHanders( events, args ) {
  function Uploader (line 721) | function Uploader( opts ) {
  function Runtime (line 903) | function Runtime( options ) {
  function RuntimeClient (line 1036) | function RuntimeClient( component, standalone ) {
  function DragAndDrop (line 1142) | function DragAndDrop( opts ) {
  function isArrayLike (line 1193) | function isArrayLike( obj ) {
  function Widget (line 1210) | function Widget( uploader ) {
  function FilePaste (line 1419) | function FilePaste( opts ) {
  function Blob (line 1500) | function Blob( ruid, source ) {
  function File (line 1544) | function File( ruid, file ) {
  function FilePicker (line 1584) | function FilePicker( opts ) {
  function Image (line 1847) | function Image( opts ) {
  function gid (line 2216) | function gid() {
  function WUFile (line 2227) | function WUFile( source ) {
  function Queue (line 2404) | function Queue() {
  function Transport (line 2952) | function Transport( opts ) {
  function CuteFile (line 3165) | function CuteFile( file, chunkSize ) {
  function hashString (line 3909) | function hashString( str ) {
  function CompBase (line 3955) | function CompBase( owner, runtime ) {
  function Html5Runtime (line 3987) | function Html5Runtime() {
  function JPEGEncoder (line 5008) | function JPEGEncoder(quality) {
  function detectVerticalSquash (line 6035) | function detectVerticalSquash( img, iw, ih ) {
  function detectSubsampling (line 6087) | function detectSubsampling( img ) {
  function getFlashVersion (line 6341) | function getFlashVersion() {
  function FlashRuntime (line 6359) | function FlashRuntime() {

FILE: public/static/ueditor/third-party/webuploader/webuploader.withoutimage.js
  function uncurryThis (line 194) | function uncurryThis( fn ) {
  function bindFn (line 200) | function bindFn( fn, context ) {
  function createObject (line 206) | function createObject( proto ) {
  function findHandlers (line 495) | function findHandlers( arr, name, callback, context ) {
  function eachEvent (line 505) | function eachEvent( events, callback, iterator ) {
  function triggerHanders (line 512) | function triggerHanders( events, args ) {
  function Uploader (line 721) | function Uploader( opts ) {
  function Runtime (line 903) | function Runtime( options ) {
  function RuntimeClient (line 1036) | function RuntimeClient( component, standalone ) {
  function DragAndDrop (line 1142) | function DragAndDrop( opts ) {
  function isArrayLike (line 1193) | function isArrayLike( obj ) {
  function Widget (line 1210) | function Widget( uploader ) {
  function FilePaste (line 1419) | function FilePaste( opts ) {
  function Blob (line 1500) | function Blob( ruid, source ) {
  function File (line 1544) | function File( ruid, file ) {
  function FilePicker (line 1584) | function FilePicker( opts ) {
  function gid (line 1850) | function gid() {
  function WUFile (line 1861) | function WUFile( source ) {
  function Queue (line 2038) | function Queue() {
  function Transport (line 2586) | function Transport( opts ) {
  function CuteFile (line 2799) | function CuteFile( file, chunkSize ) {
  function hashString (line 3543) | function hashString( str ) {
  function CompBase (line 3589) | function CompBase( owner, runtime ) {
  function Html5Runtime (line 3621) | function Html5Runtime() {
  function getFlashVersion (line 4233) | function getFlashVersion() {
  function FlashRuntime (line 4251) | function FlashRuntime() {

FILE: public/static/ueditor/third-party/zeroclipboard/ZeroClipboard.js
  function parseFlashVersion (line 521) | function parseFlashVersion(desc) {
  function isPepperFlash (line 526) | function isPepperFlash(flashPlayerFileName) {
  function inspectPlugin (line 529) | function inspectPlugin(plugin) {

FILE: public/static/ueditor/ueditor.all.js
  function getItem (line 888) | function getItem(doc, obj) {
  function opt (line 1037) | function opt(obj, name) {
  function doReady (line 1148) | function doReady(doc) {
  function encodeString (line 1347) | function encodeString(source) {
  function encodeArray (line 1365) | function encodeArray(source) {
  function pad (line 1390) | function pad(source) {
  function encodeDate (line 1394) | function encodeDate(source){
  function getListener (line 1666) | function getListener(obj, type, force) {
  function _ (line 1685) | function _( s ) {
  function getDomNode (line 1870) | function getDomNode(node, start, ltr, startFromChild, fn, guard) {
  function clear (line 2470) | function clear(next, dir) {
  function remove (line 2965) | function remove(dir) {
  function merge (line 3156) | function merge(rtl, start, node) {
  function updateCollapse (line 4304) | function updateCollapse(range) {
  function selectOneNode (line 4311) | function selectOneNode(rng){
  function setEndPoint (line 4314) | function setEndPoint(toStart, node, offset, range) {
  function execContentsAction (line 4337) | function execContentsAction(range, action) {
  function removeFillData (line 4484) | function removeFillData(doc, excludeNode) {
  function mergeSibling (line 4510) | function mergeSibling(node, dir) {
  function check (line 5013) | function check(node){
  function adjust (line 5234) | function adjust(r, c) {
  function checkOffset (line 5735) | function checkOffset(rng){
  function getAddress (line 5889) | function getAddress(isStart){
  function getNode (line 5975) | function getNode(address,isStart){
  function getBoundaryInformation (line 6136) | function getBoundaryInformation( range, start ) {
  function transformIERangeToRange (line 6206) | function transformIERangeToRange( ieRange, range ) {
  function _getIERange (line 6225) | function _getIERange( sel ) {
  function optimze (line 6375) | function optimze( range ) {
  function setValue (line 6541) | function setValue(form, editor) {
  function loadPlugins (line 6569) | function loadPlugins(me){
  function checkCurLang (line 6576) | function checkCurLang(I18N){
  function langReadied (line 6582) | function langReadied(me){
  function isCdataDiv (line 7350) | function isCdataDiv(node){
  function clear (line 7814) | function clear() {
  function showErrorMsg (line 8110) | function showErrorMsg(msg) {
  function json2str (line 8174) | function json2str(json) {
  function doAjax (line 8194) | function doAjax(url, ajaxOptions) {
  function doJsonp (line 8251) | function doJsonp(url, opts) {
  function isWordDocument (line 8434) | function isWordDocument( str ) {
  function transUnit (line 8438) | function transUnit( v ) {
  function filterPasteWord (line 8445) | function filterPasteWord( str ) {
  function insertLine (line 8660) | function insertLine(arr, current, begin) {
  function insertIndent (line 8665) | function insertIndent(arr, current) {
  function nodeToHtml (line 8691) | function nodeToHtml(node, arr, formatter, current) {
  function isText (line 8715) | function isText(node, arr) {
  function isElement (line 8725) | function isElement(node, arr, formatter, current) {
  function isComment (line 8775) | function isComment(node, arr) {
  function getNodeById (line 8779) | function getNodeById(root, id) {
  function getNodesByTagName (line 8793) | function getNodesByTagName(node, tagName, arr) {
  function nodeTraversal (line 8803) | function nodeTraversal(root,fn){
  function exec (line 9311) | function exec(name, val) {
  function text (line 9427) | function text(parent, data) {
  function element (line 9440) | function element(parent, tagName, htmlattr) {
  function comment (line 9485) | function comment(parent, data) {
  function filterNode (line 9580) | function filterNode(node,rules){
  function getUserData (line 9858) | function getUserData() {
  function tdParent (line 9978) | function tdParent(node){
  function isLine (line 10515) | function isLine(node,notEmpty){
  function removeNotAttributeSpan (line 10533) | function removeNotAttributeSpan(node){
  function autotype (line 10541) | function autotype(type,html){
  function DBC2SB (line 10722) | function DBC2SB(str) {
  function ToDBC (line 10738) | function ToDBC(txtstring) {
  function readLocalOpts (line 10756) | function readLocalOpts() {
  function stringToObj (line 10829) | function stringToObj(str) {
  function setBackground (line 10839) | function setBackground(obj) {
  function unhtmlData (line 11124) | function unhtmlData(imgCi) {
  function mergeWithParent (line 11487) | function mergeWithParent(node){
  function mergeChild (line 11503) | function mergeChild(rng,cmdName,value){
  function mergesibling (line 11526) | function mergesibling(rng,cmdName,value) {
  function optimize (line 11891) | function optimize( range ) {
  function doLink (line 11919) | function doLink(range,opt,me){
  function deleteIframe (line 12031) | function deleteIframe(){
  function isRedundantSpan (line 12094) | function isRedundantSpan (node) {
  function doRemove (line 12113) | function doRemove( range ) {
  function getObj (line 12276) | function getObj(editor){
  function formatTime (line 13043) | function formatTime(date, format) {
  function formatDate (line 13050) | function formatDate(date, format) {
  function fillNode (line 13882) | function fillNode(node){
  function isHr (line 13899) | function isHr(node){
  function compareAddr (line 14186) | function compareAddr(indexA, indexB) {
  function compareRangeAddress (line 14196) | function compareRangeAddress(rngAddrA, rngAddrB) {
  function UndoManager (line 14206) | function UndoManager() {
  function saveScene (line 14334) | function saveScene() {
  function save (line 14403) | function save(cont){
  function initZeroClipboard (line 14453) | function initZeroClipboard() {
  function getClipboardData (line 14533) | function getClipboardData(callback) {
  function getPureHtml (line 14583) | function getPureHtml(html){
  function filter (line 14611) | function filter(div) {
  function transP (line 14840) | function transP(node){
  function removeNode (line 14844) | function removeNode(node)
Copy disabled (too large) Download .json
Condensed preview — 1835 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (25,573K chars).
[
  {
    "path": ".htaccess",
    "chars": 224,
    "preview": "<IfModule mod_rewrite.c>\r\n  Options +FollowSymlinks -Multiviews\r\n  RewriteEngine On\r\n\r\n  RewriteCond %{REQUEST_FILENAME}"
  },
  {
    "path": ".travis.yml",
    "chars": 2080,
    "preview": "sudo: false\r\n\r\nlanguage: php\r\n\r\nbranches:\r\n  only:\r\n    - stable\r\n\r\ncache:\r\n  directories:\r\n    - $HOME/.composer/cache\r"
  },
  {
    "path": "LICENSE.txt",
    "chars": 1302,
    "preview": "\r\nThinkPHP遵循Apache2开源协议发布,并提供免费使用。\r\n版权所有Copyright © 2006-2016 by ThinkPHP (http://thinkphp.cn)\r\nAll rights reserved。\r\nTh"
  },
  {
    "path": "README.md",
    "chars": 4302,
    "preview": "WeMall商城 7.0 (不含商城)\n===============\n\n\n\n​\twemall7.0 开源系统,基于thinkphp5开发,支持composer,优化核心,减少依赖,基于全新的架构思想和命名空间。\n\n\n\n### thinkp"
  },
  {
    "path": "addons/common/config.php",
    "chars": 214,
    "preview": "<?php\n/**\n * \n * @authors 清月曦 (1604583867@qq.com)\n * @date    2017-03-07 23:29:12\n * @version $Id$\n */\nreturn [\n    'nam"
  },
  {
    "path": "addons/putong/config.php",
    "chars": 276,
    "preview": "<?php\n/**\n * \n * @authors 清月曦 (1604583867@qq.com)\n * @date    2017-03-07 23:29:12\n * @version $Id$\n */\nreturn [\n    'nam"
  },
  {
    "path": "addons/putong/demo/Demo.php",
    "chars": 1578,
    "preview": "<?php\n// +----------------------------------------------------------------------\n// | thinkphp5 Addons [ WE CAN DO IT JU"
  },
  {
    "path": "addons/putong/demo/config.php",
    "chars": 783,
    "preview": "<?php\n// +----------------------------------------------------------------------\n// | thinkphp5 Addons [ WE CAN DO IT JU"
  },
  {
    "path": "addons/putong/demo/controller/Admin.php",
    "chars": 2060,
    "preview": "<?php\nnamespace addons\\putong\\demo\\controller;\n\nuse think\\addons\\Controller;\nuse addons\\putong\\demo\\model\\AddonsPutongDe"
  },
  {
    "path": "addons/putong/demo/controller/Index.php",
    "chars": 492,
    "preview": "<?php\nnamespace addons\\putong\\demo\\controller;\n\nuse think\\addons\\Controller;\n\nclass Index extends Controller\n{\n\tpublic f"
  },
  {
    "path": "addons/putong/demo/data/install.sql",
    "chars": 1070,
    "preview": "--\n-- 表的结构 `addons_putong_demo_config`\n--\n\nCREATE TABLE `addons_putong_demo_config` (\n  `id` int(10) unsigned NOT NULL,\n"
  },
  {
    "path": "addons/putong/demo/data/uninstall.sql",
    "chars": 185,
    "preview": "/* \n* @Author: qingyuexi\n* @Date:   2016-10-04 14:24:05\n* @Last Modified by:   qingyuexi\n* @Last Modified time: 2016-02-"
  },
  {
    "path": "addons/putong/demo/info.html",
    "chars": 216,
    "preview": "<p>我是钩子模板</p>\n<p>我是在钩子中生成的url</p>\n<p>\n<a href=\"{:addon_url('putong://demo/index/index')}\">\n\t{:addon_url('putong://demo/a"
  },
  {
    "path": "addons/putong/demo/model/AddonsPutongDemoConfig.php",
    "chars": 403,
    "preview": "<?php\nnamespace addons\\putong\\demo\\model;\nuse think\\Model;\n\nclass AddonsPutongDemoConfig extends Model\n{\n\n\tprotected $re"
  },
  {
    "path": "addons/putong/demo/view/admin_add.html",
    "chars": 5639,
    "preview": "\n<!-- Main content -->\n<section class=\"content\">\n    <div class=\"row\">\n        <div class=\"col-md-12\">\n            <!-- "
  },
  {
    "path": "addons/putong/demo/view/admin_index.html",
    "chars": 3519,
    "preview": "\n<section class=\"content\">\n    <div class=\"row\">\n        <!-- /.col -->\n        <div class=\"col-md-12\">\n            <div"
  },
  {
    "path": "addons/putong/demo/view/index_index.html",
    "chars": 327,
    "preview": "<!DOCTYPE html>\n<html>\n\n<head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome"
  },
  {
    "path": "addons/putong/demo/view/public_left.html",
    "chars": 252,
    "preview": "<li class=\"treeview\">\n    <a href=\"#\">\n        <i class=\"fa fa-dashboard\"></i> <span>Demo</span> \n    </a>\n    <ul class"
  },
  {
    "path": "application/.htaccess",
    "chars": 13,
    "preview": "deny from all"
  },
  {
    "path": "application/admin/common.php",
    "chars": 612,
    "preview": "<?php\n// +----------------------------------------------------------------------\n// | ThinkPHP [ WE CAN DO IT JUST THINK"
  },
  {
    "path": "application/admin/config.php",
    "chars": 1151,
    "preview": "<?php\r\n// +----------------------------------------------------------------------\r\n// | ThinkPHP [ WE CAN DO IT JUST THI"
  },
  {
    "path": "application/admin/controller/AddonsController.php",
    "chars": 4592,
    "preview": "<?php\n/**\n * \n * @authors 清月曦 (1604583867@qq.com)\n * @date    2017-05-01 13:21:11\n * @version $Id$\n */\nnamespace app\\adm"
  },
  {
    "path": "application/admin/controller/BaseController.php",
    "chars": 1005,
    "preview": "<?php\n/**\n * \n * @authors 清月曦 (1604583867@qq.com)\n * @date    2017-05-01 11:27:23\n * @version $Id$\n */\nnamespace app\\adm"
  },
  {
    "path": "application/admin/controller/FileController.php",
    "chars": 1241,
    "preview": "<?php\nnamespace app\\admin\\controller;\n\nclass FileController extends BaseController\n{\n\t// 图片列表\n\tpublic function index(){\n"
  },
  {
    "path": "application/admin/controller/HelpController.php",
    "chars": 163,
    "preview": "<?php\nnamespace app\\admin\\controller;\n\nclass HelpController extends BaseController\n{\n    //使用帮助\n    public function inde"
  },
  {
    "path": "application/admin/controller/IndexController.php",
    "chars": 2264,
    "preview": "<?php\r\nnamespace app\\admin\\controller;\r\nuse think\\helper\\Time;\r\nuse app\\common\\model\\User;\r\nuse app\\common\\model\\Analysi"
  },
  {
    "path": "application/admin/controller/PublicController.php",
    "chars": 2193,
    "preview": "<?php\n/**\n * \n * @authors 清月曦 (1604583867@qq.com)\n * @date    2017-05-01 11:29:17\n * @version $Id$\n */\nnamespace app\\adm"
  },
  {
    "path": "application/admin/controller/WechatController.php",
    "chars": 16000,
    "preview": "<?php\nnamespace app\\admin\\controller;\n\nuse think\\Controller;\n\nclass WechatController extends Controller\n{\n    public sta"
  },
  {
    "path": "application/admin/controller/article/CategoryController.php",
    "chars": 1758,
    "preview": "<?php\nnamespace app\\admin\\controller\\article;\nuse app\\admin\\controller\\BaseController;\n\nuse app\\common\\model\\ArticleCate"
  },
  {
    "path": "application/admin/controller/article/IndexController.php",
    "chars": 1626,
    "preview": "<?php\nnamespace app\\admin\\controller\\article;\nuse app\\admin\\controller\\BaseController;\n\nuse app\\common\\model\\Article;\nus"
  },
  {
    "path": "application/admin/controller/auth/AdminController.php",
    "chars": 2478,
    "preview": "<?php\nnamespace app\\admin\\controller\\auth;\nuse app\\admin\\controller\\BaseController;\n\nuse app\\common\\model\\Admin;\nuse app"
  },
  {
    "path": "application/admin/controller/auth/GroupController.php",
    "chars": 1718,
    "preview": "<?php\nnamespace app\\admin\\controller\\auth;\nuse app\\admin\\controller\\BaseController;\n\nuse app\\common\\model\\AuthGroup;\nuse"
  },
  {
    "path": "application/admin/controller/config/MailController.php",
    "chars": 534,
    "preview": "<?php\nnamespace app\\admin\\controller\\config;\nuse app\\admin\\controller\\BaseController;\n\nclass MailController extends Base"
  },
  {
    "path": "application/admin/controller/config/SiteController.php",
    "chars": 575,
    "preview": "<?php\nnamespace app\\admin\\controller\\config;\nuse app\\admin\\controller\\BaseController;\n\nuse app\\common\\model\\Config;\nclas"
  },
  {
    "path": "application/admin/controller/config/SmsController.php",
    "chars": 528,
    "preview": "<?php\nnamespace app\\admin\\controller\\config;\nuse app\\admin\\controller\\BaseController;\n\nclass SmsController extends BaseC"
  },
  {
    "path": "application/admin/controller/tpl/MailController.php",
    "chars": 1750,
    "preview": "<?php\nnamespace app\\admin\\controller\\tpl;\nuse app\\admin\\controller\\BaseController;\n\nclass MailController extends BaseCon"
  },
  {
    "path": "application/admin/controller/tpl/ShopController.php",
    "chars": 637,
    "preview": "<?php\nnamespace app\\admin\\controller\\tpl;\nuse app\\admin\\controller\\BaseController;\n\nclass ShopController extends BaseCon"
  },
  {
    "path": "application/admin/controller/tpl/SmsController.php",
    "chars": 2310,
    "preview": "<?php\nnamespace app\\admin\\controller\\tpl;\nuse app\\admin\\controller\\BaseController;\nuse Flc\\Alidayu\\Client;\nuse Flc\\Alida"
  },
  {
    "path": "application/admin/controller/user/IndexController.php",
    "chars": 2985,
    "preview": "<?php\nnamespace app\\admin\\controller\\user;\nuse app\\admin\\controller\\BaseController;\n\nuse app\\common\\model\\User;\nclass In"
  },
  {
    "path": "application/admin/controller/user/LevelController.php",
    "chars": 828,
    "preview": "<?php\nnamespace app\\admin\\controller\\user;\nuse app\\admin\\controller\\BaseController;\n\nuse app\\common\\model\\UserLevel;\ncla"
  },
  {
    "path": "application/admin/controller/wx/ConfigController.php",
    "chars": 630,
    "preview": "<?php\nnamespace app\\admin\\controller\\wx;\nuse app\\admin\\controller\\BaseController;\n\nclass ConfigController extends BaseCo"
  },
  {
    "path": "application/admin/controller/wx/KefuController.php",
    "chars": 536,
    "preview": "<?php\nnamespace app\\admin\\controller\\wx;\nuse app\\admin\\controller\\BaseController;\n\nclass KefuController extends BaseCont"
  },
  {
    "path": "application/admin/controller/wx/MenuController.php",
    "chars": 1220,
    "preview": "<?php\nnamespace app\\admin\\controller\\wx;\nuse app\\admin\\controller\\BaseController;\n\nclass MenuController extends BaseCont"
  },
  {
    "path": "application/admin/controller/wx/PrintController.php",
    "chars": 543,
    "preview": "<?php\nnamespace app\\admin\\controller\\wx;\nuse app\\admin\\controller\\BaseController;\n\nclass PrintController extends BaseCon"
  },
  {
    "path": "application/admin/controller/wx/ReplyController.php",
    "chars": 1098,
    "preview": "<?php\nnamespace app\\admin\\controller\\wx;\nuse app\\admin\\controller\\BaseController;\n\nclass ReplyController extends BaseCon"
  },
  {
    "path": "application/admin/controller/wx/TplmsgController.php",
    "chars": 1214,
    "preview": "<?php\nnamespace app\\admin\\controller\\wx;\nuse app\\admin\\controller\\BaseController;\n\nclass TplmsgController extends BaseCo"
  },
  {
    "path": "application/admin/validate/Admin.php",
    "chars": 243,
    "preview": "<?php\nnamespace app\\admin\\validate;\n\nuse think\\Validate;\n\nclass Admin extends Validate\n{\n    protected $rule =   [\n     "
  },
  {
    "path": "application/admin/view/addons_index.html",
    "chars": 1563,
    "preview": "\n<!-- Main content -->\n<section class=\"content\">\n    <div class=\"box box-default color-palette-box\">\n        <div class="
  },
  {
    "path": "application/admin/view/addons_shop.html",
    "chars": 2670,
    "preview": "<iframe src=\"http://addon.wemallshop.com?url={$domain|urlencode}\" allowtransparency=\"true\" id=\"myiframe\"\n        style=\""
  },
  {
    "path": "application/admin/view/analysis_user.html",
    "chars": 4862,
    "preview": "\n<!-- Main content -->\n<section class=\"content\">\n    <div class=\"row\">\n        <!-- ./col -->\n        <div class=\"col-lg"
  },
  {
    "path": "application/admin/view/article/category_add.html",
    "chars": 3463,
    "preview": "<!-- Main content -->\n<section class=\"content\">\n    <div class=\"row\">\n        <div class=\"col-md-12\">\n            <!-- g"
  },
  {
    "path": "application/admin/view/article/category_index.html",
    "chars": 5169,
    "preview": "<!-- Main content -->\n<section class=\"content\">\n\t<div class=\"row\">\n\t\t<!-- /.col -->\n\t\t<div class=\"col-md-12\">\n\t\t\t<div cl"
  },
  {
    "path": "application/admin/view/article/index_add.html",
    "chars": 5163,
    "preview": "<!-- Main content -->\n<section class=\"content\">\n    <div class=\"row\">\n        <div class=\"col-md-12\">\n            <!-- g"
  },
  {
    "path": "application/admin/view/article/index_index.html",
    "chars": 3729,
    "preview": "<!-- Main content -->\n<section class=\"content\">\n\t<div class=\"row\">\n\t\t<!-- /.col -->\n\t\t<div class=\"col-md-12\">\n\t\t\t<div cl"
  },
  {
    "path": "application/admin/view/auth/admin_add.html",
    "chars": 5202,
    "preview": "\n<!-- Main content -->\n<section class=\"content\">\n    <div class=\"row\">\n        <div class=\"col-md-12\">\n            <!-- "
  },
  {
    "path": "application/admin/view/auth/admin_index.html",
    "chars": 4394,
    "preview": "\n<!-- Main content -->\n<section class=\"content\">\n    <div class=\"row\">\n        <div class=\"col-md-12\">\n            <div "
  },
  {
    "path": "application/admin/view/auth/group_add.html",
    "chars": 4151,
    "preview": "\n<!-- Main content -->\n<section class=\"content\">\n    <div class=\"row\">\n        <div class=\"col-md-12\">\n            <!-- "
  },
  {
    "path": "application/admin/view/auth/group_index.html",
    "chars": 2805,
    "preview": "\n<section class=\"content\">\n    <div class=\"row\">\n        <!-- /.col -->\n        <div class=\"col-md-12\">\n            <div"
  },
  {
    "path": "application/admin/view/config/mail_index.html",
    "chars": 3699,
    "preview": "<section class=\"content\">\n    <div class=\"row\">\n        <div class=\"col-md-12\">\n            <!-- general form elements -"
  },
  {
    "path": "application/admin/view/config/site_index.html",
    "chars": 5291,
    "preview": "\n<!-- Main content -->\n<section class=\"content\">\n    <div class=\"row\">\n        <div class=\"col-md-12\">\n            <!-- "
  },
  {
    "path": "application/admin/view/config/sms_index.html",
    "chars": 2664,
    "preview": "<section class=\"content\">\n    <div class=\"row\">\n        <div class=\"col-md-12\">\n            <div class=\"callout callout-"
  },
  {
    "path": "application/admin/view/file_index.html",
    "chars": 1513,
    "preview": "<div id=\"dialog-imageUploader\">\n    <!-- /.box-header -->\n    <div class=\"box-body\">\n        <div class=\"row\" style=\"bor"
  },
  {
    "path": "application/admin/view/help_index.html",
    "chars": 2235,
    "preview": "<style type=\"text/css\">\n\t#bodybox {\n\t    margin: 0 auto 10% auto;\n\t    width: 100%;\n\t    max-width: 640px;\n\t}\n\t.content-"
  },
  {
    "path": "application/admin/view/index_index.html",
    "chars": 6089,
    "preview": "\n<section class=\"content\">\n    <div class=\"row\">\n        <!-- ./col -->\n        <div class=\"col-lg-3 col-xs-6\">\n        "
  },
  {
    "path": "application/admin/view/layout.html",
    "chars": 4678,
    "preview": "{include file=\"./application/admin/view/public_header.html\" /}\n\n<body class=\"hold-transition skin-red-light\">\n    <div c"
  },
  {
    "path": "application/admin/view/layout_addons.html",
    "chars": 4649,
    "preview": "{include file=\"./application/admin/view/public_header.html\" /}\n\n<body class=\"hold-transition skin-red-light\">\n    <div c"
  },
  {
    "path": "application/admin/view/public_footer.html",
    "chars": 2292,
    "preview": "<!-- Bootstrap 3.3.5 -->\n<script src=\"__PUBLIC__/static/plugins/bootstrap/js/bootstrap.min.js\"></script>\n<!-- Select2 --"
  },
  {
    "path": "application/admin/view/public_header.html",
    "chars": 3099,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n    <"
  },
  {
    "path": "application/admin/view/public_left.html",
    "chars": 3141,
    "preview": "<li class=\"treeview\">\n    <a href=\"#\">\n        <i class=\"fa fa-dashboard\"></i> <span>首页</span> \n    </a>\n    <ul class=\""
  },
  {
    "path": "application/admin/view/public_login.html",
    "chars": 4184,
    "preview": "<!DOCTYPE html>\n<html>\n\n<head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n    "
  },
  {
    "path": "application/admin/view/tpl/mail_add.html",
    "chars": 2786,
    "preview": "<!-- Main content -->\n<section class=\"content\">\n    <div class=\"row\">\n        <div class=\"col-md-12\">\n            <div c"
  },
  {
    "path": "application/admin/view/tpl/mail_index.html",
    "chars": 4497,
    "preview": "<!-- Main content -->\n<section class=\"content\">\n    <div class=\"row\">\n        <!-- /.col -->\n        <div class=\"col-md-"
  },
  {
    "path": "application/admin/view/tpl/shop_index.html",
    "chars": 1840,
    "preview": "\n<!-- Main content -->\n<section class=\"content\">\n    <div class=\"row\">\n        <div class=\"col-lg-12\">\n            <div "
  },
  {
    "path": "application/admin/view/tpl/sms_add.html",
    "chars": 3220,
    "preview": "<!-- Main content -->\n<section class=\"content\">\n    <div class=\"row\">\n        <div class=\"col-md-12\">\n            <div c"
  },
  {
    "path": "application/admin/view/tpl/sms_index.html",
    "chars": 4583,
    "preview": "<!-- Main content -->\n<section class=\"content\">\n    <div class=\"row\">\n        <!-- /.col -->\n        <div class=\"col-md-"
  },
  {
    "path": "application/admin/view/user/index_add.html",
    "chars": 4736,
    "preview": "\n<!-- Main content -->\n<section class=\"content\">\n    <div class=\"row\">\n        <div class=\"col-md-12\">\n            <!-- "
  },
  {
    "path": "application/admin/view/user/index_index.html",
    "chars": 5898,
    "preview": "<!-- Main content -->\n<section class=\"content\">\n    <div class=\"row\">\n        <!-- /.col -->\n        <div class=\"col-md-"
  },
  {
    "path": "application/admin/view/user/level_add.html",
    "chars": 2126,
    "preview": "<!-- Main content -->\n<section class=\"content\">\n    <div class=\"row\">\n        <div class=\"col-md-12\">\n            <!-- g"
  },
  {
    "path": "application/admin/view/user/level_index.html",
    "chars": 2717,
    "preview": "<!-- Main content -->\n<section class=\"content\">\n    <div class=\"row\">\n        <!-- /.col -->\n        <div class=\"col-md-"
  },
  {
    "path": "application/admin/view/wx/config_index.html",
    "chars": 4642,
    "preview": "\n<!-- Main content -->\n<section class=\"content\">\n    <div class=\"row\">\n        <div class=\"col-md-12\">\n            <!-- "
  },
  {
    "path": "application/admin/view/wx/kefu_index.html",
    "chars": 2221,
    "preview": "<section class=\"content\">\n    <div class=\"row\">\n        <div class=\"col-md-12\">\n            <div class=\"callout callout-"
  },
  {
    "path": "application/admin/view/wx/menu_add.html",
    "chars": 5447,
    "preview": "\n<!-- Main content -->\n<section class=\"content\">\n    <div class=\"row\">\n        <div class=\"col-md-12\">\n            <!-- "
  },
  {
    "path": "application/admin/view/wx/menu_index.html",
    "chars": 5982,
    "preview": "\n<!-- Main content -->\n<section class=\"content\">\n    <div class=\"row\">\n        <div class=\"col-md-12\">\n            <div "
  },
  {
    "path": "application/admin/view/wx/print_index.html",
    "chars": 3967,
    "preview": "<style>\n    .print_buy{\n        text-decoration: none;\n        background-color: hsla(0,0%,100%,.2);\n    }\n    .print_bu"
  },
  {
    "path": "application/admin/view/wx/reply_add.html",
    "chars": 6300,
    "preview": "\n<!-- Main content -->\n<section class=\"content\">\n    <div class=\"row\">\n        <div class=\"col-md-12\">\n            <!-- "
  },
  {
    "path": "application/admin/view/wx/reply_index.html",
    "chars": 4739,
    "preview": "\n<!-- Main content -->\n<section class=\"content\">\n    <div class=\"row\">\n        <!-- /.col -->\n        <div class=\"col-md"
  },
  {
    "path": "application/admin/view/wx/tplmsg_add.html",
    "chars": 3554,
    "preview": "<section class=\"content\">\n    <div class=\"row\">\n        <div class=\"col-md-12\">\n            <!-- general form elements -"
  },
  {
    "path": "application/admin/view/wx/tplmsg_index.html",
    "chars": 4443,
    "preview": "\n<!-- Main content -->\n<section class=\"content\">\n    <div class=\"row\">\n        <!-- /.col -->\n        <div class=\"col-md"
  },
  {
    "path": "application/app/controller/AddonsController.php",
    "chars": 775,
    "preview": "<?php\n/**\n * \n * @authors 清月曦 (1604583867@qq.com)\n * @date    2017-05-02 15:40:06\n * @version $Id$\n */\nnamespace app\\app"
  },
  {
    "path": "application/app/controller/IndexController.php",
    "chars": 2332,
    "preview": "<?php\r\n/**\r\n * \r\n * @authors 清月曦 (1604583867@qq.com)\r\n * @date    2017-05-02 15:40:06\r\n * @version $Id$\r\n */\r\nnamespace "
  },
  {
    "path": "application/command.php",
    "chars": 618,
    "preview": "<?php\r\n// +----------------------------------------------------------------------\r\n// | ThinkPHP [ WE CAN DO IT JUST THI"
  },
  {
    "path": "application/common/behavior/Config.php",
    "chars": 890,
    "preview": "<?php\n/**\n * \n * @authors 清月曦 (1604583867@qq.com)\n * @date    2017-04-12 10:03:28\n * @version $Id$\n */\nnamespace app\\com"
  },
  {
    "path": "application/common/model/Admin.php",
    "chars": 1403,
    "preview": "<?php\nnamespace app\\common\\model;\n\nuse think\\Model;\n\nclass Admin extends Model\n{\n\tprotected $autoWriteTimestamp = 'times"
  },
  {
    "path": "application/common/model/Analysis.php",
    "chars": 1137,
    "preview": "<?php\nnamespace app\\common\\model;\n\nuse think\\Model;\n\nclass Analysis extends Model\n{\n\tprotected $resultSetType = 'collect"
  },
  {
    "path": "application/common/model/Article.php",
    "chars": 386,
    "preview": "<?php\nnamespace app\\common\\model;\n\nuse think\\Model;\n\nclass Article extends Model\n{\n\tprotected $resultSetType = 'collecti"
  },
  {
    "path": "application/common/model/ArticleCategory.php",
    "chars": 279,
    "preview": "<?php\nnamespace app\\common\\model;\n\nuse think\\Model;\n\nclass ArticleCategory extends Model\n{\n\tprotected $resultSetType = '"
  },
  {
    "path": "application/common/model/AuthGroup.php",
    "chars": 273,
    "preview": "<?php\nnamespace app\\common\\model;\n\nuse think\\Model;\n\nclass AuthGroup extends Model\n{\n\tprotected $resultSetType = 'collec"
  },
  {
    "path": "application/common/model/AuthGroupAccess.php",
    "chars": 95,
    "preview": "<?php\nnamespace app\\common\\model;\n\nuse think\\Model;\n\nclass AuthGroupAccess extends Model\n{\n\n\n\n}"
  },
  {
    "path": "application/common/model/AuthRule.php",
    "chars": 272,
    "preview": "<?php\nnamespace app\\common\\model;\n\nuse think\\Model;\n\nclass AuthRule extends Model\n{\n\tprotected $resultSetType = 'collect"
  },
  {
    "path": "application/common/model/Config.php",
    "chars": 361,
    "preview": "<?php\nnamespace app\\common\\model;\n\nuse think\\Model;\n\nclass Config extends Model\n{\n\tprotected $resultSetType = 'collectio"
  },
  {
    "path": "application/common/model/File.php",
    "chars": 224,
    "preview": "<?php\n/**\n * \n * @authors 清月曦 (1604583867@qq.com)\n * @date    2017-05-01 18:33:22\n * @version $Id$\n */\nnamespace app\\com"
  },
  {
    "path": "application/common/model/Mail.php",
    "chars": 299,
    "preview": "<?php\nnamespace app\\common\\model;\n\nuse think\\Model;\n\nclass Mail extends Model\n{\n\tprotected $resultSetType = 'collection'"
  },
  {
    "path": "application/common/model/MailTpl.php",
    "chars": 271,
    "preview": "<?php\nnamespace app\\common\\model;\n\nuse think\\Model;\n\nclass MailTpl extends Model\n{\n\tprotected $resultSetType = 'collecti"
  },
  {
    "path": "application/common/model/Sms.php",
    "chars": 267,
    "preview": "<?php\nnamespace app\\common\\model;\n\nuse think\\Model;\n\nclass Sms extends Model\n{\n\tprotected $resultSetType = 'collection';"
  },
  {
    "path": "application/common/model/SmsTpl.php",
    "chars": 270,
    "preview": "<?php\nnamespace app\\common\\model;\n\nuse think\\Model;\n\nclass SmsTpl extends Model\n{\n\tprotected $resultSetType = 'collectio"
  },
  {
    "path": "application/common/model/User.php",
    "chars": 2176,
    "preview": "<?php\nnamespace app\\common\\model;\n\nuse think\\Model;\n\nclass User extends Model\n{\n\tprotected $resultSetType = 'collection'"
  },
  {
    "path": "application/common/model/UserLevel.php",
    "chars": 273,
    "preview": "<?php\nnamespace app\\common\\model;\n\nuse think\\Model;\n\nclass UserLevel extends Model\n{\n\tprotected $resultSetType = 'collec"
  },
  {
    "path": "application/common/model/WxConfig.php",
    "chars": 1644,
    "preview": "<?php\nnamespace app\\common\\model;\n\nuse think\\Model;\n\nclass WxConfig extends Model\n{\n    protected $resultSetType = 'coll"
  },
  {
    "path": "application/common/model/WxKefu.php",
    "chars": 305,
    "preview": "<?php\nnamespace app\\common\\model;\n\nuse think\\Model;\n\nclass WxKefu extends Model\n{\n\tprotected $resultSetType = 'collectio"
  },
  {
    "path": "application/common/model/WxMenu.php",
    "chars": 270,
    "preview": "<?php\nnamespace app\\common\\model;\n\nuse think\\Model;\n\nclass WxMenu extends Model\n{\n\tprotected $resultSetType = 'collectio"
  },
  {
    "path": "application/common/model/WxPrint.php",
    "chars": 306,
    "preview": "<?php\nnamespace app\\common\\model;\n\nuse think\\Model;\n\nclass WxPrint extends Model\n{\n\tprotected $resultSetType = 'collecti"
  },
  {
    "path": "application/common/model/WxReply.php",
    "chars": 365,
    "preview": "<?php\nnamespace app\\common\\model;\n\nuse think\\Model;\n\nclass WxReply extends Model\n{\n\tprotected $resultSetType = 'collecti"
  },
  {
    "path": "application/common/model/WxTplmsg.php",
    "chars": 271,
    "preview": "<?php\nnamespace app\\common\\model;\n\nuse think\\Model;\n\nclass WxTplmsg extends Model\n{\n\tprotected $resultSetType = 'collect"
  },
  {
    "path": "application/common.php",
    "chars": 10522,
    "preview": "<?php\r\n/**\r\n * 数据签名认证\r\n * @param  array  $data 被认证的数据\r\n * @return string       签名\r\n * @author 清月曦 <1604583867@qq.com>\r\n "
  },
  {
    "path": "application/config.php",
    "chars": 8193,
    "preview": "<?php\r\n// +----------------------------------------------------------------------\r\n// | ThinkPHP [ WE CAN DO IT JUST THI"
  },
  {
    "path": "application/database.php",
    "chars": 1593,
    "preview": "<?php\n// +----------------------------------------------------------------------\n// | ThinkPHP [ WE CAN DO IT JUST THINK"
  },
  {
    "path": "application/install/common.php",
    "chars": 7495,
    "preview": "<?php\n\n/**\n * 系统环境检测\n * @return array 系统环境数据\n */\nfunction check_env()\n{\n    $items = array(\n        'os' => array('操作系统'"
  },
  {
    "path": "application/install/config.php",
    "chars": 1084,
    "preview": "<?php\n// +----------------------------------------------------------------------\n// | ThinkPHP [ WE CAN DO IT JUST THINK"
  },
  {
    "path": "application/install/controller/IndexController.php",
    "chars": 3643,
    "preview": "<?php\r\nnamespace app\\install\\controller;\r\nuse think\\Controller;\r\nuse think\\Db;\r\n\r\nclass IndexController extends Controll"
  },
  {
    "path": "application/install/data/database.tpl",
    "chars": 1615,
    "preview": "<?php\n// +----------------------------------------------------------------------\n// | ThinkPHP [ WE CAN DO IT JUST THINK"
  },
  {
    "path": "application/install/view/index.html",
    "chars": 1,
    "preview": " "
  },
  {
    "path": "application/install/view/index_header.html",
    "chars": 399,
    "preview": "<!doctype html>\n<html>\n<head>\n    <meta charset=\"utf-8\">\n    <title>WeMall安装向导</title>\n    <link href=\"__PUBLIC__/instal"
  },
  {
    "path": "application/install/view/index_index.html",
    "chars": 1238,
    "preview": "{include file=\"index/header\" /}\r\n<body>\r\n<div class=\"g-install\">\r\n    <div class=\"m-head\">\r\n        <h1>WeMall使用协议</h1>\r"
  },
  {
    "path": "application/install/view/index_setup1.html",
    "chars": 2665,
    "preview": "{include file=\"index/header\" /}\r\n\r\n<body>\r\n    <div class=\"g-install\">\r\n        <div class=\"m-head\">\r\n            <h1>We"
  },
  {
    "path": "application/install/view/index_setup2.html",
    "chars": 3288,
    "preview": "{include file=\"index/header\" /}\r\n\r\n<body>\r\n<div class=\"g-install\">\r\n    <div class=\"m-head\">\r\n        <h1>WeMall安装配置</h1"
  },
  {
    "path": "application/install/view/index_setup3.html",
    "chars": 324,
    "preview": "{include file=\"index/header\" /}\r\n<body>\r\n<div class=\"g-install\">\r\n    <div class=\"m-head\">\r\n        <h1>WeMall安装进行中</h1>"
  },
  {
    "path": "application/route.php",
    "chars": 791,
    "preview": "<?php\r\n// +----------------------------------------------------------------------\r\n// | ThinkPHP [ WE CAN DO IT JUST THI"
  },
  {
    "path": "application/tags.php",
    "chars": 979,
    "preview": "<?php\r\n// +----------------------------------------------------------------------\r\n// | ThinkPHP [ WE CAN DO IT JUST THI"
  },
  {
    "path": "build.php",
    "chars": 1044,
    "preview": "<?php\r\n// +----------------------------------------------------------------------\r\n// | ThinkPHP [ WE CAN DO IT JUST THI"
  },
  {
    "path": "composer.json",
    "chars": 795,
    "preview": "{\r\n    \"name\": \"topthink/think\",\r\n    \"description\": \"the new thinkphp framework\",\r\n    \"type\": \"project\",\r\n    \"keyword"
  },
  {
    "path": "data/index.html",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "extend/com/Auth.php",
    "chars": 8243,
    "preview": "<?php\n// +----------------------------------------------------------------------\n// | ThinkPHP [ WE CAN DO IT JUST THINK"
  },
  {
    "path": "index.php",
    "chars": 490,
    "preview": "<?php\n/**\n * \n * @authors 清月曦 (1604583867@qq.com)\n * @date    2017-05-01 11:20:54\n * @version $Id$\n */\n// [ 应用入口文件 ]\n\n//"
  },
  {
    "path": "public/.htaccess",
    "chars": 224,
    "preview": "<IfModule mod_rewrite.c>\r\n  Options +FollowSymlinks -Multiviews\r\n  RewriteEngine On\r\n\r\n  RewriteCond %{REQUEST_FILENAME}"
  },
  {
    "path": "public/index.php",
    "chars": 743,
    "preview": "<?php\r\n// +----------------------------------------------------------------------\r\n// | ThinkPHP [ WE CAN DO IT JUST THI"
  },
  {
    "path": "public/install/css/base.css",
    "chars": 4132,
    "preview": "@charset \"utf-8\";\r\n\r\n/* reset */\r\nhtml, body, h1, h2, h3, h4, h5, h6, div, dl, dt, dd, ul, ol, li, p, blockquote, pre, h"
  },
  {
    "path": "public/install/css/style.css",
    "chars": 1583,
    "preview": "body {\r\n    color: #333333;\r\n    font-size: 14px;\r\n    font-family: '微软雅黑';\r\n    background-color: #f2f2f2;\r\n}\r\n\r\na {\r\n "
  },
  {
    "path": "public/install/js/install.js",
    "chars": 332,
    "preview": "function no() {\r\n    alert('感谢您对WeMall的支持!');\r\n    window.close();\r\n}\r\nfunction showmsg(msg, tyle) {\r\n    var html = '<p"
  },
  {
    "path": "public/robots.txt",
    "chars": 26,
    "preview": "User-agent: *\r\nDisallow:\r\n"
  },
  {
    "path": "public/router.php",
    "chars": 753,
    "preview": "<?php\r\n// +----------------------------------------------------------------------\r\n// | ThinkPHP [ WE CAN DO IT JUST THI"
  },
  {
    "path": "public/static/article/page_mp_article_improve2756b8.css",
    "chars": 4318,
    "preview": "html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;line-height:1.6}body{-webkit-touch-callout:none;font-family"
  },
  {
    "path": "public/static/article/page_mp_article_improve_combo2805ea.css",
    "chars": 45974,
    "preview": ".selectTdClass{background-color:#edf5fa!important}table.noBorderTable td,table.noBorderTable th,table.noBorderTable capt"
  },
  {
    "path": "public/static/article/page_mp_article_improve_pc2637ae.css",
    "chars": 2662,
    "preview": ".rich_media{width:740px;margin-left:auto;margin-right:auto}.rich_media_inner{padding:20px;background-color:#fff}.rich_me"
  },
  {
    "path": "public/static/dist/css/AdminLTE.css",
    "chars": 160385,
    "preview": "/*!\n *   AdminLTE v2.3.1\n *   Author: Almsaeed Studio\n *\t Website: Almsaeed Studio <http://almsaeedstudio.com>\n *   Lice"
  },
  {
    "path": "public/static/dist/js/app.js",
    "chars": 26688,
    "preview": "/*! AdminLTE app.js\n * ================\n * Main JS application file for AdminLTE v2. This file\n * should be included in "
  },
  {
    "path": "public/static/dist/js/wemall.js",
    "chars": 5376,
    "preview": "/**\n * Created by heqing on 15/9/25.\n */\n(function ($) {\n    NProgress.configure({\n        template: '<div class=\"bar\" r"
  },
  {
    "path": "public/static/layui/css/layui.css",
    "chars": 35830,
    "preview": "/** layui-v1.0.7 LGPL License By http://www.layui.com */\n\n.layui-btn,\n.layui-inline,\nimg {\n    vertical-align: middle\n}\n"
  },
  {
    "path": "public/static/layui/css/modules/code.css",
    "chars": 1054,
    "preview": "/** layui-v1.0.7 LGPL License By http://www.layui.com */\n html #layuicss-skincodecss{display:none;position:absolute;widt"
  },
  {
    "path": "public/static/layui/css/modules/laydate/laydate.css",
    "chars": 8404,
    "preview": "/** layui-v1.0.7 LGPL License By http://www.layui.com */\n #layuicss-laydatecss{display:none;position:absolute;width:1989"
  },
  {
    "path": "public/static/layui/css/modules/layer/default/layer.css",
    "chars": 14354,
    "preview": "/** layui-v1.0.7 LGPL License By http://www.layui.com */\n .layui-layer-imgbar,.layui-layer-imgtit a,.layui-layer-tab .la"
  },
  {
    "path": "public/static/layui/lay/dest/layui.all.js",
    "chars": 173869,
    "preview": "/** layui-v1.0.7 LGPL License By http://www.layui.com */\n ;!function(e){\"use strict\";var t=function(){this.v=\"1.0.7\"};t."
  },
  {
    "path": "public/static/layui/lay/lib/jquery.js",
    "chars": 97637,
    "preview": "/** layui-v1.0.7 LGPL License By http://www.layui.com */\n ;!function(e,t){\"object\"==typeof module&&\"object\"==typeof modu"
  },
  {
    "path": "public/static/layui/lay/modules/code.js",
    "chars": 1182,
    "preview": "/** layui-v1.0.7 LGPL License By http://www.layui.com */\n ;layui.define(\"jquery\",function(e){\"use strict\";var a=layui.jq"
  },
  {
    "path": "public/static/layui/lay/modules/element.js",
    "chars": 5151,
    "preview": "/** layui-v1.0.7 LGPL License By http://www.layui.com */\n ;layui.define(\"jquery\",function(i){\"use strict\";var t=layui.jq"
  },
  {
    "path": "public/static/layui/lay/modules/flow.js",
    "chars": 2001,
    "preview": "/** layui-v1.0.7 LGPL License By http://www.layui.com */\n ;layui.define(\"jquery\",function(e){\"use strict\";var l=layui.jq"
  },
  {
    "path": "public/static/layui/lay/modules/form.js",
    "chars": 5158,
    "preview": "/** layui-v1.0.7 LGPL License By http://www.layui.com */\n ;layui.define(\"layer\",function(e){\"use strict\";var i=layui.jqu"
  },
  {
    "path": "public/static/layui/lay/modules/laydate.js",
    "chars": 13146,
    "preview": "/** layui-v1.0.7 LGPL License By http://www.layui.com */\n ;layui.define(function(e){\"use strict\";var t=window,a={path:\"\""
  },
  {
    "path": "public/static/layui/lay/modules/layedit.js",
    "chars": 12074,
    "preview": "/** layui-v1.0.7 LGPL License By http://www.layui.com */\n ;layui.define([\"layer\",\"form\"],function(t){\"use strict\";var e="
  },
  {
    "path": "public/static/layui/lay/modules/layer.js",
    "chars": 21315,
    "preview": "/** layui-v1.0.7 LGPL License By http://www.layui.com */\n ;!function(e,t){\"use strict\";var i,n,a=e.layui&&layui.define,o"
  },
  {
    "path": "public/static/layui/lay/modules/laypage.js",
    "chars": 3413,
    "preview": "/** layui-v1.0.7 LGPL License By http://www.layui.com */\n ;layui.define(function(a){\"use strict\";function t(a){new p(a)}"
  },
  {
    "path": "public/static/layui/lay/modules/laytpl.js",
    "chars": 1640,
    "preview": "/** layui-v1.0.7 LGPL License By http://www.layui.com */\n ;layui.define(function(e){\"use strict\";var r={open:\"{{\",close:"
  },
  {
    "path": "public/static/layui/lay/modules/tree.js",
    "chars": 3047,
    "preview": "/** layui-v1.0.7 LGPL License By http://www.layui.com */\n ;layui.define(\"jquery\",function(e){\"use strict\";var o=layui.jq"
  },
  {
    "path": "public/static/layui/lay/modules/upload.js",
    "chars": 2267,
    "preview": "/** layui-v1.0.7 LGPL License By http://www.layui.com */\n ;layui.define(\"layer\",function(e){\"use strict\";var a=layui.jqu"
  },
  {
    "path": "public/static/layui/lay/modules/util.js",
    "chars": 1086,
    "preview": "/** layui-v1.0.7 LGPL License By http://www.layui.com */\n ;layui.define(\"jquery\",function(l){\"use strict\";var o=layui.jq"
  },
  {
    "path": "public/static/layui/layui.js",
    "chars": 5398,
    "preview": "/** layui-v1.0.7 LGPL License By http://www.layui.com */\n ;!function(e){\"use strict\";var t=function(){this.v=\"1.0.7\"};t."
  },
  {
    "path": "public/static/plugins/bootbox/bootbox.js",
    "chars": 26533,
    "preview": "/**\n * bootbox.js [master branch]\n *\n * http://bootboxjs.com/license.txt\n */\n\n// @see https://github.com/makeusabrew/boo"
  },
  {
    "path": "public/static/plugins/bootstrap/css/bootstrap.css",
    "chars": 146082,
    "preview": "/*!\n * Bootstrap v3.3.6 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://gi"
  },
  {
    "path": "public/static/plugins/bootstrap/js/bootstrap.js",
    "chars": 68954,
    "preview": "/*!\n * Bootstrap v3.3.6 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under the MIT license"
  },
  {
    "path": "public/static/plugins/bootstrap/js/npm.js",
    "chars": 484,
    "preview": "// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.\nrequ"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/css/bootstrap-datetimepicker.css",
    "chars": 12351,
    "preview": "/*!\n * Datetimepicker for Bootstrap\n *\n * Copyright 2012 Stefan Petre\n * Improvements by Andrew Rowls\n * Licensed under "
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/bootstrap-datetimepicker.js",
    "chars": 65606,
    "preview": "/* =========================================================\n * bootstrap-datetimepicker.js\n * ========================"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ar.js",
    "chars": 710,
    "preview": "/**\n* Arabic translation for bootstrap-datetimepicker\n* Ala' Mohammad <amohammad@birzeit.ecu>\n*/\n;(function($){\n\t$.fn.da"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.bg.js",
    "chars": 679,
    "preview": "/**\n * Bulgarian translation for bootstrap-datetimepicker\n * Apostol Apostolov <apostol.s.apostolov@gmail.com>\n */\n;(fun"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ca.js",
    "chars": 676,
    "preview": "/**\n * Catalan translation for bootstrap-datetimepicker\n * J. Garcia <jogaco.en@gmail.com>\n */\n;(function($){\n\t$.fn.date"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.cs.js",
    "chars": 751,
    "preview": "/**\n * Czech translation for bootstrap-datetimepicker\n * Matěj Koubík <matej@koubik.name>\n * Fixes by Michal Remiš <mich"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.da.js",
    "chars": 681,
    "preview": "/**\n * Danish translation for bootstrap-datetimepicker\n * Christian Pedersen <http://github.com/chripede>\n */\n;(function"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.de.js",
    "chars": 712,
    "preview": "/**\n * German translation for bootstrap-datetimepicker\n * Sam Zurcher <sam@orelias.ch>\n */\n;(function($){\n\t$.fn.datetime"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ee.js",
    "chars": 764,
    "preview": "/**\n * Estonian translation for bootstrap-datetimepicker\n * Rene Korss <http://rene.korss.ee> \n */\n;(function($){\n\t$.fn."
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.el.js",
    "chars": 686,
    "preview": "/**\n* Greek translation for bootstrap-datetimepicker\n*/\n;(function($){\n  $.fn.datetimepicker.dates['el'] = {\n\t    days: "
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.es.js",
    "chars": 681,
    "preview": "/**\n * Spanish translation for bootstrap-datetimepicker\n * Bruno Bonamin <bruno.bonamin@gmail.com>\n */\n;(function($){\n\t$"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.fi.js",
    "chars": 721,
    "preview": "/**\n * Finnish translation for bootstrap-datetimepicker\n * Jaakko Salonen <https://github.com/jsalonen>\n */\n;(function($"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.fr.js",
    "chars": 730,
    "preview": "/**\n * French translation for bootstrap-datetimepicker\n * Nico Mollet <nico.mollet@gmail.com>\n */\n;(function($){\n\t$.fn.d"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.he.js",
    "chars": 656,
    "preview": "/**\n * Hebrew translation for bootstrap-datetimepicker\n * Sagie Maoz <sagie@maoz.info>\n */\n;(function($){\n  $.fn.datetim"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.hr.js",
    "chars": 624,
    "preview": "/**\n * Croatian localisation\n */\n;(function($){\n\t$.fn.datetimepicker.dates['hr'] = {\n\t\tdays: [\"Nedjelja\", \"Ponedjelja\", "
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.hu.js",
    "chars": 702,
    "preview": "/**\n * Hungarian translation for bootstrap-datetimepicker\n * darevish <http://github.com/darevish>\n */\n;(function($){\n\t$"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.hy.js",
    "chars": 688,
    "preview": "/**\n * Armenian translation for bootstrap-datepicker\n * Hayk Chamyan <hamshen@gmail.com>\n */\n;(function($){\n\t$.fn.dateti"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.id.js",
    "chars": 772,
    "preview": "/**\n * Bahasa translation for bootstrap-datetimepicker\n * Azwar Akbar <azwar.akbar@gmail.com>\n * Addtional by Yulian Sut"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.is.js",
    "chars": 714,
    "preview": "/**\n * Icelandic translation for bootstrap-datetimepicker\n * Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>\n */\n;(function"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.it.js",
    "chars": 736,
    "preview": "/**\n * Italian translation for bootstrap-datetimepicker\n * Enrico Rubboli <rubboli@gmail.com>\n */\n;(function($){\n\t$.fn.d"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ja.js",
    "chars": 563,
    "preview": "/**\n * Japanese translation for bootstrap-datetimepicker\n * Norio Suzuki <https://github.com/suzuki/>\n */\n;(function($){"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ko.js",
    "chars": 625,
    "preview": "/**\n * Korean translation for bootstrap-datetimepicker\n * Gu Youn <http://github.com/guyoun>\n * Baekjoon Choi <http://gi"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.lt.js",
    "chars": 790,
    "preview": "/**\n * Lithuanian translation for bootstrap-datetimepicker\n * Šarūnas Gliebus <ssharunas@yahoo.co.uk>\n */\n\n;(function($"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.lv.js",
    "chars": 759,
    "preview": "/**\n * Latvian translation for bootstrap-datetimepicker\n * Artis Avotins <artis@apit.lv>\n */\n\n;(function($){\n    $.fn.da"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ms.js",
    "chars": 659,
    "preview": "/**\n * Malay translation for bootstrap-datetimepicker\n * Ateman Faiz <noorulfaiz@gmail.com>\n */\n;(function($){\n\t$.fn.dat"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.nb.js",
    "chars": 691,
    "preview": "/**\n * Norwegian (bokmål) translation for bootstrap-datetimepicker\n * Fredrik Sundmyhr <http://github.com/fsundmyhr>\n */"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.nl.js",
    "chars": 681,
    "preview": "/**\n * Dutch translation for bootstrap-datetimepicker\n * Reinier Goltstein <mrgoltstein@gmail.com>\n */\n;(function($){\n\t$"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.no.js",
    "chars": 669,
    "preview": "/**\n * Norwegian translation for bootstrap-datetimepicker\n * Rune Warhuus <rune@dinkdonkd.no>\n */\n;(function($){\n\t$.fn.d"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.pl.js",
    "chars": 730,
    "preview": "/**\n * Polish translation for bootstrap-datetimepicker\n * Robert <rtpm@gazeta.pl>\n */\n;(function($){\n$.fn.datetimepicker"
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.pt-BR.js",
    "chars": 707,
    "preview": "/**\n * Brazilian translation for bootstrap-datetimepicker\n * Cauan Cabral <cauan@radig.com.br>\n */\n;(function($){\n\t$.fn."
  },
  {
    "path": "public/static/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.pt.js",
    "chars": 741,
    "preview": "/**\n * Portuguese translation for bootstrap-datetimepicker\n * Original code: Cauan Cabral <cauan@radig.com.br>\n * Tiago "
  }
]

// ... and 1635 more files (download for full content)

About this extraction

This page contains the full source code of the oitone/wemall GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1835 files (21.9 MB), approximately 5.8M tokens, and a symbol index with 8733 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!