From 3ac390f68ffbe71309a264e926593bef76509097 Mon Sep 17 00:00:00 2001
From: xuanchen <122383162@qq.com>
Date: Mon, 14 Sep 2020 14:29:29 +0800
Subject: [PATCH] first commit
---
.gitignore | 5 +
README.md | 78 +
.../Controllers/Advert/IndexController.php | 81 +
.../Controllers/Article/IndexController.php | 65 +
app/Admin/Controllers/AuthController.php | 10 +
.../Controllers/Category/IndexController.php | 134 +
app/Admin/Controllers/ExampleController.php | 67 +
app/Admin/Controllers/HomeController.php | 34 +
.../Controllers/Link/IndexController.php | 37 +
app/Admin/Routes/advert.php | 12 +
app/Admin/Routes/article.php | 12 +
app/Admin/Routes/category.php | 12 +
app/Admin/Routes/link.php | 12 +
app/Admin/bootstrap.php | 29 +
app/Admin/routes.php | 21 +
app/Console/Kernel.php | 42 +
app/Exceptions/Handler.php | 57 +
app/Http/Controllers/ArticleController.php | 28 +
.../Auth/ConfirmPasswordController.php | 40 +
.../Auth/ForgotPasswordController.php | 22 +
app/Http/Controllers/Auth/LoginController.php | 40 +
.../Controllers/Auth/RegisterController.php | 73 +
.../Auth/ResetPasswordController.php | 30 +
.../Auth/VerificationController.php | 42 +
app/Http/Controllers/CategoryController.php | 33 +
app/Http/Controllers/Controller.php | 38 +
app/Http/Controllers/IndexController.php | 45 +
app/Http/Controllers/TestController.php | 199 +
app/Http/Kernel.php | 82 +
app/Http/Middleware/Authenticate.php | 21 +
.../Middleware/CheckForMaintenanceMode.php | 17 +
app/Http/Middleware/EncryptCookies.php | 17 +
.../Middleware/RedirectIfAuthenticated.php | 27 +
app/Http/Middleware/TrimStrings.php | 18 +
app/Http/Middleware/TrustProxies.php | 23 +
app/Http/Middleware/VerifyCsrfToken.php | 24 +
app/Models/Advert.php | 15 +
app/Models/Article.php | 48 +
app/Models/Category.php | 72 +
app/Models/DedeAddonarticle.php | 7 +
app/Models/DedeArchive.php | 11 +
app/Models/DedeArctype.php | 11 +
app/Models/Link.php | 8 +
app/Models/Model.php | 22 +
app/Models/Traits/BelongsToCategory.php | 21 +
app/Models/Traits/HasOneCover.php | 24 +
app/Providers/AppServiceProvider.php | 34 +
app/Providers/AuthServiceProvider.php | 30 +
app/Providers/BroadcastServiceProvider.php | 21 +
app/Providers/EventServiceProvider.php | 34 +
app/Providers/RouteServiceProvider.php | 80 +
app/Traits/Tree.php | 90 +
app/User.php | 39 +
artisan | 53 +
bootstrap/app.php | 55 +
bootstrap/cache/.gitignore | 2 +
composer.json | 64 +
composer.lock | 6627 ++++
config/admin.php | 409 +
config/app.php | 231 +
config/auth.php | 117 +
config/broadcasting.php | 59 +
config/cache.php | 103 +
config/database.php | 147 +
config/filesystems.php | 77 +
config/hashing.php | 52 +
config/logging.php | 104 +
config/mail.php | 136 +
config/queue.php | 88 +
config/services.php | 33 +
config/session.php | 199 +
config/ueditor.php | 116 +
config/view.php | 36 +
database/.gitignore | 2 +
database/factories/UserFactory.php | 28 +
.../2014_10_12_000000_create_users_table.php | 36 +
...12_100000_create_password_resets_table.php | 32 +
.../2016_01_04_173148_create_admin_tables.php | 119 +
..._08_19_000000_create_failed_jobs_table.php | 35 +
...020_05_28_153525_create_articles_table.php | 31 +
...0_05_28_153536_create_categories_table.php | 31 +
.../2020_05_28_163818_create_links_table.php | 31 +
database/seeds/DatabaseSeeder.php | 16 +
public/.htaccess | 21 +
public/assets/index/css/base.css | 567 +
public/assets/index/css/jquery.slideBox.css | 23 +
public/assets/index/css/main.css | 1425 +
public/assets/index/images/0.png | Bin 0 -> 2583089 bytes
public/assets/index/images/1.png | Bin 0 -> 978390 bytes
public/assets/index/images/2.jpg | Bin 0 -> 129780 bytes
public/assets/index/images/3.jpg | Bin 0 -> 165161 bytes
public/assets/index/images/4.jpg | Bin 0 -> 14580 bytes
public/assets/index/images/5.jpg | Bin 0 -> 7676 bytes
public/assets/index/images/6.jpg | Bin 0 -> 49335 bytes
public/assets/index/images/banner.png | Bin 0 -> 58821 bytes
public/assets/index/images/bg.png | Bin 0 -> 62822 bytes
public/assets/index/images/blue.png | Bin 0 -> 2307 bytes
public/assets/index/images/bmicon.png | Bin 0 -> 1461 bytes
public/assets/index/images/ewm.png | Bin 0 -> 15108 bytes
public/assets/index/images/face1.gif | Bin 0 -> 1443 bytes
public/assets/index/images/face10.gif | Bin 0 -> 2314 bytes
public/assets/index/images/face2.gif | Bin 0 -> 1662 bytes
public/assets/index/images/face3.gif | Bin 0 -> 1841 bytes
public/assets/index/images/face4.gif | Bin 0 -> 3809 bytes
public/assets/index/images/face5.gif | Bin 0 -> 2866 bytes
public/assets/index/images/face6.gif | Bin 0 -> 2375 bytes
public/assets/index/images/face7.gif | Bin 0 -> 2500 bytes
public/assets/index/images/face8.gif | Bin 0 -> 1944 bytes
public/assets/index/images/face9.gif | Bin 0 -> 1398 bytes
public/assets/index/images/footbj.jpg | Bin 0 -> 3275 bytes
public/assets/index/images/fuwu1.png | Bin 0 -> 4757 bytes
public/assets/index/images/fuwu2.png | Bin 0 -> 1460 bytes
public/assets/index/images/fuwu3.png | Bin 0 -> 1640 bytes
public/assets/index/images/fuwu4.png | Bin 0 -> 1880 bytes
public/assets/index/images/fuwu5.png | Bin 0 -> 4834 bytes
public/assets/index/images/gg_00.png | Bin 0 -> 39519 bytes
public/assets/index/images/gg_01.png | Bin 0 -> 35931 bytes
public/assets/index/images/gg_02.png | Bin 0 -> 32962 bytes
public/assets/index/images/gg_03.png | Bin 0 -> 40613 bytes
public/assets/index/images/icon.png | Bin 0 -> 2841 bytes
public/assets/index/images/ine-01.jpg | Bin 0 -> 59635 bytes
public/assets/index/images/ine-02.jpg | Bin 0 -> 44011 bytes
public/assets/index/images/jiantou.png | Bin 0 -> 1014 bytes
public/assets/index/images/jsq.png | Bin 0 -> 755 bytes
public/assets/index/images/jsq2.png | Bin 0 -> 678 bytes
public/assets/index/images/jtt.png | Bin 0 -> 146 bytes
public/assets/index/images/jtx.png | Bin 0 -> 14931 bytes
public/assets/index/images/logo.jpg | Bin 0 -> 53349 bytes
public/assets/index/images/logo.png | Bin 0 -> 41209 bytes
public/assets/index/images/name_00.jpg | Bin 0 -> 12597 bytes
public/assets/index/images/name_01.jpg | Bin 0 -> 30627 bytes
public/assets/index/images/name_02.jpg | Bin 0 -> 12658 bytes
public/assets/index/images/name_03.jpg | Bin 0 -> 21569 bytes
public/assets/index/images/name_04.jpg | Bin 0 -> 167207 bytes
public/assets/index/images/right.png | Bin 0 -> 445 bytes
public/assets/index/images/sanjiao.png | Bin 0 -> 14542 bytes
public/assets/index/images/sanjiao2.png | Bin 0 -> 966 bytes
public/assets/index/images/sficon.png | Bin 0 -> 1350 bytes
public/assets/index/images/shu.png | Bin 0 -> 154 bytes
public/assets/index/images/topbj.jpg | Bin 0 -> 82829 bytes
public/assets/index/images/topbj.png | Bin 0 -> 436236 bytes
.../images/words11_jcfc_content_left_but.png | Bin 0 -> 3608 bytes
.../images/words11_jcfc_content_right_but.png | Bin 0 -> 3590 bytes
public/assets/index/images/zhinan01.png | Bin 0 -> 1723 bytes
public/assets/index/images/zhinan02.png | Bin 0 -> 1685 bytes
public/assets/index/images/zhinan03.png | Bin 0 -> 2042 bytes
public/assets/index/images/zhinan04.png | Bin 0 -> 2095 bytes
public/assets/index/images/zhinan05.png | Bin 0 -> 1925 bytes
public/assets/index/images/zhinan06.png | Bin 0 -> 2176 bytes
public/assets/index/images/zhinan07.png | Bin 0 -> 1884 bytes
public/assets/index/images/zxfw1.png | Bin 0 -> 650 bytes
public/assets/index/images/zxfw2.png | Bin 0 -> 1465 bytes
public/assets/index/images/zxfw3.png | Bin 0 -> 980 bytes
public/assets/index/images/zxfw4.png | Bin 0 -> 1749 bytes
public/assets/index/images/zxfw5.png | Bin 0 -> 1118 bytes
public/assets/index/images/zxfw6.png | Bin 0 -> 1088 bytes
public/assets/index/images/zxfw7.png | Bin 0 -> 1441 bytes
public/assets/index/js/Tabs.js | 106 +
public/assets/index/js/jquery-1.8.3.min.js | 2 +
.../assets/index/js/jquery.leoweather.min.js | 257 +
public/assets/index/js/jquery.page.js | 95 +
public/assets/index/js/jquery.slideBox.min.js | 12 +
public/assets/index/js/lb_jcfc.js | 58 +
public/assets/index/js/nav.js | 59 +
public/assets/index/js/slider.js | 136 +
public/assets/index/upload/newsimg.jpg | Bin 0 -> 128503 bytes
public/assets/index/upload/tup.jpg | Bin 0 -> 23256 bytes
public/favicon.ico | 0
public/index.php | 60 +
public/robots.txt | 2 +
.../AdminLTE/bootstrap/css/bootstrap.min.css | 5 +
.../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes
.../fonts/glyphicons-halflings-regular.svg | 288 +
.../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes
.../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes
.../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes
.../AdminLTE/bootstrap/js/bootstrap.min.js | 7 +
.../AdminLTE/dist/css/AdminLTE.min.css | 7 +
.../dist/css/skins/_all-skins.min.css | 1 +
.../dist/css/skins/skin-black-light.min.css | 1 +
.../dist/css/skins/skin-black.min.css | 1 +
.../dist/css/skins/skin-blue-light.min.css | 1 +
.../AdminLTE/dist/css/skins/skin-blue.min.css | 1 +
.../dist/css/skins/skin-green-light.min.css | 1 +
.../dist/css/skins/skin-green.min.css | 1 +
.../dist/css/skins/skin-purple-light.min.css | 1 +
.../dist/css/skins/skin-purple.min.css | 1 +
.../dist/css/skins/skin-red-light.min.css | 1 +
.../AdminLTE/dist/css/skins/skin-red.min.css | 1 +
.../dist/css/skins/skin-yellow-light.min.css | 1 +
.../dist/css/skins/skin-yellow.min.css | 1 +
.../AdminLTE/dist/img/boxed-bg.jpg | Bin 0 -> 123770 bytes
.../AdminLTE/dist/img/boxed-bg.png | Bin 0 -> 43694 bytes
.../AdminLTE/dist/img/default-50x50.gif | Bin 0 -> 184 bytes
.../laravel-admin/AdminLTE/dist/img/icons.png | Bin 0 -> 1154 bytes
.../AdminLTE/dist/img/user2-160x160.jpg | Bin 0 -> 7070 bytes
.../laravel-admin/AdminLTE/dist/js/app.min.js | 13 +
.../bootstrap-slider/bootstrap-slider.js | 1167 +
.../plugins/bootstrap-slider/slider.css | 169 +
.../colorpicker/bootstrap-colorpicker.min.css | 9 +
.../colorpicker/bootstrap-colorpicker.min.js | 1 +
.../colorpicker/img/alpha-horizontal.png | Bin 0 -> 3635 bytes
.../plugins/colorpicker/img/alpha.png | Bin 0 -> 3271 bytes
.../colorpicker/img/hue-horizontal.png | Bin 0 -> 2837 bytes
.../AdminLTE/plugins/colorpicker/img/hue.png | Bin 0 -> 2972 bytes
.../plugins/colorpicker/img/saturation.png | Bin 0 -> 8817 bytes
.../AdminLTE/plugins/iCheck/all.css | 61 +
.../AdminLTE/plugins/iCheck/flat/_all.css | 560 +
.../AdminLTE/plugins/iCheck/flat/aero.css | 56 +
.../AdminLTE/plugins/iCheck/flat/aero.png | Bin 0 -> 1520 bytes
.../AdminLTE/plugins/iCheck/flat/aero@2x.png | Bin 0 -> 3218 bytes
.../AdminLTE/plugins/iCheck/flat/blue.css | 56 +
.../AdminLTE/plugins/iCheck/flat/blue.png | Bin 0 -> 1518 bytes
.../AdminLTE/plugins/iCheck/flat/blue@2x.png | Bin 0 -> 3217 bytes
.../AdminLTE/plugins/iCheck/flat/flat.css | 56 +
.../AdminLTE/plugins/iCheck/flat/flat.png | Bin 0 -> 1515 bytes
.../AdminLTE/plugins/iCheck/flat/flat@2x.png | Bin 0 -> 3217 bytes
.../AdminLTE/plugins/iCheck/flat/green.css | 56 +
.../AdminLTE/plugins/iCheck/flat/green.png | Bin 0 -> 1444 bytes
.../AdminLTE/plugins/iCheck/flat/green@2x.png | Bin 0 -> 3117 bytes
.../AdminLTE/plugins/iCheck/flat/grey.css | 56 +
.../AdminLTE/plugins/iCheck/flat/grey.png | Bin 0 -> 1516 bytes
.../AdminLTE/plugins/iCheck/flat/grey@2x.png | Bin 0 -> 3217 bytes
.../AdminLTE/plugins/iCheck/flat/orange.css | 56 +
.../AdminLTE/plugins/iCheck/flat/orange.png | Bin 0 -> 1518 bytes
.../plugins/iCheck/flat/orange@2x.png | Bin 0 -> 3275 bytes
.../AdminLTE/plugins/iCheck/flat/pink.css | 56 +
.../AdminLTE/plugins/iCheck/flat/pink.png | Bin 0 -> 1522 bytes
.../AdminLTE/plugins/iCheck/flat/pink@2x.png | Bin 0 -> 3218 bytes
.../AdminLTE/plugins/iCheck/flat/purple.css | 56 +
.../AdminLTE/plugins/iCheck/flat/purple.png | Bin 0 -> 1519 bytes
.../plugins/iCheck/flat/purple@2x.png | Bin 0 -> 3218 bytes
.../AdminLTE/plugins/iCheck/flat/red.css | 56 +
.../AdminLTE/plugins/iCheck/flat/red.png | Bin 0 -> 1516 bytes
.../AdminLTE/plugins/iCheck/flat/red@2x.png | Bin 0 -> 3276 bytes
.../AdminLTE/plugins/iCheck/flat/yellow.css | 56 +
.../AdminLTE/plugins/iCheck/flat/yellow.png | Bin 0 -> 1516 bytes
.../plugins/iCheck/flat/yellow@2x.png | Bin 0 -> 3216 bytes
.../plugins/iCheck/futurico/futurico.css | 56 +
.../plugins/iCheck/futurico/futurico.png | Bin 0 -> 1734 bytes
.../plugins/iCheck/futurico/futurico@2x.png | Bin 0 -> 3446 bytes
.../AdminLTE/plugins/iCheck/icheck.min.js | 10 +
.../AdminLTE/plugins/iCheck/line/_all.css | 740 +
.../AdminLTE/plugins/iCheck/line/aero.css | 74 +
.../AdminLTE/plugins/iCheck/line/blue.css | 74 +
.../AdminLTE/plugins/iCheck/line/green.css | 74 +
.../AdminLTE/plugins/iCheck/line/grey.css | 74 +
.../AdminLTE/plugins/iCheck/line/line.css | 74 +
.../AdminLTE/plugins/iCheck/line/line.png | Bin 0 -> 588 bytes
.../AdminLTE/plugins/iCheck/line/line@2x.png | Bin 0 -> 1073 bytes
.../AdminLTE/plugins/iCheck/line/orange.css | 74 +
.../AdminLTE/plugins/iCheck/line/pink.css | 74 +
.../AdminLTE/plugins/iCheck/line/purple.css | 74 +
.../AdminLTE/plugins/iCheck/line/red.css | 74 +
.../AdminLTE/plugins/iCheck/line/yellow.css | 74 +
.../AdminLTE/plugins/iCheck/minimal/_all.css | 557 +
.../AdminLTE/plugins/iCheck/minimal/aero.css | 62 +
.../AdminLTE/plugins/iCheck/minimal/aero.png | Bin 0 -> 1151 bytes
.../plugins/iCheck/minimal/aero@2x.png | Bin 0 -> 1409 bytes
.../AdminLTE/plugins/iCheck/minimal/blue.css | 62 +
.../AdminLTE/plugins/iCheck/minimal/blue.png | Bin 0 -> 1132 bytes
.../plugins/iCheck/minimal/blue@2x.png | Bin 0 -> 1410 bytes
.../AdminLTE/plugins/iCheck/minimal/green.css | 62 +
.../AdminLTE/plugins/iCheck/minimal/green.png | Bin 0 -> 1143 bytes
.../plugins/iCheck/minimal/green@2x.png | Bin 0 -> 1408 bytes
.../AdminLTE/plugins/iCheck/minimal/grey.css | 62 +
.../AdminLTE/plugins/iCheck/minimal/grey.png | Bin 0 -> 1142 bytes
.../plugins/iCheck/minimal/grey@2x.png | Bin 0 -> 1407 bytes
.../plugins/iCheck/minimal/minimal.css | 62 +
.../plugins/iCheck/minimal/minimal.png | Bin 0 -> 1114 bytes
.../plugins/iCheck/minimal/minimal@2x.png | Bin 0 -> 1410 bytes
.../plugins/iCheck/minimal/orange.css | 62 +
.../plugins/iCheck/minimal/orange.png | Bin 0 -> 1139 bytes
.../plugins/iCheck/minimal/orange@2x.png | Bin 0 -> 1407 bytes
.../AdminLTE/plugins/iCheck/minimal/pink.css | 62 +
.../AdminLTE/plugins/iCheck/minimal/pink.png | Bin 0 -> 1150 bytes
.../plugins/iCheck/minimal/pink@2x.png | Bin 0 -> 1409 bytes
.../plugins/iCheck/minimal/purple.css | 62 +
.../plugins/iCheck/minimal/purple.png | Bin 0 -> 1132 bytes
.../plugins/iCheck/minimal/purple@2x.png | Bin 0 -> 1409 bytes
.../AdminLTE/plugins/iCheck/minimal/red.css | 62 +
.../AdminLTE/plugins/iCheck/minimal/red.png | Bin 0 -> 1130 bytes
.../plugins/iCheck/minimal/red@2x.png | Bin 0 -> 1410 bytes
.../plugins/iCheck/minimal/yellow.css | 62 +
.../plugins/iCheck/minimal/yellow.png | Bin 0 -> 1135 bytes
.../plugins/iCheck/minimal/yellow@2x.png | Bin 0 -> 1406 bytes
.../plugins/iCheck/polaris/polaris.css | 62 +
.../plugins/iCheck/polaris/polaris.png | Bin 0 -> 6401 bytes
.../plugins/iCheck/polaris/polaris@2x.png | Bin 0 -> 16760 bytes
.../AdminLTE/plugins/iCheck/square/_all.css | 620 +
.../AdminLTE/plugins/iCheck/square/aero.css | 62 +
.../AdminLTE/plugins/iCheck/square/aero.png | Bin 0 -> 2167 bytes
.../plugins/iCheck/square/aero@2x.png | Bin 0 -> 4455 bytes
.../AdminLTE/plugins/iCheck/square/blue.css | 62 +
.../AdminLTE/plugins/iCheck/square/blue.png | Bin 0 -> 2185 bytes
.../plugins/iCheck/square/blue@2x.png | Bin 0 -> 4485 bytes
.../AdminLTE/plugins/iCheck/square/green.css | 62 +
.../AdminLTE/plugins/iCheck/square/green.png | Bin 0 -> 2193 bytes
.../plugins/iCheck/square/green@2x.png | Bin 0 -> 4498 bytes
.../AdminLTE/plugins/iCheck/square/grey.css | 62 +
.../AdminLTE/plugins/iCheck/square/grey.png | Bin 0 -> 2186 bytes
.../plugins/iCheck/square/grey@2x.png | Bin 0 -> 4483 bytes
.../AdminLTE/plugins/iCheck/square/orange.css | 62 +
.../AdminLTE/plugins/iCheck/square/orange.png | Bin 0 -> 2181 bytes
.../plugins/iCheck/square/orange@2x.png | Bin 0 -> 4474 bytes
.../AdminLTE/plugins/iCheck/square/pink.css | 62 +
.../AdminLTE/plugins/iCheck/square/pink.png | Bin 0 -> 2189 bytes
.../plugins/iCheck/square/pink@2x.png | Bin 0 -> 4479 bytes
.../AdminLTE/plugins/iCheck/square/purple.css | 62 +
.../AdminLTE/plugins/iCheck/square/purple.png | Bin 0 -> 2188 bytes
.../plugins/iCheck/square/purple@2x.png | Bin 0 -> 4501 bytes
.../AdminLTE/plugins/iCheck/square/red.css | 62 +
.../AdminLTE/plugins/iCheck/square/red.png | Bin 0 -> 2190 bytes
.../AdminLTE/plugins/iCheck/square/red@2x.png | Bin 0 -> 4490 bytes
.../AdminLTE/plugins/iCheck/square/square.css | 62 +
.../AdminLTE/plugins/iCheck/square/square.png | Bin 0 -> 2175 bytes
.../plugins/iCheck/square/square@2x.png | Bin 0 -> 4478 bytes
.../AdminLTE/plugins/iCheck/square/yellow.css | 62 +
.../AdminLTE/plugins/iCheck/square/yellow.png | Bin 0 -> 2131 bytes
.../plugins/iCheck/square/yellow@2x.png | Bin 0 -> 4385 bytes
.../input-mask/jquery.inputmask.bundle.min.js | 10 +
.../input-mask/phone-codes/phone-be.json | 45 +
.../input-mask/phone-codes/phone-codes.json | 294 +
.../plugins/input-mask/phone-codes/readme.txt | 1 +
.../ionslider/img/sprite-skin-flat.png | Bin 0 -> 352 bytes
.../ionslider/img/sprite-skin-nice.png | Bin 0 -> 1022 bytes
.../plugins/ionslider/ion.rangeSlider.css | 126 +
.../plugins/ionslider/ion.rangeSlider.min.js | 22 +
.../ionslider/ion.rangeSlider.skinFlat.css | 89 +
.../ionslider/ion.rangeSlider.skinNice.css | 85 +
.../plugins/jQuery/jQuery-2.1.4.min.js | 4 +
.../AdminLTE/plugins/select2/i18n/ar.js | 3 +
.../AdminLTE/plugins/select2/i18n/az.js | 3 +
.../AdminLTE/plugins/select2/i18n/bg.js | 3 +
.../AdminLTE/plugins/select2/i18n/ca.js | 3 +
.../AdminLTE/plugins/select2/i18n/cs.js | 3 +
.../AdminLTE/plugins/select2/i18n/da.js | 3 +
.../AdminLTE/plugins/select2/i18n/de.js | 3 +
.../AdminLTE/plugins/select2/i18n/el.js | 3 +
.../AdminLTE/plugins/select2/i18n/en.js | 3 +
.../AdminLTE/plugins/select2/i18n/es.js | 3 +
.../AdminLTE/plugins/select2/i18n/et.js | 3 +
.../AdminLTE/plugins/select2/i18n/eu.js | 3 +
.../AdminLTE/plugins/select2/i18n/fa.js | 3 +
.../AdminLTE/plugins/select2/i18n/fi.js | 3 +
.../AdminLTE/plugins/select2/i18n/fr.js | 3 +
.../AdminLTE/plugins/select2/i18n/gl.js | 3 +
.../AdminLTE/plugins/select2/i18n/he.js | 3 +
.../AdminLTE/plugins/select2/i18n/hi.js | 3 +
.../AdminLTE/plugins/select2/i18n/hr.js | 3 +
.../AdminLTE/plugins/select2/i18n/hu.js | 3 +
.../AdminLTE/plugins/select2/i18n/id.js | 3 +
.../AdminLTE/plugins/select2/i18n/is.js | 3 +
.../AdminLTE/plugins/select2/i18n/it.js | 3 +
.../AdminLTE/plugins/select2/i18n/ja.js | 3 +
.../AdminLTE/plugins/select2/i18n/km.js | 3 +
.../AdminLTE/plugins/select2/i18n/ko.js | 3 +
.../AdminLTE/plugins/select2/i18n/lt.js | 3 +
.../AdminLTE/plugins/select2/i18n/lv.js | 3 +
.../AdminLTE/plugins/select2/i18n/mk.js | 3 +
.../AdminLTE/plugins/select2/i18n/ms.js | 3 +
.../AdminLTE/plugins/select2/i18n/nb.js | 3 +
.../AdminLTE/plugins/select2/i18n/nl.js | 3 +
.../AdminLTE/plugins/select2/i18n/pl.js | 3 +
.../AdminLTE/plugins/select2/i18n/pt-BR.js | 3 +
.../AdminLTE/plugins/select2/i18n/pt.js | 3 +
.../AdminLTE/plugins/select2/i18n/ro.js | 3 +
.../AdminLTE/plugins/select2/i18n/ru.js | 3 +
.../AdminLTE/plugins/select2/i18n/sk.js | 3 +
.../AdminLTE/plugins/select2/i18n/sr-Cyrl.js | 3 +
.../AdminLTE/plugins/select2/i18n/sr.js | 3 +
.../AdminLTE/plugins/select2/i18n/sv.js | 3 +
.../AdminLTE/plugins/select2/i18n/th.js | 3 +
.../AdminLTE/plugins/select2/i18n/tr.js | 3 +
.../AdminLTE/plugins/select2/i18n/uk.js | 3 +
.../AdminLTE/plugins/select2/i18n/vi.js | 3 +
.../AdminLTE/plugins/select2/i18n/zh-CN.js | 3 +
.../AdminLTE/plugins/select2/i18n/zh-TW.js | 3 +
.../plugins/select2/select2.full.min.js | 3 +
.../AdminLTE/plugins/select2/select2.min.css | 1 +
.../slimScroll/jquery.slimscroll.min.js | 16 +
.../dist/bootstrap-duallistbox.min.css | 10 +
.../dist/jquery.bootstrap-duallistbox.min.js | 9 +
.../bootstrap-fileinput/css/fileinput.min.css | 12 +
.../bootstrap-fileinput/img/loading-sm.gif | Bin 0 -> 2670 bytes
.../bootstrap-fileinput/img/loading.gif | Bin 0 -> 847 bytes
.../bootstrap-fileinput/js/fileinput.min.js | 13 +
.../js/plugins/canvas-to-blob.js | 95 +
.../js/plugins/canvas-to-blob.min.js | 1 +
.../bootstrap-fileinput/js/plugins/piexif.js | 2471 ++
.../js/plugins/piexif.min.js | 1 +
.../bootstrap-fileinput/js/plugins/purify.js | 1009 +
.../js/plugins/purify.min.js | 1 +
.../js/plugins/sortable.js | 1590 +
.../js/plugins/sortable.min.js | 1 +
.../css/bootstrap3/bootstrap-switch.min.css | 22 +
.../dist/js/bootstrap-switch.min.js | 22 +
.../css/bootstrap-editable.css | 663 +
.../bootstrap3-editable/img/clear.png | Bin 0 -> 509 bytes
.../bootstrap3-editable/img/loading.gif | Bin 0 -> 1849 bytes
.../js/bootstrap-editable.min.js | 7 +
.../css/bootstrap-datetimepicker.min.css | 5 +
.../build/js/bootstrap-datetimepicker.min.js | 9 +
.../font-awesome/css/font-awesome.min.css | 4 +
.../font-awesome/fonts/FontAwesome.otf | Bin 0 -> 134808 bytes
.../fonts/fontawesome-webfont.eot | Bin 0 -> 165742 bytes
.../fonts/fontawesome-webfont.svg | 2671 ++
.../fonts/fontawesome-webfont.ttf | Bin 0 -> 165548 bytes
.../fonts/fontawesome-webfont.woff | Bin 0 -> 98024 bytes
.../fonts/fontawesome-webfont.woff2 | Bin 0 -> 77160 bytes
.../dist/css/fontawesome-iconpicker.min.css | 9 +
.../dist/js/fontawesome-iconpicker.min.js | 1 +
.../laravel-admin/google-fonts/fonts.css | 50 +
.../fonts/Source-Sans-Pro-Bold.ttf | Bin 0 -> 34908 bytes
.../fonts/Source-Sans-Pro-Bold.woff | Bin 0 -> 17264 bytes
.../fonts/Source-Sans-Pro-Bold.woff2 | Bin 0 -> 13892 bytes
.../fonts/Source-Sans-Pro-Italic.ttf | Bin 0 -> 33864 bytes
.../fonts/Source-Sans-Pro-Italic.woff | Bin 0 -> 17288 bytes
.../fonts/Source-Sans-Pro-Italic.woff2 | Bin 0 -> 13980 bytes
.../fonts/Source-Sans-Pro-Light-Italic.ttf | Bin 0 -> 33996 bytes
.../fonts/Source-Sans-Pro-Light-Italic.woff | Bin 0 -> 17304 bytes
.../fonts/Source-Sans-Pro-Light-Italic.woff2 | Bin 0 -> 13772 bytes
.../fonts/Source-Sans-Pro-Light.ttf | Bin 0 -> 35368 bytes
.../fonts/Source-Sans-Pro-Light.woff | Bin 0 -> 17540 bytes
.../fonts/Source-Sans-Pro-Light.woff2 | Bin 0 -> 14308 bytes
.../fonts/Source-Sans-Pro-Semibold-Italic.ttf | Bin 0 -> 33592 bytes
.../Source-Sans-Pro-Semibold-Italic.woff | Bin 0 -> 17168 bytes
.../Source-Sans-Pro-Semibold-Italic.woff2 | Bin 0 -> 13716 bytes
.../fonts/Source-Sans-Pro-Semibold.ttf | Bin 0 -> 34808 bytes
.../fonts/Source-Sans-Pro-Semibold.woff | Bin 0 -> 17380 bytes
.../fonts/Source-Sans-Pro-Semibold.woff2 | Bin 0 -> 13992 bytes
.../google-fonts/fonts/Source-Sans-Pro.eot | Bin 0 -> 16229 bytes
.../google-fonts/fonts/Source-Sans-Pro.svg | 345 +
.../google-fonts/fonts/Source-Sans-Pro.ttf | Bin 0 -> 35064 bytes
.../google-fonts/fonts/Source-Sans-Pro.woff | Bin 0 -> 17500 bytes
.../google-fonts/fonts/Source-Sans-Pro.woff2 | Bin 0 -> 14308 bytes
.../laravel-admin/jquery-pjax/jquery.pjax.js | 950 +
.../laravel-admin/laravel-admin.css | 85 +
.../laravel-admin/laravel-admin.js | 198 +
.../moment/min/moment-with-locales.min.js | 80 +
.../laravel-admin/nestable/jquery.nestable.js | 484 +
.../laravel-admin/nestable/nestable.css | 34 +
.../laravel-admin/nprogress/nprogress.css | 74 +
.../laravel-admin/nprogress/nprogress.js | 476 +
.../number-input/bootstrap-number-input.js | 88 +
.../sweetalert2/dist/sweetalert2.css | 1145 +
.../sweetalert2/dist/sweetalert2.min.js | 1 +
.../laravel-admin/toastr/build/toastr.min.css | 1 +
.../laravel-admin/toastr/build/toastr.min.js | 2 +
.../vendor/ueditor/dialogs/anchor/anchor.html | 40 +
.../ueditor/dialogs/attachment/attachment.css | 681 +
.../dialogs/attachment/attachment.html | 60 +
.../ueditor/dialogs/attachment/attachment.js | 754 +
.../attachment/fileTypeImages/icon_chm.gif | Bin 0 -> 923 bytes
.../fileTypeImages/icon_default.png | Bin 0 -> 841 bytes
.../attachment/fileTypeImages/icon_doc.gif | Bin 0 -> 1012 bytes
.../attachment/fileTypeImages/icon_exe.gif | Bin 0 -> 949 bytes
.../attachment/fileTypeImages/icon_jpg.gif | Bin 0 -> 950 bytes
.../attachment/fileTypeImages/icon_mp3.gif | Bin 0 -> 986 bytes
.../attachment/fileTypeImages/icon_mv.gif | Bin 0 -> 1001 bytes
.../attachment/fileTypeImages/icon_pdf.gif | Bin 0 -> 996 bytes
.../attachment/fileTypeImages/icon_ppt.gif | Bin 0 -> 1001 bytes
.../attachment/fileTypeImages/icon_psd.gif | Bin 0 -> 1009 bytes
.../attachment/fileTypeImages/icon_rar.gif | Bin 0 -> 1007 bytes
.../attachment/fileTypeImages/icon_txt.gif | Bin 0 -> 970 bytes
.../attachment/fileTypeImages/icon_xls.gif | Bin 0 -> 1005 bytes
.../dialogs/attachment/images/alignicon.gif | Bin 0 -> 1051 bytes
.../dialogs/attachment/images/alignicon.png | Bin 0 -> 3714 bytes
.../ueditor/dialogs/attachment/images/bg.png | Bin 0 -> 2810 bytes
.../dialogs/attachment/images/file-icons.gif | Bin 0 -> 20097 bytes
.../dialogs/attachment/images/file-icons.png | Bin 0 -> 44070 bytes
.../dialogs/attachment/images/icons.gif | Bin 0 -> 453 bytes
.../dialogs/attachment/images/icons.png | Bin 0 -> 2678 bytes
.../dialogs/attachment/images/image.png | Bin 0 -> 1672 bytes
.../dialogs/attachment/images/progress.png | Bin 0 -> 1269 bytes
.../dialogs/attachment/images/success.gif | Bin 0 -> 445 bytes
.../dialogs/attachment/images/success.png | Bin 0 -> 1621 bytes
.../ueditor/dialogs/background/background.css | 94 +
.../dialogs/background/background.html | 56 +
.../ueditor/dialogs/background/background.js | 376 +
.../ueditor/dialogs/background/images/bg.png | Bin 0 -> 2810 bytes
.../dialogs/background/images/success.png | Bin 0 -> 1621 bytes
.../ueditor/dialogs/charts/chart.config.js | 65 +
.../vendor/ueditor/dialogs/charts/charts.css | 165 +
.../vendor/ueditor/dialogs/charts/charts.html | 89 +
.../vendor/ueditor/dialogs/charts/charts.js | 519 +
.../ueditor/dialogs/charts/images/charts0.png | Bin 0 -> 25306 bytes
.../ueditor/dialogs/charts/images/charts1.png | Bin 0 -> 19263 bytes
.../ueditor/dialogs/charts/images/charts2.png | Bin 0 -> 23016 bytes
.../ueditor/dialogs/charts/images/charts3.png | Bin 0 -> 7823 bytes
.../ueditor/dialogs/charts/images/charts4.png | Bin 0 -> 8344 bytes
.../ueditor/dialogs/charts/images/charts5.png | Bin 0 -> 47084 bytes
.../ueditor/dialogs/emotion/emotion.css | 43 +
.../ueditor/dialogs/emotion/emotion.html | 54 +
.../vendor/ueditor/dialogs/emotion/emotion.js | 186 +
.../ueditor/dialogs/emotion/images/0.gif | Bin 0 -> 43 bytes
.../ueditor/dialogs/emotion/images/bface.gif | Bin 0 -> 27167 bytes
.../ueditor/dialogs/emotion/images/cface.gif | Bin 0 -> 8603 bytes
.../ueditor/dialogs/emotion/images/fface.gif | Bin 0 -> 18479 bytes
.../dialogs/emotion/images/jxface2.gif | Bin 0 -> 40706 bytes
.../emotion/images/neweditor-tab-bg.png | Bin 0 -> 216 bytes
.../ueditor/dialogs/emotion/images/tface.gif | Bin 0 -> 19805 bytes
.../ueditor/dialogs/emotion/images/wface.gif | Bin 0 -> 49850 bytes
.../ueditor/dialogs/emotion/images/yface.gif | Bin 0 -> 28409 bytes
public/vendor/ueditor/dialogs/gmap/gmap.html | 89 +
public/vendor/ueditor/dialogs/help/help.css | 7 +
public/vendor/ueditor/dialogs/help/help.html | 82 +
public/vendor/ueditor/dialogs/help/help.js | 56 +
public/vendor/ueditor/dialogs/image/image.css | 894 +
.../vendor/ueditor/dialogs/image/image.html | 120 +
public/vendor/ueditor/dialogs/image/image.js | 1139 +
.../dialogs/image/images/alignicon.jpg | Bin 0 -> 16101 bytes
.../ueditor/dialogs/image/images/bg.png | Bin 0 -> 2810 bytes
.../ueditor/dialogs/image/images/icons.gif | Bin 0 -> 453 bytes
.../ueditor/dialogs/image/images/icons.png | Bin 0 -> 2678 bytes
.../ueditor/dialogs/image/images/image.png | Bin 0 -> 1672 bytes
.../ueditor/dialogs/image/images/progress.png | Bin 0 -> 1269 bytes
.../ueditor/dialogs/image/images/success.gif | Bin 0 -> 445 bytes
.../ueditor/dialogs/image/images/success.png | Bin 0 -> 1621 bytes
.../dialogs/insertframe/insertframe.html | 98 +
public/vendor/ueditor/dialogs/internal.js | 81 +
public/vendor/ueditor/dialogs/link/link.html | 126 +
public/vendor/ueditor/dialogs/map/map.html | 135 +
public/vendor/ueditor/dialogs/map/show.html | 118 +
public/vendor/ueditor/dialogs/music/music.css | 30 +
.../vendor/ueditor/dialogs/music/music.html | 32 +
public/vendor/ueditor/dialogs/music/music.js | 192 +
.../ueditor/dialogs/preview/preview.html | 40 +
.../ueditor/dialogs/scrawl/images/addimg.png | Bin 0 -> 628 bytes
.../ueditor/dialogs/scrawl/images/brush.png | Bin 0 -> 608 bytes
.../ueditor/dialogs/scrawl/images/delimg.png | Bin 0 -> 516 bytes
.../ueditor/dialogs/scrawl/images/delimgH.png | Bin 0 -> 578 bytes
.../ueditor/dialogs/scrawl/images/empty.png | Bin 0 -> 519 bytes
.../ueditor/dialogs/scrawl/images/emptyH.png | Bin 0 -> 657 bytes
.../ueditor/dialogs/scrawl/images/eraser.png | Bin 0 -> 43271 bytes
.../ueditor/dialogs/scrawl/images/redo.png | Bin 0 -> 454 bytes
.../ueditor/dialogs/scrawl/images/redoH.png | Bin 0 -> 536 bytes
.../ueditor/dialogs/scrawl/images/scale.png | Bin 0 -> 435 bytes
.../ueditor/dialogs/scrawl/images/scaleH.png | Bin 0 -> 330 bytes
.../ueditor/dialogs/scrawl/images/size.png | Bin 0 -> 775 bytes
.../ueditor/dialogs/scrawl/images/undo.png | Bin 0 -> 444 bytes
.../ueditor/dialogs/scrawl/images/undoH.png | Bin 0 -> 511 bytes
.../vendor/ueditor/dialogs/scrawl/scrawl.css | 72 +
.../vendor/ueditor/dialogs/scrawl/scrawl.html | 95 +
.../vendor/ueditor/dialogs/scrawl/scrawl.js | 671 +
.../dialogs/searchreplace/searchreplace.html | 102 +
.../dialogs/searchreplace/searchreplace.js | 164 +
.../dialogs/snapscreen/snapscreen.html | 58 +
.../ueditor/dialogs/spechars/spechars.html | 21 +
.../ueditor/dialogs/spechars/spechars.js | 57 +
.../vendor/ueditor/dialogs/table/dragicon.png | Bin 0 -> 304 bytes
.../ueditor/dialogs/table/edittable.css | 84 +
.../ueditor/dialogs/table/edittable.html | 64 +
.../vendor/ueditor/dialogs/table/edittable.js | 237 +
.../vendor/ueditor/dialogs/table/edittd.html | 61 +
.../vendor/ueditor/dialogs/table/edittip.html | 33 +
.../vendor/ueditor/dialogs/template/config.js | 42 +
.../ueditor/dialogs/template/images/bg.gif | Bin 0 -> 84 bytes
.../ueditor/dialogs/template/images/pre0.png | Bin 0 -> 250 bytes
.../ueditor/dialogs/template/images/pre1.png | Bin 0 -> 291 bytes
.../ueditor/dialogs/template/images/pre2.png | Bin 0 -> 394 bytes
.../ueditor/dialogs/template/images/pre3.png | Bin 0 -> 485 bytes
.../ueditor/dialogs/template/images/pre4.png | Bin 0 -> 393 bytes
.../ueditor/dialogs/template/template.css | 18 +
.../ueditor/dialogs/template/template.html | 26 +
.../ueditor/dialogs/template/template.js | 53 +
.../ueditor/dialogs/video/images/bg.png | Bin 0 -> 2810 bytes
.../dialogs/video/images/center_focus.jpg | Bin 0 -> 11795 bytes
.../dialogs/video/images/file-icons.gif | Bin 0 -> 20097 bytes
.../dialogs/video/images/file-icons.png | Bin 0 -> 44070 bytes
.../ueditor/dialogs/video/images/icons.gif | Bin 0 -> 453 bytes
.../ueditor/dialogs/video/images/icons.png | Bin 0 -> 2678 bytes
.../ueditor/dialogs/video/images/image.png | Bin 0 -> 1672 bytes
.../dialogs/video/images/left_focus.jpg | Bin 0 -> 11423 bytes
.../dialogs/video/images/none_focus.jpg | Bin 0 -> 11546 bytes
.../ueditor/dialogs/video/images/progress.png | Bin 0 -> 1269 bytes
.../dialogs/video/images/right_focus.jpg | Bin 0 -> 11334 bytes
.../ueditor/dialogs/video/images/success.gif | Bin 0 -> 445 bytes
.../ueditor/dialogs/video/images/success.png | Bin 0 -> 1621 bytes
public/vendor/ueditor/dialogs/video/video.css | 635 +
.../vendor/ueditor/dialogs/video/video.html | 86 +
public/vendor/ueditor/dialogs/video/video.js | 789 +
.../vendor/ueditor/dialogs/webapp/webapp.html | 53 +
.../dialogs/wordimage/fClipboard_ueditor.swf | Bin 0 -> 1908 bytes
.../dialogs/wordimage/imageUploader.swf | Bin 0 -> 62857 bytes
.../ueditor/dialogs/wordimage/tangram.js | 1495 +
.../ueditor/dialogs/wordimage/wordimage.html | 111 +
.../ueditor/dialogs/wordimage/wordimage.js | 157 +
public/vendor/ueditor/index.html | 175 +
public/vendor/ueditor/lang/en/en.js | 684 +
.../ueditor/lang/en/images/addimage.png | Bin 0 -> 3373 bytes
.../lang/en/images/alldeletebtnhoverskin.png | Bin 0 -> 743 bytes
.../lang/en/images/alldeletebtnupskin.png | Bin 0 -> 743 bytes
.../ueditor/lang/en/images/background.png | Bin 0 -> 3854 bytes
.../vendor/ueditor/lang/en/images/button.png | Bin 0 -> 4929 bytes
public/vendor/ueditor/lang/en/images/copy.png | Bin 0 -> 1222 bytes
.../ueditor/lang/en/images/deletedisable.png | Bin 0 -> 649 bytes
.../ueditor/lang/en/images/deleteenable.png | Bin 0 -> 664 bytes
.../ueditor/lang/en/images/listbackground.png | Bin 0 -> 3750 bytes
.../ueditor/lang/en/images/localimage.png | Bin 0 -> 3083 bytes
.../vendor/ueditor/lang/en/images/music.png | Bin 0 -> 91561 bytes
.../lang/en/images/rotateleftdisable.png | Bin 0 -> 719 bytes
.../lang/en/images/rotateleftenable.png | Bin 0 -> 952 bytes
.../lang/en/images/rotaterightdisable.png | Bin 0 -> 754 bytes
.../lang/en/images/rotaterightenable.png | Bin 0 -> 1007 bytes
.../vendor/ueditor/lang/en/images/upload.png | Bin 0 -> 3941 bytes
.../vendor/ueditor/lang/zh-cn/images/copy.png | Bin 0 -> 4319 bytes
.../ueditor/lang/zh-cn/images/localimage.png | Bin 0 -> 6979 bytes
.../ueditor/lang/zh-cn/images/music.png | Bin 0 -> 23106 bytes
.../ueditor/lang/zh-cn/images/upload.png | Bin 0 -> 6608 bytes
public/vendor/ueditor/lang/zh-cn/zh-cn.js | 669 +
.../ueditor/themes/default/css/ueditor.css | 1903 +
.../themes/default/css/ueditor.min.css | 8 +
.../ueditor/themes/default/dialogbase.css | 100 +
.../ueditor/themes/default/images/anchor.gif | Bin 0 -> 184 bytes
.../ueditor/themes/default/images/arrow.png | Bin 0 -> 1173 bytes
.../themes/default/images/arrow_down.png | Bin 0 -> 1610 bytes
.../themes/default/images/arrow_up.png | Bin 0 -> 1649 bytes
.../themes/default/images/button-bg.gif | Bin 0 -> 1114 bytes
.../themes/default/images/cancelbutton.gif | Bin 0 -> 1227 bytes
.../ueditor/themes/default/images/charts.png | Bin 0 -> 518 bytes
.../themes/default/images/cursor_h.gif | Bin 0 -> 253 bytes
.../themes/default/images/cursor_h.png | Bin 0 -> 175 bytes
.../themes/default/images/cursor_v.gif | Bin 0 -> 370 bytes
.../themes/default/images/cursor_v.png | Bin 0 -> 177 bytes
.../themes/default/images/dialog-title-bg.png | Bin 0 -> 938 bytes
.../themes/default/images/filescan.png | Bin 0 -> 4282 bytes
.../themes/default/images/highlighted.gif | Bin 0 -> 111 bytes
.../themes/default/images/icons-all.gif | Bin 0 -> 3750 bytes
.../ueditor/themes/default/images/icons.gif | Bin 0 -> 20947 bytes
.../ueditor/themes/default/images/icons.png | Bin 0 -> 19694 bytes
.../themes/default/images/loaderror.png | Bin 0 -> 3209 bytes
.../ueditor/themes/default/images/loading.gif | Bin 0 -> 734 bytes
.../ueditor/themes/default/images/lock.gif | Bin 0 -> 1062 bytes
.../default/images/neweditor-tab-bg.png | Bin 0 -> 216 bytes
.../themes/default/images/pagebreak.gif | Bin 0 -> 54 bytes
.../ueditor/themes/default/images/scale.png | Bin 0 -> 167 bytes
.../themes/default/images/sortable.png | Bin 0 -> 2851 bytes
.../ueditor/themes/default/images/spacer.gif | Bin 0 -> 43 bytes
.../themes/default/images/sparator_v.png | Bin 0 -> 122 bytes
.../default/images/table-cell-align.png | Bin 0 -> 1847 bytes
.../default/images/tangram-colorpicker.png | Bin 0 -> 17355 bytes
.../themes/default/images/toolbar_bg.png | Bin 0 -> 170 bytes
.../themes/default/images/unhighlighted.gif | Bin 0 -> 111 bytes
.../ueditor/themes/default/images/upload.png | Bin 0 -> 6608 bytes
.../themes/default/images/videologo.gif | Bin 0 -> 1604 bytes
.../ueditor/themes/default/images/word.gif | Bin 0 -> 1019 bytes
.../themes/default/images/wordpaste.png | Bin 0 -> 6467 bytes
public/vendor/ueditor/themes/iframe.css | 1 +
.../third-party/SyntaxHighlighter/shCore.js | 3655 ++
.../SyntaxHighlighter/shCoreDefault.css | 1 +
.../third-party/codemirror/codemirror.css | 104 +
.../third-party/codemirror/codemirror.js | 3581 ++
.../highcharts/adapters/mootools-adapter.js | 13 +
.../adapters/mootools-adapter.src.js | 313 +
.../highcharts/adapters/prototype-adapter.js | 15 +
.../adapters/prototype-adapter.src.js | 316 +
.../adapters/standalone-framework.js | 17 +
.../adapters/standalone-framework.src.js | 583 +
.../third-party/highcharts/highcharts-more.js | 50 +
.../highcharts/highcharts-more.src.js | 2430 ++
.../third-party/highcharts/highcharts.js | 283 +
.../third-party/highcharts/highcharts.src.js | 16974 +++++++++
.../highcharts/modules/annotations.js | 7 +
.../highcharts/modules/annotations.src.js | 401 +
.../highcharts/modules/canvas-tools.js | 133 +
.../highcharts/modules/canvas-tools.src.js | 3113 ++
.../third-party/highcharts/modules/data.js | 17 +
.../highcharts/modules/data.src.js | 582 +
.../highcharts/modules/drilldown.js | 11 +
.../highcharts/modules/drilldown.src.js | 447 +
.../highcharts/modules/exporting.js | 22 +
.../highcharts/modules/exporting.src.js | 709 +
.../third-party/highcharts/modules/funnel.js | 12 +
.../highcharts/modules/funnel.src.js | 289 +
.../third-party/highcharts/modules/heatmap.js | 1 +
.../highcharts/modules/heatmap.src.js | 53 +
.../third-party/highcharts/modules/map.js | 27 +
.../third-party/highcharts/modules/map.src.js | 1002 +
.../highcharts/modules/no-data-to-display.js | 12 +
.../modules/no-data-to-display.src.js | 128 +
.../highcharts/themes/dark-blue.js | 254 +
.../highcharts/themes/dark-green.js | 255 +
.../third-party/highcharts/themes/gray.js | 257 +
.../third-party/highcharts/themes/grid.js | 103 +
.../third-party/highcharts/themes/skies.js | 89 +
.../ueditor/third-party/jquery-1.10.2.js | 9789 +++++
.../ueditor/third-party/jquery-1.10.2.min.js | 6 +
.../ueditor/third-party/jquery-1.10.2.min.map | 1 +
.../snapscreen/UEditorSnapscreen.exe | Bin 0 -> 519936 bytes
.../ueditor/third-party/video-js/font/vjs.eot | Bin 0 -> 3536 bytes
.../ueditor/third-party/video-js/font/vjs.svg | 65 +
.../ueditor/third-party/video-js/font/vjs.ttf | Bin 0 -> 3372 bytes
.../third-party/video-js/font/vjs.woff | Bin 0 -> 4228 bytes
.../ueditor/third-party/video-js/video-js.css | 766 +
.../third-party/video-js/video-js.min.css | 5 +
.../ueditor/third-party/video-js/video-js.swf | Bin 0 -> 16236 bytes
.../ueditor/third-party/video-js/video.dev.js | 7108 ++++
.../ueditor/third-party/video-js/video.js | 129 +
.../third-party/webuploader/Uploader.swf | Bin 0 -> 49382 bytes
.../third-party/webuploader/webuploader.css | 28 +
.../webuploader/webuploader.custom.js | 5670 +++
.../webuploader/webuploader.custom.min.js | 2 +
.../webuploader/webuploader.flashonly.js | 4176 +++
.../webuploader/webuploader.flashonly.min.js | 2 +
.../webuploader/webuploader.html5only.js | 5559 +++
.../webuploader/webuploader.html5only.min.js | 2 +
.../third-party/webuploader/webuploader.js | 6733 ++++
.../webuploader/webuploader.min.js | 2 +
.../webuploader/webuploader.withoutimage.js | 4593 +++
.../webuploader.withoutimage.min.js | 2 +
.../zeroclipboard/ZeroClipboard.js | 1256 +
.../zeroclipboard/ZeroClipboard.min.js | 9 +
.../zeroclipboard/ZeroClipboard.swf | Bin 0 -> 3933 bytes
public/vendor/ueditor/ueditor.all.js | 29431 ++++++++++++++++
public/vendor/ueditor/ueditor.all.min.js | 709 +
public/vendor/ueditor/ueditor.config.js | 413 +
public/vendor/ueditor/ueditor.parse.js | 1022 +
public/vendor/ueditor/ueditor.parse.min.js | 28 +
public/web.config | 28 +
resources/js/app.js | 1 +
resources/js/bootstrap.js | 28 +
resources/lang/ar/admin.php | 105 +
resources/lang/az/admin.php | 102 +
resources/lang/en/admin.php | 107 +
resources/lang/en/auth.php | 19 +
resources/lang/en/pagination.php | 19 +
resources/lang/en/passwords.php | 22 +
resources/lang/en/validation.php | 151 +
resources/lang/es/admin.php | 90 +
resources/lang/fa/admin.php | 102 +
resources/lang/fr/admin.php | 102 +
resources/lang/he/admin.php | 79 +
resources/lang/id/admin.php | 106 +
resources/lang/ja/admin.php | 102 +
resources/lang/ko/admin.php | 104 +
resources/lang/ms/admin.php | 102 +
resources/lang/nl/admin.php | 107 +
resources/lang/pl/admin.php | 78 +
resources/lang/pt-BR/admin.php | 102 +
resources/lang/pt/admin.php | 102 +
resources/lang/ru/admin.php | 107 +
resources/lang/tr/admin.php | 107 +
resources/lang/uk/admin.php | 106 +
resources/lang/ur/admin.php | 107 +
resources/lang/vendor/ueditor/en/upload.php | 34 +
.../lang/vendor/ueditor/zh-CN/upload.php | 31 +
.../lang/vendor/ueditor/zh-TW/upload.php | 33 +
resources/lang/zh-CN/admin.php | 106 +
resources/lang/zh-TW/admin.php | 105 +
resources/sass/app.scss | 1 +
resources/views/article/show.blade.php | 63 +
resources/views/category/show.blade.php | 83 +
resources/views/index/index.blade.php | 305 +
resources/views/layouts/app.blade.php | 75 +
resources/views/layouts/pagination.blade.php | 50 +
resources/views/layouts/top.blade.php | 1 +
.../views/vendor/ueditor/assets.blade.php | 7 +
resources/views/welcome.blade.php | 100 +
routes/api.php | 18 +
routes/channels.php | 16 +
routes/console.php | 18 +
routes/web.php | 23 +
tests/CreatesApplication.php | 22 +
tests/Feature/ExampleTest.php | 21 +
tests/TestCase.php | 10 +
tests/Unit/ExampleTest.php | 18 +
767 files changed, 166582 insertions(+)
create mode 100644 .gitignore
create mode 100644 README.md
create mode 100644 app/Admin/Controllers/Advert/IndexController.php
create mode 100644 app/Admin/Controllers/Article/IndexController.php
create mode 100644 app/Admin/Controllers/AuthController.php
create mode 100644 app/Admin/Controllers/Category/IndexController.php
create mode 100644 app/Admin/Controllers/ExampleController.php
create mode 100644 app/Admin/Controllers/HomeController.php
create mode 100644 app/Admin/Controllers/Link/IndexController.php
create mode 100644 app/Admin/Routes/advert.php
create mode 100644 app/Admin/Routes/article.php
create mode 100644 app/Admin/Routes/category.php
create mode 100644 app/Admin/Routes/link.php
create mode 100644 app/Admin/bootstrap.php
create mode 100644 app/Admin/routes.php
create mode 100644 app/Console/Kernel.php
create mode 100644 app/Exceptions/Handler.php
create mode 100644 app/Http/Controllers/ArticleController.php
create mode 100644 app/Http/Controllers/Auth/ConfirmPasswordController.php
create mode 100644 app/Http/Controllers/Auth/ForgotPasswordController.php
create mode 100644 app/Http/Controllers/Auth/LoginController.php
create mode 100644 app/Http/Controllers/Auth/RegisterController.php
create mode 100644 app/Http/Controllers/Auth/ResetPasswordController.php
create mode 100644 app/Http/Controllers/Auth/VerificationController.php
create mode 100644 app/Http/Controllers/CategoryController.php
create mode 100644 app/Http/Controllers/Controller.php
create mode 100644 app/Http/Controllers/IndexController.php
create mode 100644 app/Http/Controllers/TestController.php
create mode 100644 app/Http/Kernel.php
create mode 100644 app/Http/Middleware/Authenticate.php
create mode 100644 app/Http/Middleware/CheckForMaintenanceMode.php
create mode 100644 app/Http/Middleware/EncryptCookies.php
create mode 100644 app/Http/Middleware/RedirectIfAuthenticated.php
create mode 100644 app/Http/Middleware/TrimStrings.php
create mode 100644 app/Http/Middleware/TrustProxies.php
create mode 100644 app/Http/Middleware/VerifyCsrfToken.php
create mode 100644 app/Models/Advert.php
create mode 100644 app/Models/Article.php
create mode 100644 app/Models/Category.php
create mode 100644 app/Models/DedeAddonarticle.php
create mode 100644 app/Models/DedeArchive.php
create mode 100644 app/Models/DedeArctype.php
create mode 100644 app/Models/Link.php
create mode 100644 app/Models/Model.php
create mode 100644 app/Models/Traits/BelongsToCategory.php
create mode 100644 app/Models/Traits/HasOneCover.php
create mode 100644 app/Providers/AppServiceProvider.php
create mode 100644 app/Providers/AuthServiceProvider.php
create mode 100644 app/Providers/BroadcastServiceProvider.php
create mode 100644 app/Providers/EventServiceProvider.php
create mode 100644 app/Providers/RouteServiceProvider.php
create mode 100644 app/Traits/Tree.php
create mode 100644 app/User.php
create mode 100644 artisan
create mode 100644 bootstrap/app.php
create mode 100644 bootstrap/cache/.gitignore
create mode 100644 composer.json
create mode 100644 composer.lock
create mode 100644 config/admin.php
create mode 100644 config/app.php
create mode 100644 config/auth.php
create mode 100644 config/broadcasting.php
create mode 100644 config/cache.php
create mode 100644 config/database.php
create mode 100644 config/filesystems.php
create mode 100644 config/hashing.php
create mode 100644 config/logging.php
create mode 100644 config/mail.php
create mode 100644 config/queue.php
create mode 100644 config/services.php
create mode 100644 config/session.php
create mode 100644 config/ueditor.php
create mode 100644 config/view.php
create mode 100644 database/.gitignore
create mode 100644 database/factories/UserFactory.php
create mode 100644 database/migrations/2014_10_12_000000_create_users_table.php
create mode 100644 database/migrations/2014_10_12_100000_create_password_resets_table.php
create mode 100644 database/migrations/2016_01_04_173148_create_admin_tables.php
create mode 100644 database/migrations/2019_08_19_000000_create_failed_jobs_table.php
create mode 100644 database/migrations/2020_05_28_153525_create_articles_table.php
create mode 100644 database/migrations/2020_05_28_153536_create_categories_table.php
create mode 100644 database/migrations/2020_05_28_163818_create_links_table.php
create mode 100644 database/seeds/DatabaseSeeder.php
create mode 100644 public/.htaccess
create mode 100644 public/assets/index/css/base.css
create mode 100644 public/assets/index/css/jquery.slideBox.css
create mode 100644 public/assets/index/css/main.css
create mode 100644 public/assets/index/images/0.png
create mode 100644 public/assets/index/images/1.png
create mode 100644 public/assets/index/images/2.jpg
create mode 100644 public/assets/index/images/3.jpg
create mode 100644 public/assets/index/images/4.jpg
create mode 100644 public/assets/index/images/5.jpg
create mode 100644 public/assets/index/images/6.jpg
create mode 100644 public/assets/index/images/banner.png
create mode 100644 public/assets/index/images/bg.png
create mode 100644 public/assets/index/images/blue.png
create mode 100644 public/assets/index/images/bmicon.png
create mode 100644 public/assets/index/images/ewm.png
create mode 100644 public/assets/index/images/face1.gif
create mode 100644 public/assets/index/images/face10.gif
create mode 100644 public/assets/index/images/face2.gif
create mode 100644 public/assets/index/images/face3.gif
create mode 100644 public/assets/index/images/face4.gif
create mode 100644 public/assets/index/images/face5.gif
create mode 100644 public/assets/index/images/face6.gif
create mode 100644 public/assets/index/images/face7.gif
create mode 100644 public/assets/index/images/face8.gif
create mode 100644 public/assets/index/images/face9.gif
create mode 100644 public/assets/index/images/footbj.jpg
create mode 100644 public/assets/index/images/fuwu1.png
create mode 100644 public/assets/index/images/fuwu2.png
create mode 100644 public/assets/index/images/fuwu3.png
create mode 100644 public/assets/index/images/fuwu4.png
create mode 100644 public/assets/index/images/fuwu5.png
create mode 100644 public/assets/index/images/gg_00.png
create mode 100644 public/assets/index/images/gg_01.png
create mode 100644 public/assets/index/images/gg_02.png
create mode 100644 public/assets/index/images/gg_03.png
create mode 100644 public/assets/index/images/icon.png
create mode 100644 public/assets/index/images/ine-01.jpg
create mode 100644 public/assets/index/images/ine-02.jpg
create mode 100644 public/assets/index/images/jiantou.png
create mode 100644 public/assets/index/images/jsq.png
create mode 100644 public/assets/index/images/jsq2.png
create mode 100644 public/assets/index/images/jtt.png
create mode 100644 public/assets/index/images/jtx.png
create mode 100644 public/assets/index/images/logo.jpg
create mode 100644 public/assets/index/images/logo.png
create mode 100644 public/assets/index/images/name_00.jpg
create mode 100644 public/assets/index/images/name_01.jpg
create mode 100644 public/assets/index/images/name_02.jpg
create mode 100644 public/assets/index/images/name_03.jpg
create mode 100644 public/assets/index/images/name_04.jpg
create mode 100644 public/assets/index/images/right.png
create mode 100644 public/assets/index/images/sanjiao.png
create mode 100644 public/assets/index/images/sanjiao2.png
create mode 100644 public/assets/index/images/sficon.png
create mode 100644 public/assets/index/images/shu.png
create mode 100644 public/assets/index/images/topbj.jpg
create mode 100644 public/assets/index/images/topbj.png
create mode 100644 public/assets/index/images/words11_jcfc_content_left_but.png
create mode 100644 public/assets/index/images/words11_jcfc_content_right_but.png
create mode 100644 public/assets/index/images/zhinan01.png
create mode 100644 public/assets/index/images/zhinan02.png
create mode 100644 public/assets/index/images/zhinan03.png
create mode 100644 public/assets/index/images/zhinan04.png
create mode 100644 public/assets/index/images/zhinan05.png
create mode 100644 public/assets/index/images/zhinan06.png
create mode 100644 public/assets/index/images/zhinan07.png
create mode 100644 public/assets/index/images/zxfw1.png
create mode 100644 public/assets/index/images/zxfw2.png
create mode 100644 public/assets/index/images/zxfw3.png
create mode 100644 public/assets/index/images/zxfw4.png
create mode 100644 public/assets/index/images/zxfw5.png
create mode 100644 public/assets/index/images/zxfw6.png
create mode 100644 public/assets/index/images/zxfw7.png
create mode 100644 public/assets/index/js/Tabs.js
create mode 100644 public/assets/index/js/jquery-1.8.3.min.js
create mode 100644 public/assets/index/js/jquery.leoweather.min.js
create mode 100644 public/assets/index/js/jquery.page.js
create mode 100644 public/assets/index/js/jquery.slideBox.min.js
create mode 100644 public/assets/index/js/lb_jcfc.js
create mode 100644 public/assets/index/js/nav.js
create mode 100644 public/assets/index/js/slider.js
create mode 100644 public/assets/index/upload/newsimg.jpg
create mode 100644 public/assets/index/upload/tup.jpg
create mode 100644 public/favicon.ico
create mode 100644 public/index.php
create mode 100644 public/robots.txt
create mode 100644 public/vendor/laravel-admin/AdminLTE/bootstrap/css/bootstrap.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/bootstrap/fonts/glyphicons-halflings-regular.eot
create mode 100644 public/vendor/laravel-admin/AdminLTE/bootstrap/fonts/glyphicons-halflings-regular.svg
create mode 100644 public/vendor/laravel-admin/AdminLTE/bootstrap/fonts/glyphicons-halflings-regular.ttf
create mode 100644 public/vendor/laravel-admin/AdminLTE/bootstrap/fonts/glyphicons-halflings-regular.woff
create mode 100644 public/vendor/laravel-admin/AdminLTE/bootstrap/fonts/glyphicons-halflings-regular.woff2
create mode 100644 public/vendor/laravel-admin/AdminLTE/bootstrap/js/bootstrap.min.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/AdminLTE.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/_all-skins.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-black-light.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-black.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-blue-light.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-blue.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-green-light.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-green.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-purple-light.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-purple.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-red-light.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-red.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-yellow-light.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-yellow.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/img/boxed-bg.jpg
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/img/boxed-bg.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/img/default-50x50.gif
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/img/icons.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/img/user2-160x160.jpg
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/js/app.min.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/bootstrap-slider/bootstrap-slider.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/bootstrap-slider/slider.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/colorpicker/bootstrap-colorpicker.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/colorpicker/bootstrap-colorpicker.min.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/colorpicker/img/alpha-horizontal.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/colorpicker/img/alpha.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/colorpicker/img/hue-horizontal.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/colorpicker/img/hue.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/colorpicker/img/saturation.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/all.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/_all.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/aero.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/aero.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/aero@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/blue.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/blue.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/blue@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/flat.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/flat.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/flat@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/green.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/green.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/green@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/grey.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/grey.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/grey@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/orange.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/orange.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/orange@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/pink.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/pink.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/pink@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/purple.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/purple.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/purple@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/red.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/red.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/red@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/yellow.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/yellow.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/yellow@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/futurico/futurico.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/futurico/futurico.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/futurico/futurico@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/icheck.min.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/_all.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/aero.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/blue.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/green.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/grey.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/line.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/line.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/line@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/orange.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/pink.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/purple.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/red.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/yellow.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/_all.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/aero.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/aero.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/aero@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/blue.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/blue.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/blue@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/green.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/green.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/green@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/grey.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/grey.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/grey@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/minimal.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/minimal.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/minimal@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/orange.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/orange.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/orange@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/pink.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/pink.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/pink@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/purple.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/purple.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/purple@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/red.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/red.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/red@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/yellow.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/yellow.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/yellow@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/polaris/polaris.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/polaris/polaris.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/polaris/polaris@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/_all.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/aero.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/aero.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/aero@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/blue.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/blue.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/blue@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/green.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/green.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/green@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/grey.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/grey.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/grey@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/orange.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/orange.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/orange@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/pink.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/pink.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/pink@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/purple.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/purple.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/purple@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/red.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/red.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/red@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/square.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/square.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/square@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/yellow.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/yellow.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/yellow@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/input-mask/jquery.inputmask.bundle.min.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/input-mask/phone-codes/phone-be.json
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/input-mask/phone-codes/phone-codes.json
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/input-mask/phone-codes/readme.txt
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/ionslider/img/sprite-skin-flat.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/ionslider/img/sprite-skin-nice.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/ionslider/ion.rangeSlider.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/ionslider/ion.rangeSlider.min.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/ionslider/ion.rangeSlider.skinFlat.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/ionslider/ion.rangeSlider.skinNice.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/jQuery/jQuery-2.1.4.min.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ar.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/az.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/bg.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ca.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/cs.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/da.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/de.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/el.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/en.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/es.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/et.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/eu.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/fa.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/fi.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/fr.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/gl.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/he.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/hi.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/hr.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/hu.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/id.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/is.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/it.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ja.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/km.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ko.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/lt.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/lv.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/mk.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ms.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/nb.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/nl.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/pl.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/pt-BR.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/pt.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ro.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ru.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/sk.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/sr-Cyrl.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/sr.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/sv.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/th.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/tr.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/uk.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/vi.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/zh-CN.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/zh-TW.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/select2.full.min.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/select2.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/slimScroll/jquery.slimscroll.min.js
create mode 100644 public/vendor/laravel-admin/bootstrap-duallistbox/dist/bootstrap-duallistbox.min.css
create mode 100644 public/vendor/laravel-admin/bootstrap-duallistbox/dist/jquery.bootstrap-duallistbox.min.js
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/css/fileinput.min.css
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/img/loading-sm.gif
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/img/loading.gif
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/js/fileinput.min.js
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/js/plugins/canvas-to-blob.js
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/js/plugins/canvas-to-blob.min.js
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/js/plugins/piexif.js
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/js/plugins/piexif.min.js
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/js/plugins/purify.js
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/js/plugins/purify.min.js
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/js/plugins/sortable.js
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/js/plugins/sortable.min.js
create mode 100644 public/vendor/laravel-admin/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css
create mode 100644 public/vendor/laravel-admin/bootstrap-switch/dist/js/bootstrap-switch.min.js
create mode 100644 public/vendor/laravel-admin/bootstrap3-editable/css/bootstrap-editable.css
create mode 100644 public/vendor/laravel-admin/bootstrap3-editable/img/clear.png
create mode 100644 public/vendor/laravel-admin/bootstrap3-editable/img/loading.gif
create mode 100644 public/vendor/laravel-admin/bootstrap3-editable/js/bootstrap-editable.min.js
create mode 100644 public/vendor/laravel-admin/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css
create mode 100644 public/vendor/laravel-admin/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js
create mode 100644 public/vendor/laravel-admin/font-awesome/css/font-awesome.min.css
create mode 100644 public/vendor/laravel-admin/font-awesome/fonts/FontAwesome.otf
create mode 100644 public/vendor/laravel-admin/font-awesome/fonts/fontawesome-webfont.eot
create mode 100644 public/vendor/laravel-admin/font-awesome/fonts/fontawesome-webfont.svg
create mode 100644 public/vendor/laravel-admin/font-awesome/fonts/fontawesome-webfont.ttf
create mode 100644 public/vendor/laravel-admin/font-awesome/fonts/fontawesome-webfont.woff
create mode 100644 public/vendor/laravel-admin/font-awesome/fonts/fontawesome-webfont.woff2
create mode 100644 public/vendor/laravel-admin/fontawesome-iconpicker/dist/css/fontawesome-iconpicker.min.css
create mode 100644 public/vendor/laravel-admin/fontawesome-iconpicker/dist/js/fontawesome-iconpicker.min.js
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts.css
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Bold.ttf
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Bold.woff
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Bold.woff2
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Italic.ttf
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Italic.woff
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Italic.woff2
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Light-Italic.ttf
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Light-Italic.woff
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Light-Italic.woff2
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Light.ttf
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Light.woff
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Light.woff2
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Semibold-Italic.ttf
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Semibold-Italic.woff
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Semibold-Italic.woff2
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Semibold.ttf
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Semibold.woff
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Semibold.woff2
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro.eot
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro.svg
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro.ttf
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro.woff
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro.woff2
create mode 100644 public/vendor/laravel-admin/jquery-pjax/jquery.pjax.js
create mode 100644 public/vendor/laravel-admin/laravel-admin/laravel-admin.css
create mode 100644 public/vendor/laravel-admin/laravel-admin/laravel-admin.js
create mode 100644 public/vendor/laravel-admin/moment/min/moment-with-locales.min.js
create mode 100644 public/vendor/laravel-admin/nestable/jquery.nestable.js
create mode 100644 public/vendor/laravel-admin/nestable/nestable.css
create mode 100644 public/vendor/laravel-admin/nprogress/nprogress.css
create mode 100644 public/vendor/laravel-admin/nprogress/nprogress.js
create mode 100644 public/vendor/laravel-admin/number-input/bootstrap-number-input.js
create mode 100644 public/vendor/laravel-admin/sweetalert2/dist/sweetalert2.css
create mode 100644 public/vendor/laravel-admin/sweetalert2/dist/sweetalert2.min.js
create mode 100644 public/vendor/laravel-admin/toastr/build/toastr.min.css
create mode 100644 public/vendor/laravel-admin/toastr/build/toastr.min.js
create mode 100644 public/vendor/ueditor/dialogs/anchor/anchor.html
create mode 100644 public/vendor/ueditor/dialogs/attachment/attachment.css
create mode 100644 public/vendor/ueditor/dialogs/attachment/attachment.html
create mode 100644 public/vendor/ueditor/dialogs/attachment/attachment.js
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_chm.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_default.png
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_doc.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_exe.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_jpg.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_mp3.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_mv.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_pdf.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_ppt.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_psd.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_rar.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_txt.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_xls.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/images/alignicon.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/images/alignicon.png
create mode 100644 public/vendor/ueditor/dialogs/attachment/images/bg.png
create mode 100644 public/vendor/ueditor/dialogs/attachment/images/file-icons.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/images/file-icons.png
create mode 100644 public/vendor/ueditor/dialogs/attachment/images/icons.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/images/icons.png
create mode 100644 public/vendor/ueditor/dialogs/attachment/images/image.png
create mode 100644 public/vendor/ueditor/dialogs/attachment/images/progress.png
create mode 100644 public/vendor/ueditor/dialogs/attachment/images/success.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/images/success.png
create mode 100644 public/vendor/ueditor/dialogs/background/background.css
create mode 100644 public/vendor/ueditor/dialogs/background/background.html
create mode 100644 public/vendor/ueditor/dialogs/background/background.js
create mode 100644 public/vendor/ueditor/dialogs/background/images/bg.png
create mode 100644 public/vendor/ueditor/dialogs/background/images/success.png
create mode 100644 public/vendor/ueditor/dialogs/charts/chart.config.js
create mode 100644 public/vendor/ueditor/dialogs/charts/charts.css
create mode 100644 public/vendor/ueditor/dialogs/charts/charts.html
create mode 100644 public/vendor/ueditor/dialogs/charts/charts.js
create mode 100644 public/vendor/ueditor/dialogs/charts/images/charts0.png
create mode 100644 public/vendor/ueditor/dialogs/charts/images/charts1.png
create mode 100644 public/vendor/ueditor/dialogs/charts/images/charts2.png
create mode 100644 public/vendor/ueditor/dialogs/charts/images/charts3.png
create mode 100644 public/vendor/ueditor/dialogs/charts/images/charts4.png
create mode 100644 public/vendor/ueditor/dialogs/charts/images/charts5.png
create mode 100644 public/vendor/ueditor/dialogs/emotion/emotion.css
create mode 100644 public/vendor/ueditor/dialogs/emotion/emotion.html
create mode 100644 public/vendor/ueditor/dialogs/emotion/emotion.js
create mode 100644 public/vendor/ueditor/dialogs/emotion/images/0.gif
create mode 100644 public/vendor/ueditor/dialogs/emotion/images/bface.gif
create mode 100644 public/vendor/ueditor/dialogs/emotion/images/cface.gif
create mode 100644 public/vendor/ueditor/dialogs/emotion/images/fface.gif
create mode 100644 public/vendor/ueditor/dialogs/emotion/images/jxface2.gif
create mode 100644 public/vendor/ueditor/dialogs/emotion/images/neweditor-tab-bg.png
create mode 100644 public/vendor/ueditor/dialogs/emotion/images/tface.gif
create mode 100644 public/vendor/ueditor/dialogs/emotion/images/wface.gif
create mode 100644 public/vendor/ueditor/dialogs/emotion/images/yface.gif
create mode 100644 public/vendor/ueditor/dialogs/gmap/gmap.html
create mode 100644 public/vendor/ueditor/dialogs/help/help.css
create mode 100644 public/vendor/ueditor/dialogs/help/help.html
create mode 100644 public/vendor/ueditor/dialogs/help/help.js
create mode 100644 public/vendor/ueditor/dialogs/image/image.css
create mode 100644 public/vendor/ueditor/dialogs/image/image.html
create mode 100644 public/vendor/ueditor/dialogs/image/image.js
create mode 100644 public/vendor/ueditor/dialogs/image/images/alignicon.jpg
create mode 100644 public/vendor/ueditor/dialogs/image/images/bg.png
create mode 100644 public/vendor/ueditor/dialogs/image/images/icons.gif
create mode 100644 public/vendor/ueditor/dialogs/image/images/icons.png
create mode 100644 public/vendor/ueditor/dialogs/image/images/image.png
create mode 100644 public/vendor/ueditor/dialogs/image/images/progress.png
create mode 100644 public/vendor/ueditor/dialogs/image/images/success.gif
create mode 100644 public/vendor/ueditor/dialogs/image/images/success.png
create mode 100644 public/vendor/ueditor/dialogs/insertframe/insertframe.html
create mode 100644 public/vendor/ueditor/dialogs/internal.js
create mode 100644 public/vendor/ueditor/dialogs/link/link.html
create mode 100644 public/vendor/ueditor/dialogs/map/map.html
create mode 100644 public/vendor/ueditor/dialogs/map/show.html
create mode 100644 public/vendor/ueditor/dialogs/music/music.css
create mode 100644 public/vendor/ueditor/dialogs/music/music.html
create mode 100644 public/vendor/ueditor/dialogs/music/music.js
create mode 100644 public/vendor/ueditor/dialogs/preview/preview.html
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/addimg.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/brush.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/delimg.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/delimgH.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/empty.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/emptyH.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/eraser.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/redo.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/redoH.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/scale.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/scaleH.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/size.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/undo.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/undoH.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/scrawl.css
create mode 100644 public/vendor/ueditor/dialogs/scrawl/scrawl.html
create mode 100644 public/vendor/ueditor/dialogs/scrawl/scrawl.js
create mode 100644 public/vendor/ueditor/dialogs/searchreplace/searchreplace.html
create mode 100644 public/vendor/ueditor/dialogs/searchreplace/searchreplace.js
create mode 100644 public/vendor/ueditor/dialogs/snapscreen/snapscreen.html
create mode 100644 public/vendor/ueditor/dialogs/spechars/spechars.html
create mode 100644 public/vendor/ueditor/dialogs/spechars/spechars.js
create mode 100644 public/vendor/ueditor/dialogs/table/dragicon.png
create mode 100644 public/vendor/ueditor/dialogs/table/edittable.css
create mode 100644 public/vendor/ueditor/dialogs/table/edittable.html
create mode 100644 public/vendor/ueditor/dialogs/table/edittable.js
create mode 100644 public/vendor/ueditor/dialogs/table/edittd.html
create mode 100644 public/vendor/ueditor/dialogs/table/edittip.html
create mode 100644 public/vendor/ueditor/dialogs/template/config.js
create mode 100644 public/vendor/ueditor/dialogs/template/images/bg.gif
create mode 100644 public/vendor/ueditor/dialogs/template/images/pre0.png
create mode 100644 public/vendor/ueditor/dialogs/template/images/pre1.png
create mode 100644 public/vendor/ueditor/dialogs/template/images/pre2.png
create mode 100644 public/vendor/ueditor/dialogs/template/images/pre3.png
create mode 100644 public/vendor/ueditor/dialogs/template/images/pre4.png
create mode 100644 public/vendor/ueditor/dialogs/template/template.css
create mode 100644 public/vendor/ueditor/dialogs/template/template.html
create mode 100644 public/vendor/ueditor/dialogs/template/template.js
create mode 100644 public/vendor/ueditor/dialogs/video/images/bg.png
create mode 100644 public/vendor/ueditor/dialogs/video/images/center_focus.jpg
create mode 100644 public/vendor/ueditor/dialogs/video/images/file-icons.gif
create mode 100644 public/vendor/ueditor/dialogs/video/images/file-icons.png
create mode 100644 public/vendor/ueditor/dialogs/video/images/icons.gif
create mode 100644 public/vendor/ueditor/dialogs/video/images/icons.png
create mode 100644 public/vendor/ueditor/dialogs/video/images/image.png
create mode 100644 public/vendor/ueditor/dialogs/video/images/left_focus.jpg
create mode 100644 public/vendor/ueditor/dialogs/video/images/none_focus.jpg
create mode 100644 public/vendor/ueditor/dialogs/video/images/progress.png
create mode 100644 public/vendor/ueditor/dialogs/video/images/right_focus.jpg
create mode 100644 public/vendor/ueditor/dialogs/video/images/success.gif
create mode 100644 public/vendor/ueditor/dialogs/video/images/success.png
create mode 100644 public/vendor/ueditor/dialogs/video/video.css
create mode 100644 public/vendor/ueditor/dialogs/video/video.html
create mode 100644 public/vendor/ueditor/dialogs/video/video.js
create mode 100644 public/vendor/ueditor/dialogs/webapp/webapp.html
create mode 100644 public/vendor/ueditor/dialogs/wordimage/fClipboard_ueditor.swf
create mode 100644 public/vendor/ueditor/dialogs/wordimage/imageUploader.swf
create mode 100644 public/vendor/ueditor/dialogs/wordimage/tangram.js
create mode 100644 public/vendor/ueditor/dialogs/wordimage/wordimage.html
create mode 100644 public/vendor/ueditor/dialogs/wordimage/wordimage.js
create mode 100644 public/vendor/ueditor/index.html
create mode 100644 public/vendor/ueditor/lang/en/en.js
create mode 100644 public/vendor/ueditor/lang/en/images/addimage.png
create mode 100644 public/vendor/ueditor/lang/en/images/alldeletebtnhoverskin.png
create mode 100644 public/vendor/ueditor/lang/en/images/alldeletebtnupskin.png
create mode 100644 public/vendor/ueditor/lang/en/images/background.png
create mode 100644 public/vendor/ueditor/lang/en/images/button.png
create mode 100644 public/vendor/ueditor/lang/en/images/copy.png
create mode 100644 public/vendor/ueditor/lang/en/images/deletedisable.png
create mode 100644 public/vendor/ueditor/lang/en/images/deleteenable.png
create mode 100644 public/vendor/ueditor/lang/en/images/listbackground.png
create mode 100644 public/vendor/ueditor/lang/en/images/localimage.png
create mode 100644 public/vendor/ueditor/lang/en/images/music.png
create mode 100644 public/vendor/ueditor/lang/en/images/rotateleftdisable.png
create mode 100644 public/vendor/ueditor/lang/en/images/rotateleftenable.png
create mode 100644 public/vendor/ueditor/lang/en/images/rotaterightdisable.png
create mode 100644 public/vendor/ueditor/lang/en/images/rotaterightenable.png
create mode 100644 public/vendor/ueditor/lang/en/images/upload.png
create mode 100644 public/vendor/ueditor/lang/zh-cn/images/copy.png
create mode 100644 public/vendor/ueditor/lang/zh-cn/images/localimage.png
create mode 100644 public/vendor/ueditor/lang/zh-cn/images/music.png
create mode 100644 public/vendor/ueditor/lang/zh-cn/images/upload.png
create mode 100644 public/vendor/ueditor/lang/zh-cn/zh-cn.js
create mode 100644 public/vendor/ueditor/themes/default/css/ueditor.css
create mode 100644 public/vendor/ueditor/themes/default/css/ueditor.min.css
create mode 100644 public/vendor/ueditor/themes/default/dialogbase.css
create mode 100644 public/vendor/ueditor/themes/default/images/anchor.gif
create mode 100644 public/vendor/ueditor/themes/default/images/arrow.png
create mode 100644 public/vendor/ueditor/themes/default/images/arrow_down.png
create mode 100644 public/vendor/ueditor/themes/default/images/arrow_up.png
create mode 100644 public/vendor/ueditor/themes/default/images/button-bg.gif
create mode 100644 public/vendor/ueditor/themes/default/images/cancelbutton.gif
create mode 100644 public/vendor/ueditor/themes/default/images/charts.png
create mode 100644 public/vendor/ueditor/themes/default/images/cursor_h.gif
create mode 100644 public/vendor/ueditor/themes/default/images/cursor_h.png
create mode 100644 public/vendor/ueditor/themes/default/images/cursor_v.gif
create mode 100644 public/vendor/ueditor/themes/default/images/cursor_v.png
create mode 100644 public/vendor/ueditor/themes/default/images/dialog-title-bg.png
create mode 100644 public/vendor/ueditor/themes/default/images/filescan.png
create mode 100644 public/vendor/ueditor/themes/default/images/highlighted.gif
create mode 100644 public/vendor/ueditor/themes/default/images/icons-all.gif
create mode 100644 public/vendor/ueditor/themes/default/images/icons.gif
create mode 100644 public/vendor/ueditor/themes/default/images/icons.png
create mode 100644 public/vendor/ueditor/themes/default/images/loaderror.png
create mode 100644 public/vendor/ueditor/themes/default/images/loading.gif
create mode 100644 public/vendor/ueditor/themes/default/images/lock.gif
create mode 100644 public/vendor/ueditor/themes/default/images/neweditor-tab-bg.png
create mode 100644 public/vendor/ueditor/themes/default/images/pagebreak.gif
create mode 100644 public/vendor/ueditor/themes/default/images/scale.png
create mode 100644 public/vendor/ueditor/themes/default/images/sortable.png
create mode 100644 public/vendor/ueditor/themes/default/images/spacer.gif
create mode 100644 public/vendor/ueditor/themes/default/images/sparator_v.png
create mode 100644 public/vendor/ueditor/themes/default/images/table-cell-align.png
create mode 100644 public/vendor/ueditor/themes/default/images/tangram-colorpicker.png
create mode 100644 public/vendor/ueditor/themes/default/images/toolbar_bg.png
create mode 100644 public/vendor/ueditor/themes/default/images/unhighlighted.gif
create mode 100644 public/vendor/ueditor/themes/default/images/upload.png
create mode 100644 public/vendor/ueditor/themes/default/images/videologo.gif
create mode 100644 public/vendor/ueditor/themes/default/images/word.gif
create mode 100644 public/vendor/ueditor/themes/default/images/wordpaste.png
create mode 100644 public/vendor/ueditor/themes/iframe.css
create mode 100644 public/vendor/ueditor/third-party/SyntaxHighlighter/shCore.js
create mode 100644 public/vendor/ueditor/third-party/SyntaxHighlighter/shCoreDefault.css
create mode 100644 public/vendor/ueditor/third-party/codemirror/codemirror.css
create mode 100644 public/vendor/ueditor/third-party/codemirror/codemirror.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/adapters/mootools-adapter.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/adapters/mootools-adapter.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/adapters/prototype-adapter.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/adapters/prototype-adapter.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/adapters/standalone-framework.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/adapters/standalone-framework.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/highcharts-more.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/highcharts-more.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/highcharts.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/highcharts.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/annotations.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/annotations.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/canvas-tools.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/canvas-tools.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/data.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/data.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/drilldown.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/drilldown.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/exporting.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/exporting.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/funnel.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/funnel.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/heatmap.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/heatmap.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/map.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/map.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/no-data-to-display.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/no-data-to-display.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/themes/dark-blue.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/themes/dark-green.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/themes/gray.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/themes/grid.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/themes/skies.js
create mode 100644 public/vendor/ueditor/third-party/jquery-1.10.2.js
create mode 100644 public/vendor/ueditor/third-party/jquery-1.10.2.min.js
create mode 100644 public/vendor/ueditor/third-party/jquery-1.10.2.min.map
create mode 100644 public/vendor/ueditor/third-party/snapscreen/UEditorSnapscreen.exe
create mode 100644 public/vendor/ueditor/third-party/video-js/font/vjs.eot
create mode 100644 public/vendor/ueditor/third-party/video-js/font/vjs.svg
create mode 100644 public/vendor/ueditor/third-party/video-js/font/vjs.ttf
create mode 100644 public/vendor/ueditor/third-party/video-js/font/vjs.woff
create mode 100644 public/vendor/ueditor/third-party/video-js/video-js.css
create mode 100644 public/vendor/ueditor/third-party/video-js/video-js.min.css
create mode 100644 public/vendor/ueditor/third-party/video-js/video-js.swf
create mode 100644 public/vendor/ueditor/third-party/video-js/video.dev.js
create mode 100644 public/vendor/ueditor/third-party/video-js/video.js
create mode 100644 public/vendor/ueditor/third-party/webuploader/Uploader.swf
create mode 100644 public/vendor/ueditor/third-party/webuploader/webuploader.css
create mode 100644 public/vendor/ueditor/third-party/webuploader/webuploader.custom.js
create mode 100644 public/vendor/ueditor/third-party/webuploader/webuploader.custom.min.js
create mode 100644 public/vendor/ueditor/third-party/webuploader/webuploader.flashonly.js
create mode 100644 public/vendor/ueditor/third-party/webuploader/webuploader.flashonly.min.js
create mode 100644 public/vendor/ueditor/third-party/webuploader/webuploader.html5only.js
create mode 100644 public/vendor/ueditor/third-party/webuploader/webuploader.html5only.min.js
create mode 100644 public/vendor/ueditor/third-party/webuploader/webuploader.js
create mode 100644 public/vendor/ueditor/third-party/webuploader/webuploader.min.js
create mode 100644 public/vendor/ueditor/third-party/webuploader/webuploader.withoutimage.js
create mode 100644 public/vendor/ueditor/third-party/webuploader/webuploader.withoutimage.min.js
create mode 100644 public/vendor/ueditor/third-party/zeroclipboard/ZeroClipboard.js
create mode 100644 public/vendor/ueditor/third-party/zeroclipboard/ZeroClipboard.min.js
create mode 100644 public/vendor/ueditor/third-party/zeroclipboard/ZeroClipboard.swf
create mode 100644 public/vendor/ueditor/ueditor.all.js
create mode 100644 public/vendor/ueditor/ueditor.all.min.js
create mode 100644 public/vendor/ueditor/ueditor.config.js
create mode 100644 public/vendor/ueditor/ueditor.parse.js
create mode 100644 public/vendor/ueditor/ueditor.parse.min.js
create mode 100644 public/web.config
create mode 100644 resources/js/app.js
create mode 100644 resources/js/bootstrap.js
create mode 100644 resources/lang/ar/admin.php
create mode 100644 resources/lang/az/admin.php
create mode 100644 resources/lang/en/admin.php
create mode 100644 resources/lang/en/auth.php
create mode 100644 resources/lang/en/pagination.php
create mode 100644 resources/lang/en/passwords.php
create mode 100644 resources/lang/en/validation.php
create mode 100644 resources/lang/es/admin.php
create mode 100644 resources/lang/fa/admin.php
create mode 100644 resources/lang/fr/admin.php
create mode 100644 resources/lang/he/admin.php
create mode 100644 resources/lang/id/admin.php
create mode 100644 resources/lang/ja/admin.php
create mode 100644 resources/lang/ko/admin.php
create mode 100644 resources/lang/ms/admin.php
create mode 100644 resources/lang/nl/admin.php
create mode 100644 resources/lang/pl/admin.php
create mode 100644 resources/lang/pt-BR/admin.php
create mode 100644 resources/lang/pt/admin.php
create mode 100644 resources/lang/ru/admin.php
create mode 100644 resources/lang/tr/admin.php
create mode 100644 resources/lang/uk/admin.php
create mode 100644 resources/lang/ur/admin.php
create mode 100644 resources/lang/vendor/ueditor/en/upload.php
create mode 100644 resources/lang/vendor/ueditor/zh-CN/upload.php
create mode 100644 resources/lang/vendor/ueditor/zh-TW/upload.php
create mode 100644 resources/lang/zh-CN/admin.php
create mode 100644 resources/lang/zh-TW/admin.php
create mode 100644 resources/sass/app.scss
create mode 100644 resources/views/article/show.blade.php
create mode 100644 resources/views/category/show.blade.php
create mode 100644 resources/views/index/index.blade.php
create mode 100644 resources/views/layouts/app.blade.php
create mode 100644 resources/views/layouts/pagination.blade.php
create mode 100644 resources/views/layouts/top.blade.php
create mode 100644 resources/views/vendor/ueditor/assets.blade.php
create mode 100644 resources/views/welcome.blade.php
create mode 100644 routes/api.php
create mode 100644 routes/channels.php
create mode 100644 routes/console.php
create mode 100644 routes/web.php
create mode 100644 tests/CreatesApplication.php
create mode 100644 tests/Feature/ExampleTest.php
create mode 100644 tests/TestCase.php
create mode 100644 tests/Unit/ExampleTest.php
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0f40cee
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+/storage
+/vendor
+/.idea
+/test
+.env
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..81f2f62
--- /dev/null
+++ b/README.md
@@ -0,0 +1,78 @@
+

+
+
+
+
+
+
+
+
+## About Laravel
+
+Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:
+
+- [Simple, fast routing engine](https://laravel.com/docs/routing).
+- [Powerful dependency injection container](https://laravel.com/docs/container).
+- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage.
+- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent).
+- Database agnostic [schema migrations](https://laravel.com/docs/migrations).
+- [Robust background job processing](https://laravel.com/docs/queues).
+- [Real-time event broadcasting](https://laravel.com/docs/broadcasting).
+
+Laravel is accessible, powerful, and provides tools required for large, robust applications.
+
+## Learning Laravel
+
+Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.
+
+If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains over 1500 video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.
+
+## Laravel Sponsors
+
+We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the Laravel [Patreon page](https://patreon.com/taylorotwell).
+
+- **[Vehikl](https://vehikl.com/)**
+- **[Tighten Co.](https://tighten.co)**
+- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)**
+- **[64 Robots](https://64robots.com)**
+- **[Cubet Techno Labs](https://cubettech.com)**
+- **[Cyber-Duck](https://cyber-duck.co.uk)**
+- **[British Software Development](https://www.britishsoftware.co)**
+- **[Webdock, Fast VPS Hosting](https://www.webdock.io/en)**
+- **[DevSquad](https://devsquad.com)**
+- [UserInsights](https://userinsights.com)
+- [Fragrantica](https://www.fragrantica.com)
+- [SOFTonSOFA](https://softonsofa.com/)
+- [User10](https://user10.com)
+- [Soumettre.fr](https://soumettre.fr/)
+- [CodeBrisk](https://codebrisk.com)
+- [1Forge](https://1forge.com)
+- [TECPRESSO](https://tecpresso.co.jp/)
+- [Runtime Converter](http://runtimeconverter.com/)
+- [WebL'Agence](https://weblagence.com/)
+- [Invoice Ninja](https://www.invoiceninja.com)
+- [iMi digital](https://www.imi-digital.de/)
+- [Earthlink](https://www.earthlink.ro/)
+- [Steadfast Collective](https://steadfastcollective.com/)
+- [We Are The Robots Inc.](https://watr.mx/)
+- [Understand.io](https://www.understand.io/)
+- [Abdel Elrafa](https://abdelelrafa.com)
+- [Hyper Host](https://hyper.host)
+- [Appoly](https://www.appoly.co.uk)
+- [OP.GG](https://op.gg)
+
+## Contributing
+
+Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions).
+
+## Code of Conduct
+
+In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct).
+
+## Security Vulnerabilities
+
+If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed.
+
+## License
+
+The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
diff --git a/app/Admin/Controllers/Advert/IndexController.php b/app/Admin/Controllers/Advert/IndexController.php
new file mode 100644
index 0000000..4664171
--- /dev/null
+++ b/app/Admin/Controllers/Advert/IndexController.php
@@ -0,0 +1,81 @@
+actions(function ($actions) {
+ $actions->disableView();
+ });
+
+ $grid->filter(function ($filter) {
+ $filter->column(1 / 2, function ($filter) {
+ $filter->like('title', '广告名称');
+ $filter->like('category.id', '分类名称')->select(Category::selectOptions(function ($model) {
+ return $model->where('status', 1)->where('type', Category::TYPE_ADVERT);
+ }, '所有分类'));
+ });
+ $filter->disableIdFilter();
+ });
+
+ $grid->column('id');
+ $grid->column('cover', '图片')->image('', 60, 60);
+ $grid->column('category.title', '分类名称');
+ $grid->column('title', '广告名称');
+ $grid->column('url', '地址');
+ $grid->column('sort', '排序');
+
+ return $grid;
+ }
+
+ /**
+ * Make a form builder.
+ * @return Form
+ */
+ protected function form()
+ {
+ $form = new Form(new Advert);
+
+ $form->text('title', '广告名称')->required();
+ $form->select('category_id', '所属分类')
+ ->options(Category::selectOptions(function ($model) {
+ return $model->where('status', 1)->where('type', Category::TYPE_ADVERT);
+ }, '选择分类'))
+ ->rules('required|min:1', [
+ 'required' => '必须选择所属分类',
+ 'min' => '必须选择所属分类',
+ ]);
+ $form->image('cover', '封面图片')
+ ->rules(function ($form) {
+ if ($form->model()->cover != []) {
+ return 'nullable|image';
+ } else {
+ return 'required';
+ }
+ })
+ ->move('images/' . date('Y/m/d'))
+ ->removable()
+ ->uniqueName();
+ $form->text('url', '链接地址');
+ $form->number('sort', '排序')
+ ->default(1)
+ ->required()
+ ->help('数字越大越靠前');
+
+ return $form;
+ }
+
+}
diff --git a/app/Admin/Controllers/Article/IndexController.php b/app/Admin/Controllers/Article/IndexController.php
new file mode 100644
index 0000000..b301a1c
--- /dev/null
+++ b/app/Admin/Controllers/Article/IndexController.php
@@ -0,0 +1,65 @@
+model()->orderBy('id', 'desc');
+ $grid->filter(function ($filter) {
+ $filter->column(1 / 2, function ($filter) {
+ $filter->like('title', '文章标题');
+ $filter->like('category_id', '所属分类')->select(Category::selectOptions(function ($model) {
+ return $model->where('status', 1)->whereIn('type', [Category::TYPE_ARTICLE, Category::TYPE_SHOW]);
+ }, '所有分类'));
+ });
+
+ $filter->disableIdFilter();
+ });
+
+ $grid->column('id', '#ID#');
+ $grid->column('cover', '封面图片')->image('', 100);
+ $grid->column('category.title', '所属分类');
+ $grid->column('title', '文章标题');
+ $grid->column('sort', '序号');
+ $grid->column('created_at', '创建时间');
+
+ return $grid;
+ }
+
+ public function form()
+ {
+ $form = new Form(new Article);
+
+ $form->text('title', '文章标题')->rules('min:2');
+ $form->select('category_id', '所属分类')
+ ->options(Category::selectOptions(function ($model) {
+ return $model->where('status', 1)->whereIn('type', [Category::TYPE_ARTICLE, Category::TYPE_SHOW]);
+ }, '选择分类'))
+ ->rules('required|min:1', [
+ 'required' => '必须选择所属分类',
+ 'min' => '必须选择所属分类',
+ ]);
+ $form->textarea('description', '内容简介');
+ $form->image('cover', '封面')
+ ->move('images/' . date('Y/m/d'))
+ ->removable()
+ ->uniqueName();
+ $form->ueditor('content', '文章内容')->rules('required', ['required' => '详情不能为空']);
+ $form->number('sort', '序号')->default(0)->rules('required', ['required' => '序号必须填写'])->help('倒序优先');
+
+ return $form;
+ }
+
+}
diff --git a/app/Admin/Controllers/AuthController.php b/app/Admin/Controllers/AuthController.php
new file mode 100644
index 0000000..3488577
--- /dev/null
+++ b/app/Admin/Controllers/AuthController.php
@@ -0,0 +1,10 @@
+column(6, $this->treeView());
+
+ $row->column(6, function (Column $column) {
+ $form = new WidgetsForm();
+
+ $form->select('parent_id', '上级分类')->options(Category::selectOptions(function ($model) {
+ return $model->where('status', 1);
+ }, '一级分类'));
+ $form->text('title', '分类名称')->rules('required');
+ $form->select('type', '分类类型')
+ ->options(Category::TYPES)
+ ->required();
+ $form->textarea('description', '分类简介')
+ ->rules('nullable');
+ $form->image('cover', 'Logo')
+ ->move('images/' . date('Y/m/d'))
+ ->removable()
+ ->uniqueName();
+ $form->number('order', '排序')->default(0);
+ $form->switch('status', '显示')->states()->default(1);
+ $form->action(admin_url('categories'));
+
+ $column->append((new Box('新增分类', $form))->style('success'));
+ });
+ };
+ }
+
+ /**
+ * @return Tree
+ */
+ protected function treeView()
+ {
+ return Category::tree(function (Tree $tree) {
+ $tree->disableCreate();
+
+ $tree->branch(function ($branch) {
+ if ($branch['status'] == 1) {
+ $payload = " ";
+ } else {
+ $payload = " ";
+ }
+ $payload .= " [ID:{$branch['id']}] - ";
+ $payload .= " {$branch['title']} ";
+ $payload .= " {$branch['type']} ";
+ $payload .= " {$branch['description']}";
+
+ return $payload;
+ });
+ });
+ }
+
+ /**
+ * Make a form builder.
+ * @return Form
+ */
+ protected function form()
+ {
+ $form = new Form(new Category);
+
+ $form->select('parent_id', '上级分类')->options(Category::selectOptions(function ($model) {
+ return $model->where('status', 1);
+ }, '一级分类'));
+ $form->text('title', '分类名称')->rules('required');
+ $form->select('type', '分类类型')
+ ->options(Category::TYPES)
+ ->required()
+ ->rules('required');
+ $form->textarea('description', '分类简介')->rows(4)->rules('nullable');
+ $form->image('cover', 'Logo')
+ ->move('images/' . date('Y/m/d'))
+ ->removable()
+ ->uniqueName();
+ $form->number('order', '排序')->default(0)->help('正序优先');
+ $form->select('article_id', '关联文章')
+ ->options(function ($option, $info) {
+ $category = $this;
+ if ($category) {
+ return Article::where('category_id', $category->id)->pluck('title', 'id');
+ } else {
+ return [0 => '没有数据'];
+ }
+ })->help('当分类类型是文章详情的时候需要选择关联文章');
+
+ $form->switch('status', '显示')->states()->default(1);
+ $form->saving(function (Form $form) {
+
+ if (request()->has('title')) {
+ if (request()->type == Category::TYPE_SHOW && empty(request()->article_id)) {
+ $error = new MessageBag([
+ 'title' => '错误',
+ 'message' => '文章类型是文章详情的时候需要选择关联文章',
+ ]);
+
+ return back()->withInput()->with(compact('error'));
+ }
+ }
+
+ });
+
+ return $form;
+ }
+
+ public function destroy($id)
+ {
+ return $this->form()->destroy($id);
+ }
+
+}
diff --git a/app/Admin/Controllers/ExampleController.php b/app/Admin/Controllers/ExampleController.php
new file mode 100644
index 0000000..b45a92c
--- /dev/null
+++ b/app/Admin/Controllers/ExampleController.php
@@ -0,0 +1,67 @@
+column('id', __('ID'))->sortable();
+ $grid->column('created_at', __('Created at'));
+ $grid->column('updated_at', __('Updated at'));
+
+ return $grid;
+ }
+
+ /**
+ * Make a show builder.
+ *
+ * @param mixed $id
+ * @return Show
+ */
+ protected function detail($id)
+ {
+ $show = new Show(ExampleModel::findOrFail($id));
+
+ $show->field('id', __('ID'));
+ $show->field('created_at', __('Created at'));
+ $show->field('updated_at', __('Updated at'));
+
+ return $show;
+ }
+
+ /**
+ * Make a form builder.
+ *
+ * @return Form
+ */
+ protected function form()
+ {
+ $form = new Form(new ExampleModel);
+
+ $form->display('id', __('ID'));
+ $form->display('created_at', __('Created At'));
+ $form->display('updated_at', __('Updated At'));
+
+ return $form;
+ }
+}
diff --git a/app/Admin/Controllers/HomeController.php b/app/Admin/Controllers/HomeController.php
new file mode 100644
index 0000000..12b80f3
--- /dev/null
+++ b/app/Admin/Controllers/HomeController.php
@@ -0,0 +1,34 @@
+title('Dashboard')
+ ->description('Description...')
+ ->row(Dashboard::title())
+ ->row(function (Row $row) {
+
+ $row->column(4, function (Column $column) {
+ $column->append(Dashboard::environment());
+ });
+
+ $row->column(4, function (Column $column) {
+ $column->append(Dashboard::extensions());
+ });
+
+ $row->column(4, function (Column $column) {
+ $column->append(Dashboard::dependencies());
+ });
+ });
+ }
+}
diff --git a/app/Admin/Controllers/Link/IndexController.php b/app/Admin/Controllers/Link/IndexController.php
new file mode 100644
index 0000000..91814fe
--- /dev/null
+++ b/app/Admin/Controllers/Link/IndexController.php
@@ -0,0 +1,37 @@
+column('id', '#ID#');
+ $grid->column('title', '标题');
+ $grid->column('url', '地址');
+ $grid->column('created_at', '创建时间');
+
+ return $grid;
+ }
+
+ public function form()
+ {
+ $form = new Form(new Link);
+
+ $form->text('title', '标题')->required();
+ $form->text('url', '地址')->required();
+
+ return $form;
+ }
+
+}
diff --git a/app/Admin/Routes/advert.php b/app/Admin/Routes/advert.php
new file mode 100644
index 0000000..db2a0b4
--- /dev/null
+++ b/app/Admin/Routes/advert.php
@@ -0,0 +1,12 @@
+ config('admin.route.prefix'),
+ 'namespace' => config('admin.route.namespace') . '\\Advert',
+ 'middleware' => config('admin.route.middleware'),
+], function (Router $router) {
+ $router->resource('adverts', 'IndexController');
+
+});
diff --git a/app/Admin/Routes/article.php b/app/Admin/Routes/article.php
new file mode 100644
index 0000000..7fe5f11
--- /dev/null
+++ b/app/Admin/Routes/article.php
@@ -0,0 +1,12 @@
+ config('admin.route.prefix'),
+ 'namespace' => config('admin.route.namespace') . '\\Article',
+ 'middleware' => config('admin.route.middleware'),
+], function (Router $router) {
+ $router->resource('articles', 'IndexController');
+
+});
diff --git a/app/Admin/Routes/category.php b/app/Admin/Routes/category.php
new file mode 100644
index 0000000..2f4c852
--- /dev/null
+++ b/app/Admin/Routes/category.php
@@ -0,0 +1,12 @@
+ config('admin.route.prefix'),
+ 'namespace' => config('admin.route.namespace') . '\\Category',
+ 'middleware' => config('admin.route.middleware'),
+], function (Router $router) {
+ $router->resource('categories', 'IndexController');
+
+});
diff --git a/app/Admin/Routes/link.php b/app/Admin/Routes/link.php
new file mode 100644
index 0000000..001dd73
--- /dev/null
+++ b/app/Admin/Routes/link.php
@@ -0,0 +1,12 @@
+ config('admin.route.prefix'),
+ 'namespace' => config('admin.route.namespace') . '\\Link',
+ 'middleware' => config('admin.route.middleware'),
+], function (Router $router) {
+ $router->resource('links', 'IndexController');
+
+});
diff --git a/app/Admin/bootstrap.php b/app/Admin/bootstrap.php
new file mode 100644
index 0000000..f3c4742
--- /dev/null
+++ b/app/Admin/bootstrap.php
@@ -0,0 +1,29 @@
+disableEditingCheck();
+ $form->disableCreatingCheck();
+ $form->disableViewCheck();
+ $form->tools(function (Form\Tools $tools) {
+ $tools->disableDelete();
+ $tools->disableView();
+ $tools->disableList();
+ });
+});
+
+Grid::init(function (Grid $grid) {
+ $grid->disableExport();
+ $grid->actions(function (Grid\Displayers\Actions $actions) {
+ $actions->disableView();
+ });
+ $grid->disableBatchActions();
+ $grid->filter(function ($filter) {
+ $filter->disableIdFilter();
+ });
+ // $grid->expandFilter();
+});
diff --git a/app/Admin/routes.php b/app/Admin/routes.php
new file mode 100644
index 0000000..5f8cc68
--- /dev/null
+++ b/app/Admin/routes.php
@@ -0,0 +1,21 @@
+ config('admin.route.prefix'),
+ 'namespace' => config('admin.route.namespace'),
+ 'middleware' => config('admin.route.middleware'),
+ 'as' => config('admin.route.prefix') . '.',
+], function (Router $router) {
+
+ $router->get('/', 'HomeController@index')->name('home');
+
+});
+
+require __DIR__ . '/Routes/article.php';
+require __DIR__ . '/Routes/category.php';
+require __DIR__ . '/Routes/link.php';
+require __DIR__ . '/Routes/advert.php';
diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php
new file mode 100644
index 0000000..a8c5158
--- /dev/null
+++ b/app/Console/Kernel.php
@@ -0,0 +1,42 @@
+command('inspire')
+ // ->hourly();
+ }
+
+ /**
+ * Register the commands for the application.
+ *
+ * @return void
+ */
+ protected function commands()
+ {
+ $this->load(__DIR__.'/Commands');
+
+ require base_path('routes/console.php');
+ }
+}
diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php
new file mode 100644
index 0000000..8a912c1
--- /dev/null
+++ b/app/Exceptions/Handler.php
@@ -0,0 +1,57 @@
+category;
+ if ($category->childrens->isEmpty()) {
+ $parent = $category->parent;
+ }
+ $advert = Advert::where('category_id',73)->first();
+
+ return view('article.show', compact('article', 'parent', 'category','advert'));
+
+ }
+
+}
diff --git a/app/Http/Controllers/Auth/ConfirmPasswordController.php b/app/Http/Controllers/Auth/ConfirmPasswordController.php
new file mode 100644
index 0000000..138c1f0
--- /dev/null
+++ b/app/Http/Controllers/Auth/ConfirmPasswordController.php
@@ -0,0 +1,40 @@
+middleware('auth');
+ }
+}
diff --git a/app/Http/Controllers/Auth/ForgotPasswordController.php b/app/Http/Controllers/Auth/ForgotPasswordController.php
new file mode 100644
index 0000000..465c39c
--- /dev/null
+++ b/app/Http/Controllers/Auth/ForgotPasswordController.php
@@ -0,0 +1,22 @@
+middleware('guest')->except('logout');
+ }
+}
diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php
new file mode 100644
index 0000000..c6a6de6
--- /dev/null
+++ b/app/Http/Controllers/Auth/RegisterController.php
@@ -0,0 +1,73 @@
+middleware('guest');
+ }
+
+ /**
+ * Get a validator for an incoming registration request.
+ *
+ * @param array $data
+ * @return \Illuminate\Contracts\Validation\Validator
+ */
+ protected function validator(array $data)
+ {
+ return Validator::make($data, [
+ 'name' => ['required', 'string', 'max:255'],
+ 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
+ 'password' => ['required', 'string', 'min:8', 'confirmed'],
+ ]);
+ }
+
+ /**
+ * Create a new user instance after a valid registration.
+ *
+ * @param array $data
+ * @return \App\User
+ */
+ protected function create(array $data)
+ {
+ return User::create([
+ 'name' => $data['name'],
+ 'email' => $data['email'],
+ 'password' => Hash::make($data['password']),
+ ]);
+ }
+}
diff --git a/app/Http/Controllers/Auth/ResetPasswordController.php b/app/Http/Controllers/Auth/ResetPasswordController.php
new file mode 100644
index 0000000..b1726a3
--- /dev/null
+++ b/app/Http/Controllers/Auth/ResetPasswordController.php
@@ -0,0 +1,30 @@
+middleware('auth');
+ $this->middleware('signed')->only('verify');
+ $this->middleware('throttle:6,1')->only('verify', 'resend');
+ }
+}
diff --git a/app/Http/Controllers/CategoryController.php b/app/Http/Controllers/CategoryController.php
new file mode 100644
index 0000000..7525eef
--- /dev/null
+++ b/app/Http/Controllers/CategoryController.php
@@ -0,0 +1,33 @@
+type == Category::TYPE_SHOW && $category->article_id) {
+ return redirect("articles/" . $category->article_id);
+ } else {
+ $articles = $category->relations(Category::TYPE_ARTICLE)->paginate();
+ $parent = $category;
+ if ($category->childrens->isEmpty()) {
+ $parent = $category->parent;
+ }
+
+ $advert = Advert::where('category_id',73)->first();
+
+ return view('category.show', compact('articles', 'category', 'parent','advert'));
+ }
+ }
+
+}
diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php
new file mode 100644
index 0000000..91e4f89
--- /dev/null
+++ b/app/Http/Controllers/Controller.php
@@ -0,0 +1,38 @@
+whereIn('type', [Category::TYPE_ARTICLE, Category::TYPE_SHOW])
+ ->where('top_show', 1)
+ ->orderBy('order', 'desc')
+ ->select('id', 'title')
+ ->get();
+
+ //地步友情链接
+ if (url()->current() == route('index.index')){
+ $adverts = Advert::where('category_id', 72)->get();
+ }else{
+ $adverts = Advert::where('category_id', 73)->get();
+ }
+ View::share('all_categorys', $categorys);
+ View::share('adverts', $adverts);
+ }
+
+}
diff --git a/app/Http/Controllers/IndexController.php b/app/Http/Controllers/IndexController.php
new file mode 100644
index 0000000..29864cf
--- /dev/null
+++ b/app/Http/Controllers/IndexController.php
@@ -0,0 +1,45 @@
+getArticle([53]); //新闻动态
+ $kjpt = $this->getArticle([18]); //科技平台
+ $zcjc = $this->getArticle([8]); //政府决策服务
+ $zmzj = $this->getArticle([74, 127, 88]); //专家学者
+ $tjgg = $this->getArticle([54]); //通知公告
+ $kjlt = $this->getArticle([58]); //科技发展论坛
+ $cxtd = $this->getArticle(Category::find(43)->getAllChildrenId(), 5); //创新团队
+ $info = Article::where('category_id', 1)->first(); //简介
+
+ $kxyts = $this->getArticle(Category::find(17)->getAllChildrenId(), 10); //科学研究与特色品牌建设
+ $yjzx = $this->getArticle([61], 2); //研究中心
+ $links = Link::get();
+
+ return view('index.index', compact('links', 'xwdt', 'kjpt', 'zcjc', 'zmzj', 'tjgg', 'kjlt', 'tjgg', 'kjlt', 'info', 'kxyts', 'cxtd', 'yjzx'));
+ }
+
+ //通用获取文章
+ public function getArticle($category_ids, $take = 3)
+ {
+ return Article::whereIn('category_id', $category_ids)
+ ->select('id', 'description', 'title', 'created_at', 'cover', 'content')
+ ->orderBy('created_at', 'desc')
+ ->take($take)
+ ->get();
+ }
+
+}
diff --git a/app/Http/Controllers/TestController.php b/app/Http/Controllers/TestController.php
new file mode 100644
index 0000000..6cd621b
--- /dev/null
+++ b/app/Http/Controllers/TestController.php
@@ -0,0 +1,199 @@
+get_one_cover());
+ dd();
+ $lists = Category::where('created_at','2020-06-03 15:57:55')->get();
+ $i=1;
+ foreach ($lists as $info){
+ $old = DedeArctype::select('id', 'reid as parent_id', 'typename as title', 'content')->find($info->oldid);
+ $cate = Category::where('oldid',$old->parent_id)->first();
+ $info->parent_id = $cate->id;
+ $info->save();
+ $i++;
+ }
+
+ dd($i);
+ dump(count($lists));
+ dd();
+ $cateids = Category::where('oldid', '>', 0)->pluck('oldid');
+ $oldids = DedeArctype::where('ishidden', 0)->pluck('id');
+ $diffids = array_diff($oldids->toArray(), $cateids->toArray());
+ dump(count($cateids));
+ dump(count($oldids));
+ dump($diffids);
+
+ foreach ($diffids as $diffid) {
+ $info = DedeArctype::where('id',$diffid)->where('ishidden', 0)->select('id', 'reid as parent_id', 'typename as title', 'content')->first();
+ $data = $this->getData($info);
+ Category::create($data);
+ }
+ }
+
+ public function setCateArticle()
+ {
+ $article = [];
+ $lists = Category::where('content', '<>', '')->where('type', 'article')->get();
+ if ($lists->isEmpty()) {
+ dd('没有数据');
+ }
+ foreach ($lists as $key => $cate) {
+ if ($cate->content != ' ') {
+ $data = [
+ 'oldid' => 0,
+ 'title' => $cate->title,
+ 'category_id' => $cate->id,
+ 'writer' => 'admin',
+ 'source' => '未知',
+ 'keywords' => '',
+ 'status' => 1,
+ 'description' => $cate->description,
+ 'content' => $cate->content,
+ ];
+
+ $info = Article::create($data);
+ $cate->article_id = $info->id;
+ $cate->type = Category::TYPE_SHOW;
+ $cate->save();
+ $article[] = $info->id;
+ }
+
+ }
+ dump(count($article));
+ }
+
+ public function checkArticle()
+ {
+ $lists = Article::where('category_id', 0)->get();
+ foreach ($lists as $list) {
+ $old = DedeArchive::find($list->oldid);
+ $cate = Category::where('oldid',$old->typeid)->first();
+ $list ->category_id = $cate->id;
+ $list->save();
+ }
+ dd();
+ $articleids = Article::where('oldid', '>', 0)->pluck('oldid');
+ $oldids = DedeArchive::pluck('id');
+ $diffids = array_diff($oldids->toArray(), $articleids->toArray());
+ dump(count($articleids));
+ dump(count($oldids));
+ dump($diffids);
+ die();
+ $map = [
+ 'id' => ['in', $diffids],
+ ];
+ $list = DedeArchive::whereIn('id', $diffids)->get();
+ foreach ($list as $key => $article) {
+ $data = [
+ 'oldid' => $article->id,
+ 'title' => $article->title,
+ 'category_id' => $category->id ?? '0',
+ 'writer' => $article->writer,
+ 'cover' => $article->litpic,
+ 'source' => $article->source,
+ 'keywords' => $article->keywords,
+ 'description' => $article->description,
+ 'status' => 1,
+ 'content' => $article->info->body ?? '',
+ 'created_at' => date('Y-m-d H:i:s', $article->pubdate),
+ ];
+ Article::create($data);
+ }
+ }
+
+ //导入文章
+ public function set_article()
+ {
+ $articles = Article::get();
+ if ($articles->count() > 4) {
+ dd('已经导入过数据');
+ }
+ $categorys = Category::get();
+ $error = $success = [];
+ DedeArchive::whereNotNull('litpic')->chunk(200, function ($articles) use ($categorys) {
+
+ foreach ($articles as $article) {
+
+ $category = $categorys->where('oldid', $article->typeid)->first();
+ $data = [
+ 'oldid' => $article->id,
+ 'title' => $article->title,
+ 'category_id' => $category->id ?? '0',
+ 'writer' => $article->writer,
+ 'source' => $article->source,
+ 'cover' => $article->litpic,
+ 'keywords' => $article->keywords,
+ 'description' => $article->description,
+ 'status' => 1,
+ 'content' => $article->info->body ?? '',
+ 'created_at' => date('Y-m-d H:i:s', $article->pubdate),
+ ];
+
+ $res = Article::create($data);
+ if (!$res) {
+ $error[] = $article->id;
+ } else {
+ $success[] = $article->id;
+ }
+ }
+ });
+
+ dump($error);
+ dump($success);
+ }
+
+ //导入分类
+ public function set_category()
+ {
+ $categorys = Category::get();
+ if ($categorys->count()) {
+ dd('已经导入过数据');
+ }
+ $lists = DedeArctype::where('ishidden', 0)->select('id', 'reid as parent_id', 'typename as title', 'content')->get();
+ $list = Tree::list2tree($lists->toArray(), 'id', 'parent_id', 'children', 0);
+
+ foreach ($list as $key => $value) {
+ $info = Category::create($this->getData($value));
+ if (isset($value['children']) && count($value['children']) > 0) {
+ foreach ($value['children'] as $key => $children) {
+ $info->children()->create($this->getData($children));
+ }
+ }
+ }
+ }
+
+ //格式化分类数据
+ public function getData($category)
+ {
+ $data = [
+ 'oldid' => $category['id'],
+ 'parent_id' => $category['parent_id'],
+ 'title' => $category['title'],
+ 'content' => $category['content'],
+ 'status' => 1,
+ ];
+ return $data;
+ }
+
+}
diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php
new file mode 100644
index 0000000..deb65e8
--- /dev/null
+++ b/app/Http/Kernel.php
@@ -0,0 +1,82 @@
+ [
+ \App\Http\Middleware\EncryptCookies::class,
+ \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
+ \Illuminate\Session\Middleware\StartSession::class,
+ // \Illuminate\Session\Middleware\AuthenticateSession::class,
+ \Illuminate\View\Middleware\ShareErrorsFromSession::class,
+ \App\Http\Middleware\VerifyCsrfToken::class,
+ \Illuminate\Routing\Middleware\SubstituteBindings::class,
+ ],
+
+ 'api' => [
+ 'throttle:60,1',
+ \Illuminate\Routing\Middleware\SubstituteBindings::class,
+ ],
+ ];
+
+ /**
+ * The application's route middleware.
+ *
+ * These middleware may be assigned to groups or used individually.
+ *
+ * @var array
+ */
+ protected $routeMiddleware = [
+ 'auth' => \App\Http\Middleware\Authenticate::class,
+ 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
+ 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
+ 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
+ 'can' => \Illuminate\Auth\Middleware\Authorize::class,
+ 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
+ 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
+ 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
+ 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
+ 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
+ ];
+
+ /**
+ * The priority-sorted list of middleware.
+ *
+ * This forces non-global middleware to always be in the given order.
+ *
+ * @var array
+ */
+ protected $middlewarePriority = [
+ \Illuminate\Session\Middleware\StartSession::class,
+ \Illuminate\View\Middleware\ShareErrorsFromSession::class,
+ \App\Http\Middleware\Authenticate::class,
+ \Illuminate\Routing\Middleware\ThrottleRequests::class,
+ \Illuminate\Session\Middleware\AuthenticateSession::class,
+ \Illuminate\Routing\Middleware\SubstituteBindings::class,
+ \Illuminate\Auth\Middleware\Authorize::class,
+ ];
+}
diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php
new file mode 100644
index 0000000..704089a
--- /dev/null
+++ b/app/Http/Middleware/Authenticate.php
@@ -0,0 +1,21 @@
+expectsJson()) {
+ return route('login');
+ }
+ }
+}
diff --git a/app/Http/Middleware/CheckForMaintenanceMode.php b/app/Http/Middleware/CheckForMaintenanceMode.php
new file mode 100644
index 0000000..35b9824
--- /dev/null
+++ b/app/Http/Middleware/CheckForMaintenanceMode.php
@@ -0,0 +1,17 @@
+check()) {
+ return redirect(RouteServiceProvider::HOME);
+ }
+
+ return $next($request);
+ }
+}
diff --git a/app/Http/Middleware/TrimStrings.php b/app/Http/Middleware/TrimStrings.php
new file mode 100644
index 0000000..5a50e7b
--- /dev/null
+++ b/app/Http/Middleware/TrimStrings.php
@@ -0,0 +1,18 @@
+].*?>/isU", str_ireplace("\\", "", $this->content), $matches);
+
+ if (isset($matches[1])) {
+ return $matches[1];
+ } else {
+ return '';
+ }
+ }
+
+ /**
+ * Notes: 获取一个默认图片
+ * @Author: 玄尘
+ * @Date : 2020/6/3 16:29
+ * @return mixed|string
+ */
+ public function get_one_cover()
+ {
+ if ($this->cover_path) {
+ $path = $this->cover_path;
+ } else {
+ $path = $this->get_content_cover();
+ if ($path) {
+
+ $this->cover = str_replace("/storage", "", $path);
+ $this->save();
+ $path = config('app.url') . $path;
+
+ }
+
+ }
+ return $path;
+
+ }
+
+}
diff --git a/app/Models/Category.php b/app/Models/Category.php
new file mode 100644
index 0000000..fb59481
--- /dev/null
+++ b/app/Models/Category.php
@@ -0,0 +1,72 @@
+ '文章列表',
+ 'show' => '文章详情',
+ 'advert' => '广告',
+ ];
+
+ public const TYPE_SHOW = 'show';
+ public const TYPE_ARTICLE = 'article';
+ public const TYPE_ADVERT = 'advert';
+
+ /**
+ * 关联的数据
+ * @return [type] [description]
+ */
+ public function relations()
+ {
+ switch ($this->type) {
+ case self::TYPE_SHOW:
+ return $this->hasOne(Article::class)->where('id',$this->article_id);
+ break;
+ case self::TYPE_ARTICLE:
+ return $this->hasMany(Article::class);
+ break;
+ case self::TYPE_ADVERT:
+ return $this->hasMany(Advert::class);
+ break;
+ default:
+ return null;
+ }
+ }
+
+ public function childrens()
+ {
+ return $this->hasMany(self::class,'parent_id');
+ }
+
+ public function parent()
+ {
+ return $this->hasOne(self::class,'id','parent_id');
+ }
+
+ public function article()
+ {
+ return $this->belongsTo(Article::class);
+ }
+
+ /**
+ * Notes: 获取当前分类及子分类ID
+ * @Author:
+ * @Date : 2020/4/6 3:12 下午
+ * @return array
+ */
+ public function getAllChildrenId()
+ {
+ $ids = array_keys($this->buildSelectOptions([], $this->id));
+ array_unshift($ids, $this->id);
+
+ return $ids;
+ }
+
+}
diff --git a/app/Models/DedeAddonarticle.php b/app/Models/DedeAddonarticle.php
new file mode 100644
index 0000000..07d16f0
--- /dev/null
+++ b/app/Models/DedeAddonarticle.php
@@ -0,0 +1,7 @@
+hasOne(DedeAddonarticle::class, 'aid');
+ }
+}
diff --git a/app/Models/DedeArctype.php b/app/Models/DedeArctype.php
new file mode 100644
index 0000000..01baa1c
--- /dev/null
+++ b/app/Models/DedeArctype.php
@@ -0,0 +1,11 @@
+format($this->dateFormat ?: 'Y-m-d H:i:s');
+ }
+
+}
diff --git a/app/Models/Traits/BelongsToCategory.php b/app/Models/Traits/BelongsToCategory.php
new file mode 100644
index 0000000..0e1e70e
--- /dev/null
+++ b/app/Models/Traits/BelongsToCategory.php
@@ -0,0 +1,21 @@
+belongsTo(Category::class)->withDefault();
+ }
+
+}
diff --git a/app/Models/Traits/HasOneCover.php b/app/Models/Traits/HasOneCover.php
new file mode 100644
index 0000000..e1d1818
--- /dev/null
+++ b/app/Models/Traits/HasOneCover.php
@@ -0,0 +1,24 @@
+cover) {
+ return Storage::url($this->cover);
+ } else {
+ return '';
+ }
+ }
+
+}
diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
new file mode 100644
index 0000000..5189a0f
--- /dev/null
+++ b/app/Providers/AppServiceProvider.php
@@ -0,0 +1,34 @@
+ 'App\Policies\ModelPolicy',
+ ];
+
+ /**
+ * Register any authentication / authorization services.
+ *
+ * @return void
+ */
+ public function boot()
+ {
+ $this->registerPolicies();
+
+ //
+ }
+}
diff --git a/app/Providers/BroadcastServiceProvider.php b/app/Providers/BroadcastServiceProvider.php
new file mode 100644
index 0000000..395c518
--- /dev/null
+++ b/app/Providers/BroadcastServiceProvider.php
@@ -0,0 +1,21 @@
+ [
+ SendEmailVerificationNotification::class,
+ ],
+ ];
+
+ /**
+ * Register any events for your application.
+ *
+ * @return void
+ */
+ public function boot()
+ {
+ parent::boot();
+
+ //
+ }
+}
diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php
new file mode 100644
index 0000000..527eee3
--- /dev/null
+++ b/app/Providers/RouteServiceProvider.php
@@ -0,0 +1,80 @@
+mapApiRoutes();
+
+ $this->mapWebRoutes();
+
+ //
+ }
+
+ /**
+ * Define the "web" routes for the application.
+ *
+ * These routes all receive session state, CSRF protection, etc.
+ *
+ * @return void
+ */
+ protected function mapWebRoutes()
+ {
+ Route::middleware('web')
+ ->namespace($this->namespace)
+ ->group(base_path('routes/web.php'));
+ }
+
+ /**
+ * Define the "api" routes for the application.
+ *
+ * These routes are typically stateless.
+ *
+ * @return void
+ */
+ protected function mapApiRoutes()
+ {
+ Route::prefix('api')
+ ->middleware('api')
+ ->namespace($this->namespace)
+ ->group(base_path('routes/api.php'));
+ }
+}
diff --git a/app/Traits/Tree.php b/app/Traits/Tree.php
new file mode 100644
index 0000000..163799a
--- /dev/null
+++ b/app/Traits/Tree.php
@@ -0,0 +1,90 @@
+ |
+// +------------------------------------------------+
+namespace App\Traits;
+
+/**
+ * 生成多层树状下拉选框的工具
+ */
+trait Tree
+{
+
+ /**
+ * 用于树型数组完成递归格式的全局变量
+ */
+ private static $formatTree;
+
+ /**
+ * 生成多层树,供下拉选框使用
+ */
+ public static function toFormatTree($list, $title = 'title', $pk = 'id', $pid = 'pid', $root = 0)
+ {
+ $list = self::list2tree($list, $pk, $pid, '_child', $root);
+
+ self::$formatTree = [];
+ self::_toFormatTree($list, 0, $title);
+ return self::$formatTree;
+ }
+
+ /**
+ * 把数据集转换成Tree
+ * @param array $list 要转换的数据集
+ * @param string $pk [description]
+ * @param string $pid [description]
+ * @param string $child [description]
+ * @param integer $root [description]
+ * @return array
+ */
+ public static function list2tree($list, $pk = 'id', $pid = 'pid', $child = 'children', $root = 0)
+ {
+ $tree = [];
+ if (is_array($list)) {
+ $refer = [];
+ foreach ($list as $key => $data) {
+ $refer[$data[$pk]] = &$list[$key];
+ }
+ foreach ($list as $key => $data) {
+ $parentId = $data[$pid];
+ if ($root == $parentId) {
+ $tree[] = &$list[$key];
+ } else {
+ if (isset($refer[$parentId])) {
+ $parent = &$refer[$parentId];
+ $parent[$child][] = &$list[$key];
+ }
+ }
+ }
+ }
+ return $tree;
+ }
+
+ /**
+ * 将格式数组转换为树
+ * @param array $list
+ * @param integer $level 进行递归时传递用的参数
+ * @author 小陈叔叔
+ */
+ private static function _toFormatTree($list, $level = 0, $title = 'title')
+ {
+ foreach ($list as $key => $val) {
+ $tmp_str = str_repeat(" ", $level * 4);
+ $tmp_str .= "└ ";
+ $val['level'] = $level;
+ $val['title_show'] = $level == 0 ? $val[$title] . " " : $tmp_str . $val[$title];
+ if (!array_key_exists('_child', $val)) {
+ array_push(self::$formatTree, $val);
+ } else {
+ $tmp_ary = $val['_child'];
+ unset($val['_child']);
+ array_push(self::$formatTree, $val);
+ self::_toFormatTree($tmp_ary, $level + 1, $title); //进行下一层递归
+ }
+ }
+ return;
+ }
+}
diff --git a/app/User.php b/app/User.php
new file mode 100644
index 0000000..e79dab7
--- /dev/null
+++ b/app/User.php
@@ -0,0 +1,39 @@
+ 'datetime',
+ ];
+}
diff --git a/artisan b/artisan
new file mode 100644
index 0000000..5c23e2e
--- /dev/null
+++ b/artisan
@@ -0,0 +1,53 @@
+#!/usr/bin/env php
+make(Illuminate\Contracts\Console\Kernel::class);
+
+$status = $kernel->handle(
+ $input = new Symfony\Component\Console\Input\ArgvInput,
+ new Symfony\Component\Console\Output\ConsoleOutput
+);
+
+/*
+|--------------------------------------------------------------------------
+| Shutdown The Application
+|--------------------------------------------------------------------------
+|
+| Once Artisan has finished running, we will fire off the shutdown events
+| so that any final work may be done by the application before we shut
+| down the process. This is the last thing to happen to the request.
+|
+*/
+
+$kernel->terminate($input, $status);
+
+exit($status);
diff --git a/bootstrap/app.php b/bootstrap/app.php
new file mode 100644
index 0000000..037e17d
--- /dev/null
+++ b/bootstrap/app.php
@@ -0,0 +1,55 @@
+singleton(
+ Illuminate\Contracts\Http\Kernel::class,
+ App\Http\Kernel::class
+);
+
+$app->singleton(
+ Illuminate\Contracts\Console\Kernel::class,
+ App\Console\Kernel::class
+);
+
+$app->singleton(
+ Illuminate\Contracts\Debug\ExceptionHandler::class,
+ App\Exceptions\Handler::class
+);
+
+/*
+|--------------------------------------------------------------------------
+| Return The Application
+|--------------------------------------------------------------------------
+|
+| This script returns the application instance. The instance is given to
+| the calling script so we can separate the building of the instances
+| from the actual running of the application and sending responses.
+|
+*/
+
+return $app;
diff --git a/bootstrap/cache/.gitignore b/bootstrap/cache/.gitignore
new file mode 100644
index 0000000..d6b7ef3
--- /dev/null
+++ b/bootstrap/cache/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/composer.json b/composer.json
new file mode 100644
index 0000000..50c9653
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,64 @@
+{
+ "name": "laravel/laravel",
+ "type": "project",
+ "description": "The Laravel Framework.",
+ "keywords": [
+ "framework",
+ "laravel"
+ ],
+ "license": "MIT",
+ "require": {
+ "php": "^7.2",
+ "codingyu/ueditor": "^3.0",
+ "encore/laravel-admin": "^1.8",
+ "fideloper/proxy": "^4.0",
+ "laravel-admin-ext/config": "^1.1",
+ "laravel/framework": "^7.0",
+ "laravel/tinker": "^2.0"
+ },
+ "require-dev": {
+ "facade/ignition": "^2.0",
+ "fzaninotto/faker": "^1.9.1",
+ "mockery/mockery": "^1.0",
+ "nunomaduro/collision": "^4.1",
+ "phpunit/phpunit": "^8.5"
+ },
+ "config": {
+ "optimize-autoloader": true,
+ "preferred-install": "dist",
+ "sort-packages": true
+ },
+ "extra": {
+ "laravel": {
+ "dont-discover": []
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "App\\": "app/"
+ },
+ "classmap": [
+ "database/seeds",
+ "database/factories"
+ ]
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "Tests\\": "tests/"
+ }
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "scripts": {
+ "post-autoload-dump": [
+ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
+ "@php artisan package:discover --ansi"
+ ],
+ "post-root-package-install": [
+ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
+ ],
+ "post-create-project-cmd": [
+ "@php artisan key:generate --ansi"
+ ]
+ }
+}
diff --git a/composer.lock b/composer.lock
new file mode 100644
index 0000000..065207f
--- /dev/null
+++ b/composer.lock
@@ -0,0 +1,6627 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+ "This file is @generated automatically"
+ ],
+ "content-hash": "aeacf51f830126e28cd15a04993c81f6",
+ "packages": [
+ {
+ "name": "brick/math",
+ "version": "0.8.15",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/brick/math.git",
+ "reference": "9b08d412b9da9455b210459ff71414de7e6241cd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/brick/math/zipball/9b08d412b9da9455b210459ff71414de7e6241cd",
+ "reference": "9b08d412b9da9455b210459ff71414de7e6241cd",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-json": "*",
+ "php": "^7.1|^8.0"
+ },
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^2.2",
+ "phpunit/phpunit": "^7.5.15|^8.5",
+ "vimeo/psalm": "^3.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Brick\\Math\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Arbitrary-precision arithmetic library",
+ "keywords": [
+ "Arbitrary-precision",
+ "BigInteger",
+ "BigRational",
+ "arithmetic",
+ "bigdecimal",
+ "bignum",
+ "brick",
+ "math"
+ ],
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/brick/math",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-04-15T15:59:35+00:00"
+ },
+ {
+ "name": "codingyu/laravel-ueditor",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/codingyu/laravel-ueditor.git",
+ "reference": "aec2ab21426cb7fe580ca6d78ba785c436f27ac5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/codingyu/laravel-ueditor/zipball/aec2ab21426cb7fe580ca6d78ba785c436f27ac5",
+ "reference": "aec2ab21426cb7fe580ca6d78ba785c436f27ac5",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "laravel/framework": "~5.5|~6.0|~7.0"
+ },
+ "require-dev": {
+ "fabpot/php-cs-fixer": "^1.10"
+ },
+ "suggest": {
+ "overtrue/laravel-filesystem-qiniu": "如果你想要使用七牛云存储,也许你需要安装它哦~"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Codingyu\\LaravelUEditor\\UEditorServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Codingyu\\LaravelUEditor\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "codingyu",
+ "email": "everceyu@gmail.com"
+ }
+ ],
+ "description": "UEditor integration for Laravel.",
+ "time": "2020-03-05T13:10:58+00:00"
+ },
+ {
+ "name": "codingyu/ueditor",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel-admin-extensions/UEditor.git",
+ "reference": "9ba2d209317b1f396a846a6b202e7a0fdd722c12"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel-admin-extensions/UEditor/zipball/9ba2d209317b1f396a846a6b202e7a0fdd722c12",
+ "reference": "9ba2d209317b1f396a846a6b202e7a0fdd722c12",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "codingyu/laravel-ueditor": "~2.0",
+ "encore/laravel-admin": "~1.6",
+ "php": ">=7.0.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~6.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Codingyu\\Ueditor\\UeditorServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Codingyu\\Ueditor\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "codingyu",
+ "email": "everceyu@gmail.com"
+ }
+ ],
+ "description": "UEditor extension for laravel-admin",
+ "homepage": "https://github.com/codingyu/UEditor",
+ "keywords": [
+ "extension",
+ "laravel-admin",
+ "ueditor"
+ ],
+ "time": "2019-10-02T14:48:14+00:00"
+ },
+ {
+ "name": "dnoegel/php-xdg-base-dir",
+ "version": "v0.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dnoegel/php-xdg-base-dir.git",
+ "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd",
+ "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.3.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "XdgBaseDir\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "implementation of xdg base directory specification for php",
+ "time": "2019-12-04T15:06:13+00:00"
+ },
+ {
+ "name": "doctrine/cache",
+ "version": "1.10.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/cache.git",
+ "reference": "35a4a70cd94e09e2259dfae7488afc6b474ecbd3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/cache/zipball/35a4a70cd94e09e2259dfae7488afc6b474ecbd3",
+ "reference": "35a4a70cd94e09e2259dfae7488afc6b474ecbd3",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "~7.1 || ^8.0"
+ },
+ "conflict": {
+ "doctrine/common": ">2.2,<2.4"
+ },
+ "require-dev": {
+ "alcaeus/mongo-php-adapter": "^1.1",
+ "doctrine/coding-standard": "^6.0",
+ "mongodb/mongodb": "^1.1",
+ "phpunit/phpunit": "^7.0",
+ "predis/predis": "~1.0"
+ },
+ "suggest": {
+ "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.9.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.",
+ "homepage": "https://www.doctrine-project.org/projects/cache.html",
+ "keywords": [
+ "abstraction",
+ "apcu",
+ "cache",
+ "caching",
+ "couchdb",
+ "memcached",
+ "php",
+ "redis",
+ "xcache"
+ ],
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-27T16:24:54+00:00"
+ },
+ {
+ "name": "doctrine/dbal",
+ "version": "2.10.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/dbal.git",
+ "reference": "aab745e7b6b2de3b47019da81e7225e14dcfdac8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/dbal/zipball/aab745e7b6b2de3b47019da81e7225e14dcfdac8",
+ "reference": "aab745e7b6b2de3b47019da81e7225e14dcfdac8",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "doctrine/cache": "^1.0",
+ "doctrine/event-manager": "^1.0",
+ "ext-pdo": "*",
+ "php": "^7.2"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^6.0",
+ "jetbrains/phpstorm-stubs": "^2019.1",
+ "nikic/php-parser": "^4.4",
+ "phpstan/phpstan": "^0.12",
+ "phpunit/phpunit": "^8.4.1",
+ "symfony/console": "^2.0.5|^3.0|^4.0|^5.0",
+ "vimeo/psalm": "^3.11"
+ },
+ "suggest": {
+ "symfony/console": "For helpful console commands such as SQL execution and import of files."
+ },
+ "bin": [
+ "bin/doctrine-dbal"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.10.x-dev",
+ "dev-develop": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\DBAL\\": "lib/Doctrine/DBAL"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ }
+ ],
+ "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.",
+ "homepage": "https://www.doctrine-project.org/projects/dbal.html",
+ "keywords": [
+ "abstraction",
+ "database",
+ "db2",
+ "dbal",
+ "mariadb",
+ "mssql",
+ "mysql",
+ "oci8",
+ "oracle",
+ "pdo",
+ "pgsql",
+ "postgresql",
+ "queryobject",
+ "sasql",
+ "sql",
+ "sqlanywhere",
+ "sqlite",
+ "sqlserver",
+ "sqlsrv"
+ ],
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-04-20T17:19:26+00:00"
+ },
+ {
+ "name": "doctrine/event-manager",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/event-manager.git",
+ "reference": "629572819973f13486371cb611386eb17851e85c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/event-manager/zipball/629572819973f13486371cb611386eb17851e85c",
+ "reference": "629572819973f13486371cb611386eb17851e85c",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "conflict": {
+ "doctrine/common": "<2.9@dev"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^6.0",
+ "phpunit/phpunit": "^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\": "lib/Doctrine/Common"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ },
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
+ }
+ ],
+ "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.",
+ "homepage": "https://www.doctrine-project.org/projects/event-manager.html",
+ "keywords": [
+ "event",
+ "event dispatcher",
+ "event manager",
+ "event system",
+ "events"
+ ],
+ "time": "2019-11-10T09:48:07+00:00"
+ },
+ {
+ "name": "doctrine/inflector",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/inflector.git",
+ "reference": "3fc171224a316569faad2df6b18a1fd8cce5a56d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/3fc171224a316569faad2df6b18a1fd8cce5a56d",
+ "reference": "3fc171224a316569faad2df6b18a1fd8cce5a56d",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^7.0",
+ "phpstan/phpstan": "^0.11",
+ "phpstan/phpstan-phpunit": "^0.11",
+ "phpstan/phpstan-strict-rules": "^0.11",
+ "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.",
+ "homepage": "https://www.doctrine-project.org/projects/inflector.html",
+ "keywords": [
+ "inflection",
+ "inflector",
+ "lowercase",
+ "manipulation",
+ "php",
+ "plural",
+ "singular",
+ "strings",
+ "uppercase",
+ "words"
+ ],
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-25T20:08:47+00:00"
+ },
+ {
+ "name": "doctrine/lexer",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/lexer.git",
+ "reference": "e864bbf5904cb8f5bb334f99209b48018522f042"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042",
+ "reference": "e864bbf5904cb8f5bb334f99209b48018522f042",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^6.0",
+ "phpstan/phpstan": "^0.11.8",
+ "phpunit/phpunit": "^8.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
+ "homepage": "https://www.doctrine-project.org/projects/lexer.html",
+ "keywords": [
+ "annotations",
+ "docblock",
+ "lexer",
+ "parser",
+ "php"
+ ],
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-25T17:44:05+00:00"
+ },
+ {
+ "name": "dragonmantank/cron-expression",
+ "version": "v2.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dragonmantank/cron-expression.git",
+ "reference": "72b6fbf76adb3cf5bc0db68559b33d41219aba27"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/72b6fbf76adb3cf5bc0db68559b33d41219aba27",
+ "reference": "72b6fbf76adb3cf5bc0db68559b33d41219aba27",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.4|^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Cron\\": "src/Cron/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "Chris Tankersley",
+ "email": "chris@ctankersley.com",
+ "homepage": "https://github.com/dragonmantank"
+ }
+ ],
+ "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due",
+ "keywords": [
+ "cron",
+ "schedule"
+ ],
+ "time": "2019-03-31T00:38:28+00:00"
+ },
+ {
+ "name": "egulias/email-validator",
+ "version": "2.1.17",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/egulias/EmailValidator.git",
+ "reference": "ade6887fd9bd74177769645ab5c474824f8a418a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ade6887fd9bd74177769645ab5c474824f8a418a",
+ "reference": "ade6887fd9bd74177769645ab5c474824f8a418a",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "doctrine/lexer": "^1.0.1",
+ "php": ">=5.5",
+ "symfony/polyfill-intl-idn": "^1.10"
+ },
+ "require-dev": {
+ "dominicsayers/isemail": "^3.0.7",
+ "phpunit/phpunit": "^4.8.36|^7.5.15",
+ "satooshi/php-coveralls": "^1.0.1"
+ },
+ "suggest": {
+ "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Egulias\\EmailValidator\\": "EmailValidator"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Eduardo Gulias Davis"
+ }
+ ],
+ "description": "A library for validating emails against several RFCs",
+ "homepage": "https://github.com/egulias/EmailValidator",
+ "keywords": [
+ "email",
+ "emailvalidation",
+ "emailvalidator",
+ "validation",
+ "validator"
+ ],
+ "time": "2020-02-13T22:36:52+00:00"
+ },
+ {
+ "name": "encore/laravel-admin",
+ "version": "v1.8.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/z-song/laravel-admin.git",
+ "reference": "86e937333c1a593c5384d31836534e79a499edc4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/z-song/laravel-admin/zipball/86e937333c1a593c5384d31836534e79a499edc4",
+ "reference": "86e937333c1a593c5384d31836534e79a499edc4",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "doctrine/dbal": "2.*",
+ "laravel/framework": ">=5.5",
+ "php": ">=7.0.0",
+ "symfony/dom-crawler": "~3.1|~4.0|~5.0"
+ },
+ "require-dev": {
+ "fzaninotto/faker": "~1.4",
+ "intervention/image": "~2.3",
+ "laravel/browser-kit-testing": "^6.0",
+ "laravel/laravel": ">=5.5"
+ },
+ "suggest": {
+ "intervention/image": "Required to handling and manipulation upload images (~2.3).",
+ "spatie/eloquent-sortable": "Required to built orderable gird."
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Encore\\Admin\\AdminServiceProvider"
+ ],
+ "aliases": {
+ "Admin": "Encore\\Admin\\Facades\\Admin"
+ }
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Encore\\Admin\\": "src/"
+ },
+ "files": [
+ "src/helpers.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "zsong",
+ "email": "zosong@126.com"
+ }
+ ],
+ "description": "laravel admin",
+ "homepage": "https://github.com/z-song/laravel-admin",
+ "keywords": [
+ "admin",
+ "form",
+ "grid",
+ "laravel"
+ ],
+ "time": "2020-05-28T02:24:56+00:00"
+ },
+ {
+ "name": "fideloper/proxy",
+ "version": "4.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/fideloper/TrustedProxy.git",
+ "reference": "ec38ad69ee378a1eec04fb0e417a97cfaf7ed11a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/ec38ad69ee378a1eec04fb0e417a97cfaf7ed11a",
+ "reference": "ec38ad69ee378a1eec04fb0e417a97cfaf7ed11a",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "illuminate/contracts": "^5.0|^6.0|^7.0|^8.0",
+ "php": ">=5.4.0"
+ },
+ "require-dev": {
+ "illuminate/http": "^5.0|^6.0|^7.0|^8.0",
+ "mockery/mockery": "^1.0",
+ "phpunit/phpunit": "^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Fideloper\\Proxy\\TrustedProxyServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Fideloper\\Proxy\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Chris Fidao",
+ "email": "fideloper@gmail.com"
+ }
+ ],
+ "description": "Set trusted proxies for Laravel",
+ "keywords": [
+ "load balancing",
+ "proxy",
+ "trusted proxy"
+ ],
+ "time": "2020-02-22T01:51:47+00:00"
+ },
+ {
+ "name": "laravel-admin-ext/config",
+ "version": "v1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel-admin-extensions/config.git",
+ "reference": "5fe99f56758adfd8436ac5d02e83e72a6388dfc2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel-admin-extensions/config/zipball/5fe99f56758adfd8436ac5d02e83e72a6388dfc2",
+ "reference": "5fe99f56758adfd8436ac5d02e83e72a6388dfc2",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "encore/laravel-admin": ">=1.6",
+ "laravel/framework": ">=5.5",
+ "php": ">=7.0.0"
+ },
+ "require-dev": {
+ "laravel/laravel": "~5.5",
+ "phpunit/phpunit": "~6.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Encore\\Admin\\Config\\ConfigServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Encore\\Admin\\Config\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "z-song",
+ "email": "zosong@126.com"
+ }
+ ],
+ "description": "Config extension for laravel-admin",
+ "homepage": "https://github.com/laravel-admin-extensions/config",
+ "keywords": [
+ "laravel-admin",
+ "setting"
+ ],
+ "time": "2019-12-11T02:31:22+00:00"
+ },
+ {
+ "name": "laravel/framework",
+ "version": "v7.13.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/framework.git",
+ "reference": "6fa69bfbd57744a5bbec5538ce483919b3fd625f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/6fa69bfbd57744a5bbec5538ce483919b3fd625f",
+ "reference": "6fa69bfbd57744a5bbec5538ce483919b3fd625f",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "doctrine/inflector": "^1.4|^2.0",
+ "dragonmantank/cron-expression": "^2.0",
+ "egulias/email-validator": "^2.1.10",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "ext-openssl": "*",
+ "league/commonmark": "^1.3",
+ "league/flysystem": "^1.0.8",
+ "monolog/monolog": "^2.0",
+ "nesbot/carbon": "^2.17",
+ "opis/closure": "^3.1",
+ "php": "^7.2.5",
+ "psr/container": "^1.0",
+ "psr/simple-cache": "^1.0",
+ "ramsey/uuid": "^3.7|^4.0",
+ "swiftmailer/swiftmailer": "^6.0",
+ "symfony/console": "^5.0",
+ "symfony/error-handler": "^5.0",
+ "symfony/finder": "^5.0",
+ "symfony/http-foundation": "^5.0",
+ "symfony/http-kernel": "^5.0",
+ "symfony/mime": "^5.0",
+ "symfony/polyfill-php73": "^1.17",
+ "symfony/process": "^5.0",
+ "symfony/routing": "^5.0",
+ "symfony/var-dumper": "^5.0",
+ "tijsverkoyen/css-to-inline-styles": "^2.2.2",
+ "vlucas/phpdotenv": "^4.0",
+ "voku/portable-ascii": "^1.4.8"
+ },
+ "conflict": {
+ "tightenco/collect": "<5.5.33"
+ },
+ "replace": {
+ "illuminate/auth": "self.version",
+ "illuminate/broadcasting": "self.version",
+ "illuminate/bus": "self.version",
+ "illuminate/cache": "self.version",
+ "illuminate/config": "self.version",
+ "illuminate/console": "self.version",
+ "illuminate/container": "self.version",
+ "illuminate/contracts": "self.version",
+ "illuminate/cookie": "self.version",
+ "illuminate/database": "self.version",
+ "illuminate/encryption": "self.version",
+ "illuminate/events": "self.version",
+ "illuminate/filesystem": "self.version",
+ "illuminate/hashing": "self.version",
+ "illuminate/http": "self.version",
+ "illuminate/log": "self.version",
+ "illuminate/mail": "self.version",
+ "illuminate/notifications": "self.version",
+ "illuminate/pagination": "self.version",
+ "illuminate/pipeline": "self.version",
+ "illuminate/queue": "self.version",
+ "illuminate/redis": "self.version",
+ "illuminate/routing": "self.version",
+ "illuminate/session": "self.version",
+ "illuminate/support": "self.version",
+ "illuminate/testing": "self.version",
+ "illuminate/translation": "self.version",
+ "illuminate/validation": "self.version",
+ "illuminate/view": "self.version"
+ },
+ "require-dev": {
+ "aws/aws-sdk-php": "^3.0",
+ "doctrine/dbal": "^2.6",
+ "filp/whoops": "^2.4",
+ "guzzlehttp/guzzle": "^6.3.1|^7.0",
+ "league/flysystem-cached-adapter": "^1.0",
+ "mockery/mockery": "^1.3.1",
+ "moontoast/math": "^1.1",
+ "orchestra/testbench-core": "^5.0",
+ "pda/pheanstalk": "^4.0",
+ "phpunit/phpunit": "^8.4|^9.0",
+ "predis/predis": "^1.1.1",
+ "symfony/cache": "^5.0"
+ },
+ "suggest": {
+ "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.0).",
+ "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.6).",
+ "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().",
+ "ext-memcached": "Required to use the memcache cache driver.",
+ "ext-pcntl": "Required to use all features of the queue worker.",
+ "ext-posix": "Required to use all features of the queue worker.",
+ "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).",
+ "filp/whoops": "Required for friendly error pages in development (^2.4).",
+ "fzaninotto/faker": "Required to use the eloquent factory builder (^1.9.1).",
+ "guzzlehttp/guzzle": "Required to use the HTTP Client, Mailgun mail driver and the ping methods on schedules (^6.3.1|^7.0).",
+ "laravel/tinker": "Required to use the tinker console command (^2.0).",
+ "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).",
+ "league/flysystem-cached-adapter": "Required to use the Flysystem cache (^1.0).",
+ "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (^1.0).",
+ "mockery/mockery": "Required to use mocking (^1.3.1).",
+ "moontoast/math": "Required to use ordered UUIDs (^1.1).",
+ "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).",
+ "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).",
+ "phpunit/phpunit": "Required to use assertions and run tests (^8.4|^9.0).",
+ "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).",
+ "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0).",
+ "symfony/cache": "Required to PSR-6 cache bridge (^5.0).",
+ "symfony/filesystem": "Required to create relative storage directory symbolic links (^5.0).",
+ "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0).",
+ "wildbit/swiftmailer-postmark": "Required to use Postmark mail driver (^3.0)."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "7.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Illuminate/Foundation/helpers.php",
+ "src/Illuminate/Support/helpers.php"
+ ],
+ "psr-4": {
+ "Illuminate\\": "src/Illuminate/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "The Laravel Framework.",
+ "homepage": "https://laravel.com",
+ "keywords": [
+ "framework",
+ "laravel"
+ ],
+ "time": "2020-05-26T14:32:43+00:00"
+ },
+ {
+ "name": "laravel/tinker",
+ "version": "v2.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/tinker.git",
+ "reference": "cde90a7335a2130a4488beb68f4b2141869241db"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/tinker/zipball/cde90a7335a2130a4488beb68f4b2141869241db",
+ "reference": "cde90a7335a2130a4488beb68f4b2141869241db",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "illuminate/console": "^6.0|^7.0|^8.0",
+ "illuminate/contracts": "^6.0|^7.0|^8.0",
+ "illuminate/support": "^6.0|^7.0|^8.0",
+ "php": "^7.2",
+ "psy/psysh": "^0.10.3",
+ "symfony/var-dumper": "^4.3|^5.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.3.1",
+ "phpunit/phpunit": "^8.4|^9.0"
+ },
+ "suggest": {
+ "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0)."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Laravel\\Tinker\\TinkerServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Laravel\\Tinker\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "Powerful REPL for the Laravel framework.",
+ "keywords": [
+ "REPL",
+ "Tinker",
+ "laravel",
+ "psysh"
+ ],
+ "time": "2020-04-07T15:01:31+00:00"
+ },
+ {
+ "name": "league/commonmark",
+ "version": "1.4.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/commonmark.git",
+ "reference": "412639f7cfbc0b31ad2455b2fe965095f66ae505"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/412639f7cfbc0b31ad2455b2fe965095f66ae505",
+ "reference": "412639f7cfbc0b31ad2455b2fe965095f66ae505",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": "^7.1"
+ },
+ "conflict": {
+ "scrutinizer/ocular": "1.7.*"
+ },
+ "require-dev": {
+ "cebe/markdown": "~1.0",
+ "commonmark/commonmark.js": "0.29.1",
+ "erusev/parsedown": "~1.0",
+ "ext-json": "*",
+ "github/gfm": "0.29.0",
+ "michelf/php-markdown": "~1.4",
+ "mikehaertl/php-shellcommand": "^1.4",
+ "phpstan/phpstan": "^0.12",
+ "phpunit/phpunit": "^7.5",
+ "scrutinizer/ocular": "^1.5",
+ "symfony/finder": "^4.2"
+ },
+ "bin": [
+ "bin/commonmark"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.4-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "League\\CommonMark\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Colin O'Dell",
+ "email": "colinodell@gmail.com",
+ "homepage": "https://www.colinodell.com",
+ "role": "Lead Developer"
+ }
+ ],
+ "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and Github-Flavored Markdown (GFM)",
+ "homepage": "https://commonmark.thephpleague.com",
+ "keywords": [
+ "commonmark",
+ "flavored",
+ "gfm",
+ "github",
+ "github-flavored",
+ "markdown",
+ "md",
+ "parser"
+ ],
+ "funding": [
+ {
+ "url": "https://enjoy.gitstore.app/repositories/thephpleague/commonmark",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.colinodell.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.paypal.me/colinpodell/10.00",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/colinodell",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/colinodell",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/league/commonmark",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-04T22:15:21+00:00"
+ },
+ {
+ "name": "league/flysystem",
+ "version": "1.0.69",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/flysystem.git",
+ "reference": "7106f78428a344bc4f643c233a94e48795f10967"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/7106f78428a344bc4f643c233a94e48795f10967",
+ "reference": "7106f78428a344bc4f643c233a94e48795f10967",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-fileinfo": "*",
+ "php": ">=5.5.9"
+ },
+ "conflict": {
+ "league/flysystem-sftp": "<1.0.6"
+ },
+ "require-dev": {
+ "phpspec/phpspec": "^3.4",
+ "phpunit/phpunit": "^5.7.26"
+ },
+ "suggest": {
+ "ext-fileinfo": "Required for MimeType",
+ "ext-ftp": "Allows you to use FTP server storage",
+ "ext-openssl": "Allows you to use FTPS server storage",
+ "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2",
+ "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3",
+ "league/flysystem-azure": "Allows you to use Windows Azure Blob storage",
+ "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching",
+ "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem",
+ "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files",
+ "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib",
+ "league/flysystem-webdav": "Allows you to use WebDAV storage",
+ "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter",
+ "spatie/flysystem-dropbox": "Allows you to use Dropbox storage",
+ "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "League\\Flysystem\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frenky.net"
+ }
+ ],
+ "description": "Filesystem abstraction: Many filesystems, one API.",
+ "keywords": [
+ "Cloud Files",
+ "WebDAV",
+ "abstraction",
+ "aws",
+ "cloud",
+ "copy.com",
+ "dropbox",
+ "file systems",
+ "files",
+ "filesystem",
+ "filesystems",
+ "ftp",
+ "rackspace",
+ "remote",
+ "s3",
+ "sftp",
+ "storage"
+ ],
+ "funding": [
+ {
+ "url": "https://offset.earth/frankdejonge",
+ "type": "other"
+ }
+ ],
+ "time": "2020-05-18T15:13:39+00:00"
+ },
+ {
+ "name": "monolog/monolog",
+ "version": "2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/monolog.git",
+ "reference": "38914429aac460e8e4616c8cb486ecb40ec90bb1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/38914429aac460e8e4616c8cb486ecb40ec90bb1",
+ "reference": "38914429aac460e8e4616c8cb486ecb40ec90bb1",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=7.2",
+ "psr/log": "^1.0.1"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0.0"
+ },
+ "require-dev": {
+ "aws/aws-sdk-php": "^2.4.9 || ^3.0",
+ "doctrine/couchdb": "~1.0@dev",
+ "elasticsearch/elasticsearch": "^6.0",
+ "graylog2/gelf-php": "^1.4.2",
+ "php-amqplib/php-amqplib": "~2.4",
+ "php-console/php-console": "^3.1.3",
+ "php-parallel-lint/php-parallel-lint": "^1.0",
+ "phpspec/prophecy": "^1.6.1",
+ "phpunit/phpunit": "^8.5",
+ "predis/predis": "^1.1",
+ "rollbar/rollbar": "^1.3",
+ "ruflin/elastica": ">=0.90 <3.0",
+ "swiftmailer/swiftmailer": "^5.3|^6.0"
+ },
+ "suggest": {
+ "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
+ "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
+ "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client",
+ "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
+ "ext-mbstring": "Allow to work properly with unicode symbols",
+ "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)",
+ "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
+ "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)",
+ "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
+ "php-console/php-console": "Allow sending log messages to Google Chrome",
+ "rollbar/rollbar": "Allow sending log messages to Rollbar",
+ "ruflin/elastica": "Allow sending log messages to an Elastic Search server"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Monolog\\": "src/Monolog"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
+ "homepage": "http://github.com/Seldaek/monolog",
+ "keywords": [
+ "log",
+ "logging",
+ "psr-3"
+ ],
+ "funding": [
+ {
+ "url": "https://github.com/Seldaek",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/monolog/monolog",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-22T08:12:19+00:00"
+ },
+ {
+ "name": "nesbot/carbon",
+ "version": "2.35.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/briannesbitt/Carbon.git",
+ "reference": "4b9bd835261ef23d36397a46a76b496a458305e5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4b9bd835261ef23d36397a46a76b496a458305e5",
+ "reference": "4b9bd835261ef23d36397a46a76b496a458305e5",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-json": "*",
+ "php": "^7.1.8 || ^8.0",
+ "symfony/polyfill-mbstring": "^1.0",
+ "symfony/translation": "^3.4 || ^4.0 || ^5.0"
+ },
+ "require-dev": {
+ "doctrine/orm": "^2.7",
+ "friendsofphp/php-cs-fixer": "^2.14 || ^3.0",
+ "kylekatarnls/multi-tester": "^1.1",
+ "phpmd/phpmd": "^2.8",
+ "phpstan/phpstan": "^0.11",
+ "phpunit/phpunit": "^7.5 || ^8.0",
+ "squizlabs/php_codesniffer": "^3.4"
+ },
+ "bin": [
+ "bin/carbon"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.x-dev",
+ "dev-3.x": "3.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Carbon\\Laravel\\ServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Carbon\\": "src/Carbon/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Brian Nesbitt",
+ "email": "brian@nesbot.com",
+ "homepage": "http://nesbot.com"
+ },
+ {
+ "name": "kylekatarnls",
+ "homepage": "http://github.com/kylekatarnls"
+ }
+ ],
+ "description": "An API extension for DateTime that supports 281 different languages.",
+ "homepage": "http://carbon.nesbot.com",
+ "keywords": [
+ "date",
+ "datetime",
+ "time"
+ ],
+ "funding": [
+ {
+ "url": "https://opencollective.com/Carbon",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-24T18:27:52+00:00"
+ },
+ {
+ "name": "nikic/php-parser",
+ "version": "v4.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/PHP-Parser.git",
+ "reference": "bd43ec7152eaaab3bd8c6d0aa95ceeb1df8ee120"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/bd43ec7152eaaab3bd8c6d0aa95ceeb1df8ee120",
+ "reference": "bd43ec7152eaaab3bd8c6d0aa95ceeb1df8ee120",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": ">=7.0"
+ },
+ "require-dev": {
+ "ircmaxell/php-yacc": "0.0.5",
+ "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0"
+ },
+ "bin": [
+ "bin/php-parse"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpParser\\": "lib/PhpParser"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Nikita Popov"
+ }
+ ],
+ "description": "A PHP parser written in PHP",
+ "keywords": [
+ "parser",
+ "php"
+ ],
+ "time": "2020-04-10T16:34:50+00:00"
+ },
+ {
+ "name": "opis/closure",
+ "version": "3.5.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/opis/closure.git",
+ "reference": "cac47092144043d5d676e2e7cf8d0d2f83fc89ca"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/opis/closure/zipball/cac47092144043d5d676e2e7cf8d0d2f83fc89ca",
+ "reference": "cac47092144043d5d676e2e7cf8d0d2f83fc89ca",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^5.4 || ^7.0"
+ },
+ "require-dev": {
+ "jeremeamia/superclosure": "^2.0",
+ "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Opis\\Closure\\": "src/"
+ },
+ "files": [
+ "functions.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marius Sarca",
+ "email": "marius.sarca@gmail.com"
+ },
+ {
+ "name": "Sorin Sarca",
+ "email": "sarca_sorin@hotmail.com"
+ }
+ ],
+ "description": "A library that can be used to serialize closures (anonymous functions) and arbitrary objects.",
+ "homepage": "https://opis.io/closure",
+ "keywords": [
+ "anonymous functions",
+ "closure",
+ "function",
+ "serializable",
+ "serialization",
+ "serialize"
+ ],
+ "time": "2020-05-25T09:32:45+00:00"
+ },
+ {
+ "name": "phpoption/phpoption",
+ "version": "1.7.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/schmittjoh/php-option.git",
+ "reference": "4acfd6a4b33a509d8c88f50e5222f734b6aeebae"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/4acfd6a4b33a509d8c88f50e5222f734b6aeebae",
+ "reference": "4acfd6a4b33a509d8c88f50e5222f734b6aeebae",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^5.5.9 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.3",
+ "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0 || ^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpOption\\": "src/PhpOption/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Johannes M. Schmitt",
+ "email": "schmittjoh@gmail.com"
+ },
+ {
+ "name": "Graham Campbell",
+ "email": "graham@alt-three.com"
+ }
+ ],
+ "description": "Option Type for PHP",
+ "keywords": [
+ "language",
+ "option",
+ "php",
+ "type"
+ ],
+ "time": "2020-03-21T18:07:53+00:00"
+ },
+ {
+ "name": "psr/container",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
+ "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Container\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common Container Interface (PHP FIG PSR-11)",
+ "homepage": "https://github.com/php-fig/container",
+ "keywords": [
+ "PSR-11",
+ "container",
+ "container-interface",
+ "container-interop",
+ "psr"
+ ],
+ "time": "2017-02-14T16:28:37+00:00"
+ },
+ {
+ "name": "psr/event-dispatcher",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/event-dispatcher.git",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=7.2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\EventDispatcher\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Standard interfaces for event handling.",
+ "keywords": [
+ "events",
+ "psr",
+ "psr-14"
+ ],
+ "time": "2019-01-08T18:20:26+00:00"
+ },
+ {
+ "name": "psr/log",
+ "version": "1.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc",
+ "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Log\\": "Psr/Log/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for logging libraries",
+ "homepage": "https://github.com/php-fig/log",
+ "keywords": [
+ "log",
+ "psr",
+ "psr-3"
+ ],
+ "time": "2020-03-23T09:12:05+00:00"
+ },
+ {
+ "name": "psr/simple-cache",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/simple-cache.git",
+ "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
+ "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\SimpleCache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interfaces for simple caching",
+ "keywords": [
+ "cache",
+ "caching",
+ "psr",
+ "psr-16",
+ "simple-cache"
+ ],
+ "time": "2017-10-23T01:57:42+00:00"
+ },
+ {
+ "name": "psy/psysh",
+ "version": "v0.10.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/bobthecow/psysh.git",
+ "reference": "a8aec1b2981ab66882a01cce36a49b6317dc3560"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/a8aec1b2981ab66882a01cce36a49b6317dc3560",
+ "reference": "a8aec1b2981ab66882a01cce36a49b6317dc3560",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "dnoegel/php-xdg-base-dir": "0.1.*",
+ "ext-json": "*",
+ "ext-tokenizer": "*",
+ "nikic/php-parser": "~4.0|~3.0|~2.0|~1.3",
+ "php": "^8.0 || ^7.0 || ^5.5.9",
+ "symfony/console": "~5.0|~4.0|~3.0|^2.4.2|~2.3.10",
+ "symfony/var-dumper": "~5.0|~4.0|~3.0|~2.7"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.2",
+ "hoa/console": "3.17.*"
+ },
+ "suggest": {
+ "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
+ "ext-pdo-sqlite": "The doc command requires SQLite to work.",
+ "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.",
+ "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history.",
+ "hoa/console": "A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit."
+ },
+ "bin": [
+ "bin/psysh"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "0.10.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Psy\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Justin Hileman",
+ "email": "justin@justinhileman.info",
+ "homepage": "http://justinhileman.com"
+ }
+ ],
+ "description": "An interactive shell for modern PHP.",
+ "homepage": "http://psysh.org",
+ "keywords": [
+ "REPL",
+ "console",
+ "interactive",
+ "shell"
+ ],
+ "time": "2020-05-03T19:32:03+00:00"
+ },
+ {
+ "name": "ramsey/collection",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ramsey/collection.git",
+ "reference": "925ad8cf55ba7a3fc92e332c58fd0478ace3e1ca"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ramsey/collection/zipball/925ad8cf55ba7a3fc92e332c58fd0478ace3e1ca",
+ "reference": "925ad8cf55ba7a3fc92e332c58fd0478ace3e1ca",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2"
+ },
+ "require-dev": {
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.5.0",
+ "fzaninotto/faker": "^1.5",
+ "jakub-onderka/php-parallel-lint": "^1",
+ "jangregor/phpstan-prophecy": "^0.6",
+ "mockery/mockery": "^1.3",
+ "phpstan/extension-installer": "^1",
+ "phpstan/phpdoc-parser": "0.4.1",
+ "phpstan/phpstan": "^0.12",
+ "phpstan/phpstan-mockery": "^0.12",
+ "phpstan/phpstan-phpunit": "^0.12",
+ "phpunit/phpunit": "^8.5",
+ "slevomat/coding-standard": "^6.0",
+ "squizlabs/php_codesniffer": "^3.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Ramsey\\Collection\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ben Ramsey",
+ "email": "ben@benramsey.com",
+ "homepage": "https://benramsey.com"
+ }
+ ],
+ "description": "A PHP 7.2+ library for representing and manipulating collections.",
+ "homepage": "https://github.com/ramsey/collection",
+ "keywords": [
+ "array",
+ "collection",
+ "hash",
+ "map",
+ "queue",
+ "set"
+ ],
+ "time": "2020-01-05T00:22:59+00:00"
+ },
+ {
+ "name": "ramsey/uuid",
+ "version": "4.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ramsey/uuid.git",
+ "reference": "ba8fff1d3abb8bb4d35a135ed22a31c6ef3ede3d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/ba8fff1d3abb8bb4d35a135ed22a31c6ef3ede3d",
+ "reference": "ba8fff1d3abb8bb4d35a135ed22a31c6ef3ede3d",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "brick/math": "^0.8",
+ "ext-json": "*",
+ "php": "^7.2 || ^8",
+ "ramsey/collection": "^1.0",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "replace": {
+ "rhumsaa/uuid": "self.version"
+ },
+ "require-dev": {
+ "codeception/aspect-mock": "^3",
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2",
+ "doctrine/annotations": "^1.8",
+ "goaop/framework": "^2",
+ "mockery/mockery": "^1.3",
+ "moontoast/math": "^1.1",
+ "paragonie/random-lib": "^2",
+ "php-mock/php-mock-mockery": "^1.3",
+ "php-mock/php-mock-phpunit": "^2.5",
+ "php-parallel-lint/php-parallel-lint": "^1.1",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpdoc-parser": "0.4.3",
+ "phpstan/phpstan": "^0.12",
+ "phpstan/phpstan-mockery": "^0.12",
+ "phpstan/phpstan-phpunit": "^0.12",
+ "phpunit/phpunit": "^8.5",
+ "psy/psysh": "^0.10.0",
+ "slevomat/coding-standard": "^6.0",
+ "squizlabs/php_codesniffer": "^3.5",
+ "vimeo/psalm": "3.9.4"
+ },
+ "suggest": {
+ "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
+ "ext-ctype": "Enables faster processing of character classification using ctype functions.",
+ "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.",
+ "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.",
+ "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
+ "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Ramsey\\Uuid\\": "src/"
+ },
+ "files": [
+ "src/functions.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).",
+ "homepage": "https://github.com/ramsey/uuid",
+ "keywords": [
+ "guid",
+ "identifier",
+ "uuid"
+ ],
+ "funding": [
+ {
+ "url": "https://github.com/ramsey",
+ "type": "github"
+ }
+ ],
+ "time": "2020-03-29T20:13:32+00:00"
+ },
+ {
+ "name": "swiftmailer/swiftmailer",
+ "version": "v6.2.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/swiftmailer/swiftmailer.git",
+ "reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/149cfdf118b169f7840bbe3ef0d4bc795d1780c9",
+ "reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "egulias/email-validator": "~2.0",
+ "php": ">=7.0.0",
+ "symfony/polyfill-iconv": "^1.0",
+ "symfony/polyfill-intl-idn": "^1.10",
+ "symfony/polyfill-mbstring": "^1.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "~0.9.1",
+ "symfony/phpunit-bridge": "^3.4.19|^4.1.8"
+ },
+ "suggest": {
+ "ext-intl": "Needed to support internationalized email addresses",
+ "true/punycode": "Needed to support internationalized email addresses, if ext-intl is not installed"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "6.2-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "lib/swift_required.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Chris Corbyn"
+ },
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ }
+ ],
+ "description": "Swiftmailer, free feature-rich PHP mailer",
+ "homepage": "https://swiftmailer.symfony.com",
+ "keywords": [
+ "email",
+ "mail",
+ "mailer"
+ ],
+ "time": "2019-11-12T09:31:26+00:00"
+ },
+ {
+ "name": "symfony/console",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/console.git",
+ "reference": "5fa1caadc8cdaa17bcfb25219f3b53fe294a9935"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/console/zipball/5fa1caadc8cdaa17bcfb25219f3b53fe294a9935",
+ "reference": "5fa1caadc8cdaa17bcfb25219f3b53fe294a9935",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php73": "^1.8",
+ "symfony/service-contracts": "^1.1|^2"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<4.4",
+ "symfony/event-dispatcher": "<4.4",
+ "symfony/lock": "<4.4",
+ "symfony/process": "<4.4"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0"
+ },
+ "require-dev": {
+ "psr/log": "~1.0",
+ "symfony/config": "^4.4|^5.0",
+ "symfony/dependency-injection": "^4.4|^5.0",
+ "symfony/event-dispatcher": "^4.4|^5.0",
+ "symfony/lock": "^4.4|^5.0",
+ "symfony/process": "^4.4|^5.0",
+ "symfony/var-dumper": "^4.4|^5.0"
+ },
+ "suggest": {
+ "psr/log": "For using the console logger",
+ "symfony/event-dispatcher": "",
+ "symfony/lock": "",
+ "symfony/process": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Console\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Console Component",
+ "homepage": "https://symfony.com",
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-03-30T11:42:42+00:00"
+ },
+ {
+ "name": "symfony/css-selector",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/css-selector.git",
+ "reference": "5f8d5271303dad260692ba73dfa21777d38e124e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/5f8d5271303dad260692ba73dfa21777d38e124e",
+ "reference": "5f8d5271303dad260692ba73dfa21777d38e124e",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\CssSelector\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Jean-François Simon",
+ "email": "jeanfrancois.simon@sensiolabs.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony CssSelector Component",
+ "homepage": "https://symfony.com",
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-03-27T16:56:45+00:00"
+ },
+ {
+ "name": "symfony/dom-crawler",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/dom-crawler.git",
+ "reference": "892311d23066844a267ac1a903d8a9d79968a1a7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/892311d23066844a267ac1a903d8a9d79968a1a7",
+ "reference": "892311d23066844a267ac1a903d8a9d79968a1a7",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "conflict": {
+ "masterminds/html5": "<2.6"
+ },
+ "require-dev": {
+ "masterminds/html5": "^2.6",
+ "symfony/css-selector": "^4.4|^5.0"
+ },
+ "suggest": {
+ "symfony/css-selector": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\DomCrawler\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony DomCrawler Component",
+ "homepage": "https://symfony.com",
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-03-30T11:42:42+00:00"
+ },
+ {
+ "name": "symfony/error-handler",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/error-handler.git",
+ "reference": "949ffc17c3ac3a9f8e6232220e2da33913c04ea4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/949ffc17c3ac3a9f8e6232220e2da33913c04ea4",
+ "reference": "949ffc17c3ac3a9f8e6232220e2da33913c04ea4",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5",
+ "psr/log": "^1.0",
+ "symfony/var-dumper": "^4.4|^5.0"
+ },
+ "require-dev": {
+ "symfony/http-kernel": "^4.4|^5.0",
+ "symfony/serializer": "^4.4|^5.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\ErrorHandler\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony ErrorHandler Component",
+ "homepage": "https://symfony.com",
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-03-30T14:14:32+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher.git",
+ "reference": "24f40d95385774ed5c71dbf014edd047e2f2f3dc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/24f40d95385774ed5c71dbf014edd047e2f2f3dc",
+ "reference": "24f40d95385774ed5c71dbf014edd047e2f2f3dc",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5",
+ "symfony/event-dispatcher-contracts": "^2"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<4.4"
+ },
+ "provide": {
+ "psr/event-dispatcher-implementation": "1.0",
+ "symfony/event-dispatcher-implementation": "2.0"
+ },
+ "require-dev": {
+ "psr/log": "~1.0",
+ "symfony/config": "^4.4|^5.0",
+ "symfony/dependency-injection": "^4.4|^5.0",
+ "symfony/expression-language": "^4.4|^5.0",
+ "symfony/http-foundation": "^4.4|^5.0",
+ "symfony/service-contracts": "^1.1|^2",
+ "symfony/stopwatch": "^4.4|^5.0"
+ },
+ "suggest": {
+ "symfony/dependency-injection": "",
+ "symfony/http-kernel": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\EventDispatcher\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony EventDispatcher Component",
+ "homepage": "https://symfony.com",
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-03-27T16:56:45+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher-contracts",
+ "version": "v2.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher-contracts.git",
+ "reference": "405952c4e90941a17e52ef7489a2bd94870bb290"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/405952c4e90941a17e52ef7489a2bd94870bb290",
+ "reference": "405952c4e90941a17e52ef7489a2bd94870bb290",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/event-dispatcher": "^1"
+ },
+ "suggest": {
+ "symfony/event-dispatcher-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\EventDispatcher\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to dispatching event",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-20T17:43:50+00:00"
+ },
+ {
+ "name": "symfony/finder",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/finder.git",
+ "reference": "600a52c29afc0d1caa74acbec8d3095ca7e9910d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/600a52c29afc0d1caa74acbec8d3095ca7e9910d",
+ "reference": "600a52c29afc0d1caa74acbec8d3095ca7e9910d",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Finder\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Finder Component",
+ "homepage": "https://symfony.com",
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-03-27T16:56:45+00:00"
+ },
+ {
+ "name": "symfony/http-foundation",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-foundation.git",
+ "reference": "e47fdf8b24edc12022ba52923150ec6484d7f57d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e47fdf8b24edc12022ba52923150ec6484d7f57d",
+ "reference": "e47fdf8b24edc12022ba52923150ec6484d7f57d",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5",
+ "symfony/mime": "^4.4|^5.0",
+ "symfony/polyfill-mbstring": "~1.1"
+ },
+ "require-dev": {
+ "predis/predis": "~1.0",
+ "symfony/expression-language": "^4.4|^5.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpFoundation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony HttpFoundation Component",
+ "homepage": "https://symfony.com",
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-04-18T20:50:06+00:00"
+ },
+ {
+ "name": "symfony/http-kernel",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-kernel.git",
+ "reference": "3565e51eecd06106304baba5ccb7ba89db2d7d2b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/3565e51eecd06106304baba5ccb7ba89db2d7d2b",
+ "reference": "3565e51eecd06106304baba5ccb7ba89db2d7d2b",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5",
+ "psr/log": "~1.0",
+ "symfony/error-handler": "^4.4|^5.0",
+ "symfony/event-dispatcher": "^5.0",
+ "symfony/http-foundation": "^4.4|^5.0",
+ "symfony/polyfill-ctype": "^1.8",
+ "symfony/polyfill-php73": "^1.9"
+ },
+ "conflict": {
+ "symfony/browser-kit": "<4.4",
+ "symfony/cache": "<5.0",
+ "symfony/config": "<5.0",
+ "symfony/console": "<4.4",
+ "symfony/dependency-injection": "<4.4",
+ "symfony/doctrine-bridge": "<5.0",
+ "symfony/form": "<5.0",
+ "symfony/http-client": "<5.0",
+ "symfony/mailer": "<5.0",
+ "symfony/messenger": "<5.0",
+ "symfony/translation": "<5.0",
+ "symfony/twig-bridge": "<5.0",
+ "symfony/validator": "<5.0",
+ "twig/twig": "<2.4"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0"
+ },
+ "require-dev": {
+ "psr/cache": "~1.0",
+ "symfony/browser-kit": "^4.4|^5.0",
+ "symfony/config": "^5.0",
+ "symfony/console": "^4.4|^5.0",
+ "symfony/css-selector": "^4.4|^5.0",
+ "symfony/dependency-injection": "^4.4|^5.0",
+ "symfony/dom-crawler": "^4.4|^5.0",
+ "symfony/expression-language": "^4.4|^5.0",
+ "symfony/finder": "^4.4|^5.0",
+ "symfony/process": "^4.4|^5.0",
+ "symfony/routing": "^4.4|^5.0",
+ "symfony/stopwatch": "^4.4|^5.0",
+ "symfony/translation": "^4.4|^5.0",
+ "symfony/translation-contracts": "^1.1|^2",
+ "twig/twig": "^2.4|^3.0"
+ },
+ "suggest": {
+ "symfony/browser-kit": "",
+ "symfony/config": "",
+ "symfony/console": "",
+ "symfony/dependency-injection": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpKernel\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony HttpKernel Component",
+ "homepage": "https://symfony.com",
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-04-28T18:53:25+00:00"
+ },
+ {
+ "name": "symfony/mime",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/mime.git",
+ "reference": "5d6c81c39225a750f3f43bee15f03093fb9aaa0b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/5d6c81c39225a750f3f43bee15f03093fb9aaa0b",
+ "reference": "5d6c81c39225a750f3f43bee15f03093fb9aaa0b",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5",
+ "symfony/polyfill-intl-idn": "^1.10",
+ "symfony/polyfill-mbstring": "^1.0"
+ },
+ "conflict": {
+ "symfony/mailer": "<4.4"
+ },
+ "require-dev": {
+ "egulias/email-validator": "^2.1.10",
+ "symfony/dependency-injection": "^4.4|^5.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Mime\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "A library to manipulate MIME messages",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "mime",
+ "mime-type"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-04-17T03:29:44+00:00"
+ },
+ {
+ "name": "symfony/polyfill-ctype",
+ "version": "v1.17.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "e94c8b1bbe2bc77507a1056cdb06451c75b427f9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e94c8b1bbe2bc77507a1056cdb06451c75b427f9",
+ "reference": "e94c8b1bbe2bc77507a1056cdb06451c75b427f9",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "suggest": {
+ "ext-ctype": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.17-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Ctype\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Gert de Pagter",
+ "email": "BackEndTea@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for ctype functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "ctype",
+ "polyfill",
+ "portable"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-12T16:14:59+00:00"
+ },
+ {
+ "name": "symfony/polyfill-iconv",
+ "version": "v1.17.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-iconv.git",
+ "reference": "c4de7601eefbf25f9d47190abe07f79fe0a27424"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/c4de7601eefbf25f9d47190abe07f79fe0a27424",
+ "reference": "c4de7601eefbf25f9d47190abe07f79fe0a27424",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "suggest": {
+ "ext-iconv": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.17-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Iconv\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for the Iconv extension",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "iconv",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-12T16:47:27+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-idn",
+ "version": "v1.17.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-idn.git",
+ "reference": "3bff59ea7047e925be6b7f2059d60af31bb46d6a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/3bff59ea7047e925be6b7f2059d60af31bb46d6a",
+ "reference": "3bff59ea7047e925be6b7f2059d60af31bb46d6a",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.3.3",
+ "symfony/polyfill-mbstring": "^1.3",
+ "symfony/polyfill-php72": "^1.10"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.17-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Idn\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Laurent Bassin",
+ "email": "laurent@bassin.info"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "idn",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-12T16:47:27+00:00"
+ },
+ {
+ "name": "symfony/polyfill-mbstring",
+ "version": "v1.17.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "fa79b11539418b02fc5e1897267673ba2c19419c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fa79b11539418b02fc5e1897267673ba2c19419c",
+ "reference": "fa79b11539418b02fc5e1897267673ba2c19419c",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "suggest": {
+ "ext-mbstring": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.17-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Mbstring\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for the Mbstring extension",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "mbstring",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-12T16:47:27+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php72",
+ "version": "v1.17.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php72.git",
+ "reference": "f048e612a3905f34931127360bdd2def19a5e582"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/f048e612a3905f34931127360bdd2def19a5e582",
+ "reference": "f048e612a3905f34931127360bdd2def19a5e582",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.17-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Php72\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-12T16:47:27+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php73",
+ "version": "v1.17.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php73.git",
+ "reference": "a760d8964ff79ab9bf057613a5808284ec852ccc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a760d8964ff79ab9bf057613a5808284ec852ccc",
+ "reference": "a760d8964ff79ab9bf057613a5808284ec852ccc",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.17-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Php73\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ],
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-12T16:47:27+00:00"
+ },
+ {
+ "name": "symfony/process",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/process.git",
+ "reference": "3179f68dff5bad14d38c4114a1dab98030801fd7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/process/zipball/3179f68dff5bad14d38c4114a1dab98030801fd7",
+ "reference": "3179f68dff5bad14d38c4114a1dab98030801fd7",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Process\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Process Component",
+ "homepage": "https://symfony.com",
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-04-15T15:59:10+00:00"
+ },
+ {
+ "name": "symfony/routing",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/routing.git",
+ "reference": "9b18480a6e101f8d9ab7c483ace7c19441be5111"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/9b18480a6e101f8d9ab7c483ace7c19441be5111",
+ "reference": "9b18480a6e101f8d9ab7c483ace7c19441be5111",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5"
+ },
+ "conflict": {
+ "symfony/config": "<5.0",
+ "symfony/dependency-injection": "<4.4",
+ "symfony/yaml": "<4.4"
+ },
+ "require-dev": {
+ "doctrine/annotations": "~1.2",
+ "psr/log": "~1.0",
+ "symfony/config": "^5.0",
+ "symfony/dependency-injection": "^4.4|^5.0",
+ "symfony/expression-language": "^4.4|^5.0",
+ "symfony/http-foundation": "^4.4|^5.0",
+ "symfony/yaml": "^4.4|^5.0"
+ },
+ "suggest": {
+ "doctrine/annotations": "For using the annotation loader",
+ "symfony/config": "For using the all-in-one router or any loader",
+ "symfony/expression-language": "For using expression matching",
+ "symfony/http-foundation": "For using a Symfony Request object",
+ "symfony/yaml": "For using the YAML loader"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Routing\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Routing Component",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "router",
+ "routing",
+ "uri",
+ "url"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-04-21T21:02:50+00:00"
+ },
+ {
+ "name": "symfony/service-contracts",
+ "version": "v2.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/service-contracts.git",
+ "reference": "66a8f0957a3ca54e4f724e49028ab19d75a8918b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/66a8f0957a3ca54e4f724e49028ab19d75a8918b",
+ "reference": "66a8f0957a3ca54e4f724e49028ab19d75a8918b",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/container": "^1.0"
+ },
+ "suggest": {
+ "symfony/service-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Service\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to writing services",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-20T17:43:50+00:00"
+ },
+ {
+ "name": "symfony/translation",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/translation.git",
+ "reference": "c3879db7a68fe3e12b41263b05879412c87b27fd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/c3879db7a68fe3e12b41263b05879412c87b27fd",
+ "reference": "c3879db7a68fe3e12b41263b05879412c87b27fd",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/translation-contracts": "^2"
+ },
+ "conflict": {
+ "symfony/config": "<4.4",
+ "symfony/dependency-injection": "<5.0",
+ "symfony/http-kernel": "<5.0",
+ "symfony/twig-bundle": "<5.0",
+ "symfony/yaml": "<4.4"
+ },
+ "provide": {
+ "symfony/translation-implementation": "2.0"
+ },
+ "require-dev": {
+ "psr/log": "~1.0",
+ "symfony/config": "^4.4|^5.0",
+ "symfony/console": "^4.4|^5.0",
+ "symfony/dependency-injection": "^5.0",
+ "symfony/finder": "^4.4|^5.0",
+ "symfony/http-kernel": "^5.0",
+ "symfony/intl": "^4.4|^5.0",
+ "symfony/service-contracts": "^1.1.2|^2",
+ "symfony/yaml": "^4.4|^5.0"
+ },
+ "suggest": {
+ "psr/log-implementation": "To use logging capability in translator",
+ "symfony/config": "",
+ "symfony/yaml": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Translation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Translation Component",
+ "homepage": "https://symfony.com",
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-04-12T16:45:47+00:00"
+ },
+ {
+ "name": "symfony/translation-contracts",
+ "version": "v2.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/translation-contracts.git",
+ "reference": "e5ca07c8f817f865f618aa072c2fe8e0e637340e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/e5ca07c8f817f865f618aa072c2fe8e0e637340e",
+ "reference": "e5ca07c8f817f865f618aa072c2fe8e0e637340e",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=7.2.5"
+ },
+ "suggest": {
+ "symfony/translation-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Translation\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to translation",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-20T17:43:50+00:00"
+ },
+ {
+ "name": "symfony/var-dumper",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/var-dumper.git",
+ "reference": "09de28632f16f81058a85fcf318397218272a07b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/09de28632f16f81058a85fcf318397218272a07b",
+ "reference": "09de28632f16f81058a85fcf318397218272a07b",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<5.4.3",
+ "symfony/console": "<4.4"
+ },
+ "require-dev": {
+ "ext-iconv": "*",
+ "symfony/console": "^4.4|^5.0",
+ "symfony/process": "^4.4|^5.0",
+ "twig/twig": "^2.4|^3.0"
+ },
+ "suggest": {
+ "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
+ "ext-intl": "To show region name in time zone dump",
+ "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
+ },
+ "bin": [
+ "Resources/bin/var-dump-server"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "Resources/functions/dump.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\VarDumper\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony mechanism for exploring and dumping PHP variables",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "debug",
+ "dump"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-04-12T16:45:47+00:00"
+ },
+ {
+ "name": "tijsverkoyen/css-to-inline-styles",
+ "version": "2.2.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git",
+ "reference": "dda2ee426acd6d801d5b7fd1001cde9b5f790e15"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/dda2ee426acd6d801d5b7fd1001cde9b5f790e15",
+ "reference": "dda2ee426acd6d801d5b7fd1001cde9b5f790e15",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "php": "^5.5 || ^7.0",
+ "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "TijsVerkoyen\\CssToInlineStyles\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Tijs Verkoyen",
+ "email": "css_to_inline_styles@verkoyen.eu",
+ "role": "Developer"
+ }
+ ],
+ "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.",
+ "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles",
+ "time": "2019-10-24T08:53:34+00:00"
+ },
+ {
+ "name": "vlucas/phpdotenv",
+ "version": "v4.1.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/vlucas/phpdotenv.git",
+ "reference": "0b32505d67c1abbfa829283c86bfc0642a661bf6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/0b32505d67c1abbfa829283c86bfc0642a661bf6",
+ "reference": "0b32505d67c1abbfa829283c86bfc0642a661bf6",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^5.5.9 || ^7.0 || ^8.0",
+ "phpoption/phpoption": "^1.7.2",
+ "symfony/polyfill-ctype": "^1.9"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.3",
+ "ext-filter": "*",
+ "ext-pcre": "*",
+ "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0 || ^7.0"
+ },
+ "suggest": {
+ "ext-filter": "Required to use the boolean validator.",
+ "ext-pcre": "Required to use most of the library."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Dotenv\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "graham@alt-three.com",
+ "homepage": "https://gjcampbell.co.uk/"
+ },
+ {
+ "name": "Vance Lucas",
+ "email": "vance@vancelucas.com",
+ "homepage": "https://vancelucas.com/"
+ }
+ ],
+ "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.",
+ "keywords": [
+ "dotenv",
+ "env",
+ "environment"
+ ],
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-23T09:43:32+00:00"
+ },
+ {
+ "name": "voku/portable-ascii",
+ "version": "1.5.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/voku/portable-ascii.git",
+ "reference": "e7f9bd5deff09a57318f9b900ab33a05acfcf4d3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/voku/portable-ascii/zipball/e7f9bd5deff09a57318f9b900ab33a05acfcf4d3",
+ "reference": "e7f9bd5deff09a57318f9b900ab33a05acfcf4d3",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=7.0.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~6.0 || ~7.0"
+ },
+ "suggest": {
+ "ext-intl": "Use Intl for transliterator_transliterate() support"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "voku\\": "src/voku/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Lars Moelleken",
+ "homepage": "http://www.moelleken.org/"
+ }
+ ],
+ "description": "Portable ASCII library - performance optimized (ascii) string functions for php.",
+ "homepage": "https://github.com/voku/portable-ascii",
+ "keywords": [
+ "ascii",
+ "clean",
+ "php"
+ ],
+ "funding": [
+ {
+ "url": "https://www.paypal.me/moelleken",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/voku",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/voku",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-26T06:40:44+00:00"
+ }
+ ],
+ "packages-dev": [
+ {
+ "name": "doctrine/instantiator",
+ "version": "1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/instantiator.git",
+ "reference": "ae466f726242e637cebdd526a7d991b9433bacf1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1",
+ "reference": "ae466f726242e637cebdd526a7d991b9433bacf1",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^6.0",
+ "ext-pdo": "*",
+ "ext-phar": "*",
+ "phpbench/phpbench": "^0.13",
+ "phpstan/phpstan-phpunit": "^0.11",
+ "phpstan/phpstan-shim": "^0.11",
+ "phpunit/phpunit": "^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com",
+ "homepage": "http://ocramius.github.com/"
+ }
+ ],
+ "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
+ "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
+ "keywords": [
+ "constructor",
+ "instantiate"
+ ],
+ "time": "2019-10-21T16:45:58+00:00"
+ },
+ {
+ "name": "facade/flare-client-php",
+ "version": "1.3.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/facade/flare-client-php.git",
+ "reference": "db1e03426e7f9472c9ecd1092aff00f56aa6c004"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/facade/flare-client-php/zipball/db1e03426e7f9472c9ecd1092aff00f56aa6c004",
+ "reference": "db1e03426e7f9472c9ecd1092aff00f56aa6c004",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "facade/ignition-contracts": "~1.0",
+ "illuminate/pipeline": "^5.5|^6.0|^7.0",
+ "php": "^7.1",
+ "symfony/http-foundation": "^3.3|^4.1|^5.0",
+ "symfony/var-dumper": "^3.4|^4.0|^5.0"
+ },
+ "require-dev": {
+ "larapack/dd": "^1.1",
+ "phpunit/phpunit": "^7.5.16",
+ "spatie/phpunit-snapshot-assertions": "^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Facade\\FlareClient\\": "src"
+ },
+ "files": [
+ "src/helpers.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Send PHP errors to Flare",
+ "homepage": "https://github.com/facade/flare-client-php",
+ "keywords": [
+ "exception",
+ "facade",
+ "flare",
+ "reporting"
+ ],
+ "funding": [
+ {
+ "url": "https://www.patreon.com/spatie",
+ "type": "patreon"
+ }
+ ],
+ "time": "2020-03-02T15:52:04+00:00"
+ },
+ {
+ "name": "facade/ignition",
+ "version": "2.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/facade/ignition.git",
+ "reference": "38e1b180544bfefebe37e0f65980792ea78a534a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/facade/ignition/zipball/38e1b180544bfefebe37e0f65980792ea78a534a",
+ "reference": "38e1b180544bfefebe37e0f65980792ea78a534a",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "facade/flare-client-php": "^1.0",
+ "facade/ignition-contracts": "^1.0",
+ "filp/whoops": "^2.4",
+ "illuminate/support": "^7.0|^8.0",
+ "monolog/monolog": "^2.0",
+ "php": "^7.2.5",
+ "scrivo/highlight.php": "^9.15",
+ "symfony/console": "^5.0",
+ "symfony/var-dumper": "^5.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^2.14",
+ "mockery/mockery": "^1.3",
+ "orchestra/testbench": "5.0"
+ },
+ "suggest": {
+ "laravel/telescope": "^3.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Facade\\Ignition\\IgnitionServiceProvider"
+ ],
+ "aliases": {
+ "Flare": "Facade\\Ignition\\Facades\\Flare"
+ }
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Facade\\Ignition\\": "src"
+ },
+ "files": [
+ "src/helpers.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A beautiful error page for Laravel applications.",
+ "homepage": "https://github.com/facade/ignition",
+ "keywords": [
+ "error",
+ "flare",
+ "laravel",
+ "page"
+ ],
+ "time": "2020-05-28T22:49:07+00:00"
+ },
+ {
+ "name": "facade/ignition-contracts",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/facade/ignition-contracts.git",
+ "reference": "f445db0fb86f48e205787b2592840dd9c80ded28"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/facade/ignition-contracts/zipball/f445db0fb86f48e205787b2592840dd9c80ded28",
+ "reference": "f445db0fb86f48e205787b2592840dd9c80ded28",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Facade\\IgnitionContracts\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Freek Van der Herten",
+ "email": "freek@spatie.be",
+ "homepage": "https://flareapp.io",
+ "role": "Developer"
+ }
+ ],
+ "description": "Solution contracts for Ignition",
+ "homepage": "https://github.com/facade/ignition-contracts",
+ "keywords": [
+ "contracts",
+ "flare",
+ "ignition"
+ ],
+ "time": "2019-08-30T14:06:08+00:00"
+ },
+ {
+ "name": "filp/whoops",
+ "version": "2.7.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/filp/whoops.git",
+ "reference": "17d0d3f266c8f925ebd035cd36f83cf802b47d4a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/filp/whoops/zipball/17d0d3f266c8f925ebd035cd36f83cf802b47d4a",
+ "reference": "17d0d3f266c8f925ebd035cd36f83cf802b47d4a",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^5.5.9 || ^7.0",
+ "psr/log": "^1.0.1"
+ },
+ "require-dev": {
+ "mockery/mockery": "^0.9 || ^1.0",
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0",
+ "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0"
+ },
+ "suggest": {
+ "symfony/var-dumper": "Pretty print complex values better with var-dumper available",
+ "whoops/soap": "Formats errors as SOAP responses"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.6-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Whoops\\": "src/Whoops/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Filipe Dobreira",
+ "homepage": "https://github.com/filp",
+ "role": "Developer"
+ }
+ ],
+ "description": "php error handling for cool kids",
+ "homepage": "https://filp.github.io/whoops/",
+ "keywords": [
+ "error",
+ "exception",
+ "handling",
+ "library",
+ "throwable",
+ "whoops"
+ ],
+ "time": "2020-05-05T12:28:07+00:00"
+ },
+ {
+ "name": "fzaninotto/faker",
+ "version": "v1.9.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/fzaninotto/Faker.git",
+ "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/fc10d778e4b84d5bd315dad194661e091d307c6f",
+ "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^5.3.3 || ^7.0"
+ },
+ "require-dev": {
+ "ext-intl": "*",
+ "phpunit/phpunit": "^4.8.35 || ^5.7",
+ "squizlabs/php_codesniffer": "^2.9.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.9-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Faker\\": "src/Faker/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "François Zaninotto"
+ }
+ ],
+ "description": "Faker is a PHP library that generates fake data for you.",
+ "keywords": [
+ "data",
+ "faker",
+ "fixtures"
+ ],
+ "time": "2019-12-12T13:22:17+00:00"
+ },
+ {
+ "name": "hamcrest/hamcrest-php",
+ "version": "v2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hamcrest/hamcrest-php.git",
+ "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/776503d3a8e85d4f9a1148614f95b7a608b046ad",
+ "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^5.3|^7.0"
+ },
+ "replace": {
+ "cordoval/hamcrest-php": "*",
+ "davedevelopment/hamcrest-php": "*",
+ "kodova/hamcrest-php": "*"
+ },
+ "require-dev": {
+ "phpunit/php-file-iterator": "1.3.3",
+ "phpunit/phpunit": "~4.0",
+ "satooshi/php-coveralls": "^1.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "hamcrest"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD"
+ ],
+ "description": "This is the PHP port of Hamcrest Matchers",
+ "keywords": [
+ "test"
+ ],
+ "time": "2016-01-20T08:20:44+00:00"
+ },
+ {
+ "name": "mockery/mockery",
+ "version": "1.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/mockery/mockery.git",
+ "reference": "6c6a7c533469873deacf998237e7649fc6b36223"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/mockery/mockery/zipball/6c6a7c533469873deacf998237e7649fc6b36223",
+ "reference": "6c6a7c533469873deacf998237e7649fc6b36223",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "hamcrest/hamcrest-php": "~2.0",
+ "lib-pcre": ">=7.0",
+ "php": "^7.3.0"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.0.0 || ^9.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.4.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Mockery": "library/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Pádraic Brady",
+ "email": "padraic.brady@gmail.com",
+ "homepage": "http://blog.astrumfutura.com"
+ },
+ {
+ "name": "Dave Marshall",
+ "email": "dave.marshall@atstsolutions.co.uk",
+ "homepage": "http://davedevelopment.co.uk"
+ }
+ ],
+ "description": "Mockery is a simple yet flexible PHP mock object framework",
+ "homepage": "https://github.com/mockery/mockery",
+ "keywords": [
+ "BDD",
+ "TDD",
+ "library",
+ "mock",
+ "mock objects",
+ "mockery",
+ "stub",
+ "test",
+ "test double",
+ "testing"
+ ],
+ "time": "2020-05-19T14:25:16+00:00"
+ },
+ {
+ "name": "myclabs/deep-copy",
+ "version": "1.9.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/myclabs/DeepCopy.git",
+ "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef",
+ "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "replace": {
+ "myclabs/deep-copy": "self.version"
+ },
+ "require-dev": {
+ "doctrine/collections": "^1.0",
+ "doctrine/common": "^2.6",
+ "phpunit/phpunit": "^7.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "DeepCopy\\": "src/DeepCopy/"
+ },
+ "files": [
+ "src/DeepCopy/deep_copy.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Create deep copies (clones) of your objects",
+ "keywords": [
+ "clone",
+ "copy",
+ "duplicate",
+ "object",
+ "object graph"
+ ],
+ "time": "2020-01-17T21:11:47+00:00"
+ },
+ {
+ "name": "nunomaduro/collision",
+ "version": "v4.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nunomaduro/collision.git",
+ "reference": "d50490417eded97be300a92cd7df7badc37a9018"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nunomaduro/collision/zipball/d50490417eded97be300a92cd7df7badc37a9018",
+ "reference": "d50490417eded97be300a92cd7df7badc37a9018",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "facade/ignition-contracts": "^1.0",
+ "filp/whoops": "^2.4",
+ "php": "^7.2.5",
+ "symfony/console": "^5.0"
+ },
+ "require-dev": {
+ "facade/ignition": "^2.0",
+ "fideloper/proxy": "^4.2",
+ "friendsofphp/php-cs-fixer": "^2.16",
+ "fruitcake/laravel-cors": "^1.0",
+ "laravel/framework": "^7.0",
+ "laravel/tinker": "^2.0",
+ "nunomaduro/larastan": "^0.5",
+ "orchestra/testbench": "^5.0",
+ "phpstan/phpstan": "^0.12.3",
+ "phpunit/phpunit": "^8.5.1 || ^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "NunoMaduro\\Collision\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nuno Maduro",
+ "email": "enunomaduro@gmail.com"
+ }
+ ],
+ "description": "Cli error handling for console/command-line PHP applications.",
+ "keywords": [
+ "artisan",
+ "cli",
+ "command-line",
+ "console",
+ "error",
+ "handling",
+ "laravel",
+ "laravel-zero",
+ "php",
+ "symfony"
+ ],
+ "funding": [
+ {
+ "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/nunomaduro",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/nunomaduro",
+ "type": "patreon"
+ }
+ ],
+ "time": "2020-04-04T19:56:08+00:00"
+ },
+ {
+ "name": "phar-io/manifest",
+ "version": "1.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/manifest.git",
+ "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4",
+ "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-phar": "*",
+ "phar-io/version": "^2.0",
+ "php": "^5.6 || ^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
+ "time": "2018-07-08T19:23:20+00:00"
+ },
+ {
+ "name": "phar-io/version",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/version.git",
+ "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6",
+ "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^5.6 || ^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Library for handling version information and constraints",
+ "time": "2018-07-08T19:19:57+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-common",
+ "version": "2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
+ "reference": "6568f4687e5b41b054365f9ae03fcb1ed5f2069b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/6568f4687e5b41b054365f9ae03fcb1ed5f2069b",
+ "reference": "6568f4687e5b41b054365f9ae03fcb1ed5f2069b",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "opensource@ijaap.nl"
+ }
+ ],
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
+ "homepage": "http://www.phpdoc.org",
+ "keywords": [
+ "FQSEN",
+ "phpDocumentor",
+ "phpdoc",
+ "reflection",
+ "static analysis"
+ ],
+ "time": "2020-04-27T09:25:28+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-docblock",
+ "version": "5.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
+ "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e",
+ "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-filter": "^7.1",
+ "php": "^7.2",
+ "phpdocumentor/reflection-common": "^2.0",
+ "phpdocumentor/type-resolver": "^1.0",
+ "webmozart/assert": "^1"
+ },
+ "require-dev": {
+ "doctrine/instantiator": "^1",
+ "mockery/mockery": "^1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ },
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "account@ijaap.nl"
+ }
+ ],
+ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
+ "time": "2020-02-22T12:28:44+00:00"
+ },
+ {
+ "name": "phpdocumentor/type-resolver",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/TypeResolver.git",
+ "reference": "7462d5f123dfc080dfdf26897032a6513644fc95"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/7462d5f123dfc080dfdf26897032a6513644fc95",
+ "reference": "7462d5f123dfc080dfdf26897032a6513644fc95",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2",
+ "phpdocumentor/reflection-common": "^2.0"
+ },
+ "require-dev": {
+ "ext-tokenizer": "^7.2",
+ "mockery/mockery": "~1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ }
+ ],
+ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
+ "time": "2020-02-18T18:59:58+00:00"
+ },
+ {
+ "name": "phpspec/prophecy",
+ "version": "v1.10.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpspec/prophecy.git",
+ "reference": "451c3cd1418cf640de218914901e51b064abb093"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093",
+ "reference": "451c3cd1418cf640de218914901e51b064abb093",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "doctrine/instantiator": "^1.0.2",
+ "php": "^5.3|^7.0",
+ "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0",
+ "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0",
+ "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0"
+ },
+ "require-dev": {
+ "phpspec/phpspec": "^2.5 || ^3.2",
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.10.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Prophecy\\": "src/Prophecy"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Konstantin Kudryashov",
+ "email": "ever.zet@gmail.com",
+ "homepage": "http://everzet.com"
+ },
+ {
+ "name": "Marcello Duarte",
+ "email": "marcello.duarte@gmail.com"
+ }
+ ],
+ "description": "Highly opinionated mocking framework for PHP 5.3+",
+ "homepage": "https://github.com/phpspec/prophecy",
+ "keywords": [
+ "Double",
+ "Dummy",
+ "fake",
+ "mock",
+ "spy",
+ "stub"
+ ],
+ "time": "2020-03-05T15:02:03+00:00"
+ },
+ {
+ "name": "phpunit/php-code-coverage",
+ "version": "7.0.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "f1884187926fbb755a9aaf0b3836ad3165b478bf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f1884187926fbb755a9aaf0b3836ad3165b478bf",
+ "reference": "f1884187926fbb755a9aaf0b3836ad3165b478bf",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-xmlwriter": "*",
+ "php": "^7.2",
+ "phpunit/php-file-iterator": "^2.0.2",
+ "phpunit/php-text-template": "^1.2.1",
+ "phpunit/php-token-stream": "^3.1.1",
+ "sebastian/code-unit-reverse-lookup": "^1.0.1",
+ "sebastian/environment": "^4.2.2",
+ "sebastian/version": "^2.0.1",
+ "theseer/tokenizer": "^1.1.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.2.2"
+ },
+ "suggest": {
+ "ext-xdebug": "^2.7.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "7.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+ "keywords": [
+ "coverage",
+ "testing",
+ "xunit"
+ ],
+ "time": "2019-11-20T13:55:58+00:00"
+ },
+ {
+ "name": "phpunit/php-file-iterator",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+ "reference": "050bedf145a257b1ff02746c31894800e5122946"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946",
+ "reference": "050bedf145a257b1ff02746c31894800e5122946",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+ "keywords": [
+ "filesystem",
+ "iterator"
+ ],
+ "time": "2018-09-13T20:33:42+00:00"
+ },
+ {
+ "name": "phpunit/php-text-template",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Simple template engine.",
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+ "keywords": [
+ "template"
+ ],
+ "time": "2015-06-21T13:50:34+00:00"
+ },
+ {
+ "name": "phpunit/php-timer",
+ "version": "2.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "1038454804406b0b5f5f520358e78c1c2f71501e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e",
+ "reference": "1038454804406b0b5f5f520358e78c1c2f71501e",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Utility class for timing",
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "keywords": [
+ "timer"
+ ],
+ "time": "2019-06-07T04:22:29+00:00"
+ },
+ {
+ "name": "phpunit/php-token-stream",
+ "version": "3.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-token-stream.git",
+ "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff",
+ "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Wrapper around PHP's tokenizer extension.",
+ "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
+ "keywords": [
+ "tokenizer"
+ ],
+ "time": "2019-09-17T06:23:10+00:00"
+ },
+ {
+ "name": "phpunit/phpunit",
+ "version": "8.5.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
+ "reference": "63dda3b212a0025d380a745f91bdb4d8c985adb7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/63dda3b212a0025d380a745f91bdb4d8c985adb7",
+ "reference": "63dda3b212a0025d380a745f91bdb4d8c985adb7",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "doctrine/instantiator": "^1.2.0",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-xml": "*",
+ "ext-xmlwriter": "*",
+ "myclabs/deep-copy": "^1.9.1",
+ "phar-io/manifest": "^1.0.3",
+ "phar-io/version": "^2.0.1",
+ "php": "^7.2",
+ "phpspec/prophecy": "^1.8.1",
+ "phpunit/php-code-coverage": "^7.0.7",
+ "phpunit/php-file-iterator": "^2.0.2",
+ "phpunit/php-text-template": "^1.2.1",
+ "phpunit/php-timer": "^2.1.2",
+ "sebastian/comparator": "^3.0.2",
+ "sebastian/diff": "^3.0.2",
+ "sebastian/environment": "^4.2.2",
+ "sebastian/exporter": "^3.1.1",
+ "sebastian/global-state": "^3.0.0",
+ "sebastian/object-enumerator": "^3.0.3",
+ "sebastian/resource-operations": "^2.0.1",
+ "sebastian/type": "^1.1.3",
+ "sebastian/version": "^2.0.1"
+ },
+ "require-dev": {
+ "ext-pdo": "*"
+ },
+ "suggest": {
+ "ext-soap": "*",
+ "ext-xdebug": "*",
+ "phpunit/php-invoker": "^2.0.0"
+ },
+ "bin": [
+ "phpunit"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "8.5-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "The PHP Unit Testing framework.",
+ "homepage": "https://phpunit.de/",
+ "keywords": [
+ "phpunit",
+ "testing",
+ "xunit"
+ ],
+ "funding": [
+ {
+ "url": "https://phpunit.de/donate.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-05-22T13:51:52+00:00"
+ },
+ {
+ "name": "scrivo/highlight.php",
+ "version": "v9.18.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/scrivo/highlight.php.git",
+ "reference": "52fc21c99fd888e33aed4879e55a3646f8d40558"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/scrivo/highlight.php/zipball/52fc21c99fd888e33aed4879e55a3646f8d40558",
+ "reference": "52fc21c99fd888e33aed4879e55a3646f8d40558",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "php": ">=5.4"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8|^5.7",
+ "sabberworm/php-css-parser": "^8.3",
+ "symfony/finder": "^2.8|^3.4",
+ "symfony/var-dumper": "^2.8|^3.4"
+ },
+ "suggest": {
+ "ext-dom": "Needed to make use of the features in the utilities namespace"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-0": {
+ "Highlight\\": "",
+ "HighlightUtilities\\": ""
+ },
+ "files": [
+ "HighlightUtilities/functions.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Geert Bergman",
+ "homepage": "http://www.scrivo.org/",
+ "role": "Project Author"
+ },
+ {
+ "name": "Vladimir Jimenez",
+ "homepage": "https://allejo.io",
+ "role": "Maintainer"
+ },
+ {
+ "name": "Martin Folkers",
+ "homepage": "https://twobrain.io",
+ "role": "Contributor"
+ }
+ ],
+ "description": "Server side syntax highlighter that supports 185 languages. It's a PHP port of highlight.js",
+ "keywords": [
+ "code",
+ "highlight",
+ "highlight.js",
+ "highlight.php",
+ "syntax"
+ ],
+ "funding": [
+ {
+ "url": "https://github.com/allejo",
+ "type": "github"
+ }
+ ],
+ "time": "2020-03-02T05:59:21+00:00"
+ },
+ {
+ "name": "sebastian/code-unit-reverse-lookup",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
+ "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
+ "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^5.6 || ^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^5.7 || ^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Looks up which function or method a line of code belongs to",
+ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
+ "time": "2017-03-04T06:30:41+00:00"
+ },
+ {
+ "name": "sebastian/comparator",
+ "version": "3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/comparator.git",
+ "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da",
+ "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.1",
+ "sebastian/diff": "^3.0",
+ "sebastian/exporter": "^3.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides the functionality to compare PHP values for equality",
+ "homepage": "https://github.com/sebastianbergmann/comparator",
+ "keywords": [
+ "comparator",
+ "compare",
+ "equality"
+ ],
+ "time": "2018-07-12T15:12:46+00:00"
+ },
+ {
+ "name": "sebastian/diff",
+ "version": "3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/diff.git",
+ "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29",
+ "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.5 || ^8.0",
+ "symfony/process": "^2 || ^3.3 || ^4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Diff implementation",
+ "homepage": "https://github.com/sebastianbergmann/diff",
+ "keywords": [
+ "diff",
+ "udiff",
+ "unidiff",
+ "unified diff"
+ ],
+ "time": "2019-02-04T06:01:07+00:00"
+ },
+ {
+ "name": "sebastian/environment",
+ "version": "4.2.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/environment.git",
+ "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/464c90d7bdf5ad4e8a6aea15c091fec0603d4368",
+ "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.5"
+ },
+ "suggest": {
+ "ext-posix": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.2-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides functionality to handle HHVM/PHP environments",
+ "homepage": "http://www.github.com/sebastianbergmann/environment",
+ "keywords": [
+ "Xdebug",
+ "environment",
+ "hhvm"
+ ],
+ "time": "2019-11-20T08:46:58+00:00"
+ },
+ {
+ "name": "sebastian/exporter",
+ "version": "3.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/exporter.git",
+ "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e",
+ "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.0",
+ "sebastian/recursion-context": "^3.0"
+ },
+ "require-dev": {
+ "ext-mbstring": "*",
+ "phpunit/phpunit": "^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Provides the functionality to export PHP variables for visualization",
+ "homepage": "http://www.github.com/sebastianbergmann/exporter",
+ "keywords": [
+ "export",
+ "exporter"
+ ],
+ "time": "2019-09-14T09:02:43+00:00"
+ },
+ {
+ "name": "sebastian/global-state",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/global-state.git",
+ "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4",
+ "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2",
+ "sebastian/object-reflector": "^1.1.1",
+ "sebastian/recursion-context": "^3.0"
+ },
+ "require-dev": {
+ "ext-dom": "*",
+ "phpunit/phpunit": "^8.0"
+ },
+ "suggest": {
+ "ext-uopz": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Snapshotting of global state",
+ "homepage": "http://www.github.com/sebastianbergmann/global-state",
+ "keywords": [
+ "global state"
+ ],
+ "time": "2019-02-01T05:30:01+00:00"
+ },
+ {
+ "name": "sebastian/object-enumerator",
+ "version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
+ "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5",
+ "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.0",
+ "sebastian/object-reflector": "^1.1.1",
+ "sebastian/recursion-context": "^3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Traverses array structures and object graphs to enumerate all referenced objects",
+ "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
+ "time": "2017-08-03T12:35:26+00:00"
+ },
+ {
+ "name": "sebastian/object-reflector",
+ "version": "1.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-reflector.git",
+ "reference": "773f97c67f28de00d397be301821b06708fca0be"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be",
+ "reference": "773f97c67f28de00d397be301821b06708fca0be",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Allows reflection of object attributes, including inherited and non-public ones",
+ "homepage": "https://github.com/sebastianbergmann/object-reflector/",
+ "time": "2017-03-29T09:07:27+00:00"
+ },
+ {
+ "name": "sebastian/recursion-context",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
+ "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
+ "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides functionality to recursively process PHP variables",
+ "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
+ "time": "2017-03-03T06:23:57+00:00"
+ },
+ {
+ "name": "sebastian/resource-operations",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/resource-operations.git",
+ "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9",
+ "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides a list of PHP built-in functions that operate on resources",
+ "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
+ "time": "2018-10-04T04:07:39+00:00"
+ },
+ {
+ "name": "sebastian/type",
+ "version": "1.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/type.git",
+ "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/3aaaa15fa71d27650d62a948be022fe3b48541a3",
+ "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the types of the PHP type system",
+ "homepage": "https://github.com/sebastianbergmann/type",
+ "time": "2019-07-02T08:10:15+00:00"
+ },
+ {
+ "name": "sebastian/version",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/version.git",
+ "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
+ "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.6"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+ "homepage": "https://github.com/sebastianbergmann/version",
+ "time": "2016-10-03T07:35:21+00:00"
+ },
+ {
+ "name": "theseer/tokenizer",
+ "version": "1.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/theseer/tokenizer.git",
+ "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9",
+ "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
+ "php": "^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
+ "time": "2019-06-13T22:48:21+00:00"
+ },
+ {
+ "name": "webmozart/assert",
+ "version": "1.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozart/assert.git",
+ "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webmozart/assert/zipball/ab2cb0b3b559010b75981b1bdce728da3ee90ad6",
+ "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^5.3.3 || ^7.0",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "conflict": {
+ "vimeo/psalm": "<3.9.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.36 || ^7.5.13"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Webmozart\\Assert\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Assertions to validate method input/output with nice error messages.",
+ "keywords": [
+ "assert",
+ "check",
+ "validate"
+ ],
+ "time": "2020-04-18T12:12:48+00:00"
+ }
+ ],
+ "aliases": [],
+ "minimum-stability": "dev",
+ "stability-flags": [],
+ "prefer-stable": true,
+ "prefer-lowest": false,
+ "platform": {
+ "php": "^7.2"
+ },
+ "platform-dev": [],
+ "plugin-api-version": "1.1.0"
+}
diff --git a/config/admin.php b/config/admin.php
new file mode 100644
index 0000000..137ff37
--- /dev/null
+++ b/config/admin.php
@@ -0,0 +1,409 @@
+ '自然所',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Laravel-admin logo
+ |--------------------------------------------------------------------------
+ |
+ | The logo of all admin pages. You can also set it as an image by using a
+ | `img` tag, eg '
'.
+ |
+ */
+ 'logo' => '自然所',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Laravel-admin mini logo
+ |--------------------------------------------------------------------------
+ |
+ | The logo of all admin pages when the sidebar menu is collapsed. You can
+ | also set it as an image by using a `img` tag, eg
+ | '
'.
+ |
+ */
+ 'logo-mini' => 'zrs',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Laravel-admin bootstrap setting
+ |--------------------------------------------------------------------------
+ |
+ | This value is the path of laravel-admin bootstrap file.
+ |
+ */
+ 'bootstrap' => app_path('Admin/bootstrap.php'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Laravel-admin route settings
+ |--------------------------------------------------------------------------
+ |
+ | The routing configuration of the admin page, including the path prefix,
+ | the controller namespace, and the default middleware. If you want to
+ | access through the root path, just set the prefix to empty string.
+ |
+ */
+ 'route' => [
+
+ 'prefix' => env('ADMIN_ROUTE_PREFIX', 'admin'),
+
+ 'namespace' => 'App\\Admin\\Controllers',
+
+ 'middleware' => ['web', 'admin'],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Laravel-admin install directory
+ |--------------------------------------------------------------------------
+ |
+ | The installation directory of the controller and routing configuration
+ | files of the administration page. The default is `app/Admin`, which must
+ | be set before running `artisan admin::install` to take effect.
+ |
+ */
+ 'directory' => app_path('Admin'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Laravel-admin html title
+ |--------------------------------------------------------------------------
+ |
+ | Html title for all pages.
+ |
+ */
+ 'title' => '管理平台',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Access via `https`
+ |--------------------------------------------------------------------------
+ |
+ | If your page is going to be accessed via https, set it to `true`.
+ |
+ */
+ 'https' => env('ADMIN_HTTPS', false),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Laravel-admin auth setting
+ |--------------------------------------------------------------------------
+ |
+ | Authentication settings for all admin pages. Include an authentication
+ | guard and a user provider setting of authentication driver.
+ |
+ | You can specify a controller for `login` `logout` and other auth routes.
+ |
+ */
+ 'auth' => [
+
+ 'controller' => App\Admin\Controllers\AuthController::class,
+
+ 'guard' => 'admin',
+
+ 'guards' => [
+ 'admin' => [
+ 'driver' => 'session',
+ 'provider' => 'admin',
+ ],
+ ],
+
+ 'providers' => [
+ 'admin' => [
+ 'driver' => 'eloquent',
+ 'model' => Encore\Admin\Auth\Database\Administrator::class,
+ ],
+ ],
+
+ // Add "remember me" to login form
+ 'remember' => true,
+
+ // Redirect to the specified URI when user is not authorized.
+ 'redirect_to' => 'auth/login',
+
+ // The URIs that should be excluded from authorization.
+ 'excepts' => [
+ 'auth/login',
+ 'auth/logout',
+ '_handle_action_',
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Laravel-admin upload setting
+ |--------------------------------------------------------------------------
+ |
+ | File system configuration for form upload files and images, including
+ | disk and upload path.
+ |
+ */
+ 'upload' => [
+
+ // Disk in `config/filesystem.php`.
+ 'disk' => 'admin',
+
+ // Image and file upload path under the disk above.
+ 'directory' => [
+ 'image' => 'images',
+ 'file' => 'files',
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Laravel-admin database settings
+ |--------------------------------------------------------------------------
+ |
+ | Here are database settings for laravel-admin builtin model & tables.
+ |
+ */
+ 'database' => [
+
+ // Database connection for following tables.
+ 'connection' => '',
+
+ // User tables and model.
+ 'users_table' => 'admin_users',
+ 'users_model' => Encore\Admin\Auth\Database\Administrator::class,
+
+ // Role table and model.
+ 'roles_table' => 'admin_roles',
+ 'roles_model' => Encore\Admin\Auth\Database\Role::class,
+
+ // Permission table and model.
+ 'permissions_table' => 'admin_permissions',
+ 'permissions_model' => Encore\Admin\Auth\Database\Permission::class,
+
+ // Menu table and model.
+ 'menu_table' => 'admin_menu',
+ 'menu_model' => Encore\Admin\Auth\Database\Menu::class,
+
+ // Pivot table for table above.
+ 'operation_log_table' => 'admin_operation_log',
+ 'user_permissions_table' => 'admin_user_permissions',
+ 'role_users_table' => 'admin_role_users',
+ 'role_permissions_table' => 'admin_role_permissions',
+ 'role_menu_table' => 'admin_role_menu',
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | User operation log setting
+ |--------------------------------------------------------------------------
+ |
+ | By setting this option to open or close operation log in laravel-admin.
+ |
+ */
+ 'operation_log' => [
+
+ 'enable' => true,
+
+ /*
+ * Only logging allowed methods in the list
+ */
+ 'allowed_methods' => ['GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'CONNECT', 'OPTIONS', 'TRACE', 'PATCH'],
+
+ /*
+ * Routes that will not log to database.
+ *
+ * All method to path like: admin/auth/logs
+ * or specific method to path like: get:admin/auth/logs.
+ */
+ 'except' => [
+ 'admin/auth/logs*',
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Indicates whether to check route permission.
+ |--------------------------------------------------------------------------
+ */
+ 'check_route_permission' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Indicates whether to check menu roles.
+ |--------------------------------------------------------------------------
+ */
+ 'check_menu_roles' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | User default avatar
+ |--------------------------------------------------------------------------
+ |
+ | Set a default avatar for newly created users.
+ |
+ */
+ 'default_avatar' => '/vendor/laravel-admin/AdminLTE/dist/img/user2-160x160.jpg',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Admin map field provider
+ |--------------------------------------------------------------------------
+ |
+ | Supported: "tencent", "google", "yandex".
+ |
+ */
+ 'map_provider' => 'google',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Skin
+ |--------------------------------------------------------------------------
+ |
+ | This value is the skin of admin pages.
+ | @see https://adminlte.io/docs/2.4/layout
+ |
+ | Supported:
+ | "skin-blue", "skin-blue-light", "skin-yellow", "skin-yellow-light",
+ | "skin-green", "skin-green-light", "skin-purple", "skin-purple-light",
+ | "skin-red", "skin-red-light", "skin-black", "skin-black-light".
+ |
+ */
+ 'skin' => 'skin-blue-light',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application layout
+ |--------------------------------------------------------------------------
+ |
+ | This value is the layout of admin pages.
+ | @see https://adminlte.io/docs/2.4/layout
+ |
+ | Supported: "fixed", "layout-boxed", "layout-top-nav", "sidebar-collapse",
+ | "sidebar-mini".
+ |
+ */
+ 'layout' => ['fixed', 'sidebar-mini'],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Login page background image
+ |--------------------------------------------------------------------------
+ |
+ | This value is used to set the background image of login page.
+ |
+ */
+ 'login_background_image' => '',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Show version at footer
+ |--------------------------------------------------------------------------
+ |
+ | Whether to display the version number of laravel-admin at the footer of
+ | each page
+ |
+ */
+ 'show_version' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Show environment at footer
+ |--------------------------------------------------------------------------
+ |
+ | Whether to display the environment at the footer of each page
+ |
+ */
+ 'show_environment' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Menu bind to permission
+ |--------------------------------------------------------------------------
+ |
+ | whether enable menu bind to a permission
+ */
+ 'menu_bind_permission' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Enable default breadcrumb
+ |--------------------------------------------------------------------------
+ |
+ | Whether enable default breadcrumb for every page content.
+ */
+ 'enable_default_breadcrumb' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Enable/Disable assets minify
+ |--------------------------------------------------------------------------
+ */
+ 'minify_assets' => [
+
+ // Assets will not be minified.
+ 'excepts' => [
+
+ ],
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Enable/Disable sidebar menu search
+ |--------------------------------------------------------------------------
+ */
+ 'enable_menu_search' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Alert message that will displayed on top of the page.
+ |--------------------------------------------------------------------------
+ */
+ 'top_alert' => '',
+
+ /*
+ |--------------------------------------------------------------------------
+ | The global Grid action display class.
+ |--------------------------------------------------------------------------
+ */
+ 'grid_action_class' => \Encore\Admin\Grid\Displayers\DropdownActions::class,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Extension Directory
+ |--------------------------------------------------------------------------
+ |
+ | When you use command `php artisan admin:extend` to generate extensions,
+ | the extension files will be generated in this directory.
+ */
+ 'extension_dir' => app_path('Admin/Extensions'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Settings for extensions.
+ |--------------------------------------------------------------------------
+ |
+ | You can find all available extensions here
+ | https://github.com/laravel-admin-extensions.
+ |
+ */
+ 'extensions' => [
+ 'ueditor' => [
+ // 如果要关掉这个扩展,设置为false
+ 'enable' => true,
+ // 编辑器的前端配置 参考:http://fex.baidu.com/ueditor/#start-config
+ 'config' => [
+ 'initialFrameHeight' => 400, // 例如初始化高度
+ ],
+ 'field_type' => 'ueditor',
+ ],
+ ],
+];
diff --git a/config/app.php b/config/app.php
new file mode 100644
index 0000000..3fe2039
--- /dev/null
+++ b/config/app.php
@@ -0,0 +1,231 @@
+ env('APP_NAME', 'Laravel'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Environment
+ |--------------------------------------------------------------------------
+ |
+ | This value determines the "environment" your application is currently
+ | running in. This may determine how you prefer to configure various
+ | services the application utilizes. Set this in your ".env" file.
+ |
+ */
+
+ 'env' => env('APP_ENV', 'production'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Debug Mode
+ |--------------------------------------------------------------------------
+ |
+ | When your application is in debug mode, detailed error messages with
+ | stack traces will be shown on every error that occurs within your
+ | application. If disabled, a simple generic error page is shown.
+ |
+ */
+
+ 'debug' => (bool) env('APP_DEBUG', false),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application URL
+ |--------------------------------------------------------------------------
+ |
+ | This URL is used by the console to properly generate URLs when using
+ | the Artisan command line tool. You should set this to the root of
+ | your application so that it is used when running Artisan tasks.
+ |
+ */
+
+ 'url' => env('APP_URL', 'http://localhost'),
+
+ 'asset_url' => env('ASSET_URL', null),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Timezone
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify the default timezone for your application, which
+ | will be used by the PHP date and date-time functions. We have gone
+ | ahead and set this to a sensible default for you out of the box.
+ |
+ */
+
+ 'timezone' => 'PRC',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Locale Configuration
+ |--------------------------------------------------------------------------
+ |
+ | The application locale determines the default locale that will be used
+ | by the translation service provider. You are free to set this value
+ | to any of the locales which will be supported by the application.
+ |
+ */
+
+ 'locale' => 'zh-CN',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Fallback Locale
+ |--------------------------------------------------------------------------
+ |
+ | The fallback locale determines the locale to use when the current one
+ | is not available. You may change the value to correspond to any of
+ | the language folders that are provided through your application.
+ |
+ */
+
+ 'fallback_locale' => 'en',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Faker Locale
+ |--------------------------------------------------------------------------
+ |
+ | This locale will be used by the Faker PHP library when generating fake
+ | data for your database seeds. For example, this will be used to get
+ | localized telephone numbers, street address information and more.
+ |
+ */
+
+ 'faker_locale' => 'en_US',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Encryption Key
+ |--------------------------------------------------------------------------
+ |
+ | This key is used by the Illuminate encrypter service and should be set
+ | to a random, 32 character string, otherwise these encrypted strings
+ | will not be safe. Please do this before deploying an application!
+ |
+ */
+
+ 'key' => env('APP_KEY'),
+
+ 'cipher' => 'AES-256-CBC',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Autoloaded Service Providers
+ |--------------------------------------------------------------------------
+ |
+ | The service providers listed here will be automatically loaded on the
+ | request to your application. Feel free to add your own services to
+ | this array to grant expanded functionality to your applications.
+ |
+ */
+
+ 'providers' => [
+
+ /*
+ * Laravel Framework Service Providers...
+ */
+ Illuminate\Auth\AuthServiceProvider::class,
+ Illuminate\Broadcasting\BroadcastServiceProvider::class,
+ Illuminate\Bus\BusServiceProvider::class,
+ Illuminate\Cache\CacheServiceProvider::class,
+ Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
+ Illuminate\Cookie\CookieServiceProvider::class,
+ Illuminate\Database\DatabaseServiceProvider::class,
+ Illuminate\Encryption\EncryptionServiceProvider::class,
+ Illuminate\Filesystem\FilesystemServiceProvider::class,
+ Illuminate\Foundation\Providers\FoundationServiceProvider::class,
+ Illuminate\Hashing\HashServiceProvider::class,
+ Illuminate\Mail\MailServiceProvider::class,
+ Illuminate\Notifications\NotificationServiceProvider::class,
+ Illuminate\Pagination\PaginationServiceProvider::class,
+ Illuminate\Pipeline\PipelineServiceProvider::class,
+ Illuminate\Queue\QueueServiceProvider::class,
+ Illuminate\Redis\RedisServiceProvider::class,
+ Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
+ Illuminate\Session\SessionServiceProvider::class,
+ Illuminate\Translation\TranslationServiceProvider::class,
+ Illuminate\Validation\ValidationServiceProvider::class,
+ Illuminate\View\ViewServiceProvider::class,
+
+ /*
+ * Package Service Providers...
+ */
+
+ /*
+ * Application Service Providers...
+ */
+ App\Providers\AppServiceProvider::class,
+ App\Providers\AuthServiceProvider::class,
+ // App\Providers\BroadcastServiceProvider::class,
+ App\Providers\EventServiceProvider::class,
+ App\Providers\RouteServiceProvider::class,
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Class Aliases
+ |--------------------------------------------------------------------------
+ |
+ | This array of class aliases will be registered when this application
+ | is started. However, feel free to register as many as you wish as
+ | the aliases are "lazy" loaded so they don't hinder performance.
+ |
+ */
+
+ 'aliases' => [
+
+ 'App' => Illuminate\Support\Facades\App::class,
+ 'Arr' => Illuminate\Support\Arr::class,
+ 'Artisan' => Illuminate\Support\Facades\Artisan::class,
+ 'Auth' => Illuminate\Support\Facades\Auth::class,
+ 'Blade' => Illuminate\Support\Facades\Blade::class,
+ 'Broadcast' => Illuminate\Support\Facades\Broadcast::class,
+ 'Bus' => Illuminate\Support\Facades\Bus::class,
+ 'Cache' => Illuminate\Support\Facades\Cache::class,
+ 'Config' => Illuminate\Support\Facades\Config::class,
+ 'Cookie' => Illuminate\Support\Facades\Cookie::class,
+ 'Crypt' => Illuminate\Support\Facades\Crypt::class,
+ 'DB' => Illuminate\Support\Facades\DB::class,
+ 'Eloquent' => Illuminate\Database\Eloquent\Model::class,
+ 'Event' => Illuminate\Support\Facades\Event::class,
+ 'File' => Illuminate\Support\Facades\File::class,
+ 'Gate' => Illuminate\Support\Facades\Gate::class,
+ 'Hash' => Illuminate\Support\Facades\Hash::class,
+ 'Lang' => Illuminate\Support\Facades\Lang::class,
+ 'Log' => Illuminate\Support\Facades\Log::class,
+ 'Mail' => Illuminate\Support\Facades\Mail::class,
+ 'Notification' => Illuminate\Support\Facades\Notification::class,
+ 'Password' => Illuminate\Support\Facades\Password::class,
+ 'Queue' => Illuminate\Support\Facades\Queue::class,
+ 'Redirect' => Illuminate\Support\Facades\Redirect::class,
+ 'Redis' => Illuminate\Support\Facades\Redis::class,
+ 'Request' => Illuminate\Support\Facades\Request::class,
+ 'Response' => Illuminate\Support\Facades\Response::class,
+ 'Route' => Illuminate\Support\Facades\Route::class,
+ 'Schema' => Illuminate\Support\Facades\Schema::class,
+ 'Session' => Illuminate\Support\Facades\Session::class,
+ 'Storage' => Illuminate\Support\Facades\Storage::class,
+ 'Str' => Illuminate\Support\Str::class,
+ 'URL' => Illuminate\Support\Facades\URL::class,
+ 'Validator' => Illuminate\Support\Facades\Validator::class,
+ 'View' => Illuminate\Support\Facades\View::class,
+
+ ],
+
+];
diff --git a/config/auth.php b/config/auth.php
new file mode 100644
index 0000000..aaf982b
--- /dev/null
+++ b/config/auth.php
@@ -0,0 +1,117 @@
+ [
+ 'guard' => 'web',
+ 'passwords' => 'users',
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Authentication Guards
+ |--------------------------------------------------------------------------
+ |
+ | Next, you may define every authentication guard for your application.
+ | Of course, a great default configuration has been defined for you
+ | here which uses session storage and the Eloquent user provider.
+ |
+ | All authentication drivers have a user provider. This defines how the
+ | users are actually retrieved out of your database or other storage
+ | mechanisms used by this application to persist your user's data.
+ |
+ | Supported: "session", "token"
+ |
+ */
+
+ 'guards' => [
+ 'web' => [
+ 'driver' => 'session',
+ 'provider' => 'users',
+ ],
+
+ 'api' => [
+ 'driver' => 'token',
+ 'provider' => 'users',
+ 'hash' => false,
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | User Providers
+ |--------------------------------------------------------------------------
+ |
+ | All authentication drivers have a user provider. This defines how the
+ | users are actually retrieved out of your database or other storage
+ | mechanisms used by this application to persist your user's data.
+ |
+ | If you have multiple user tables or models you may configure multiple
+ | sources which represent each model / table. These sources may then
+ | be assigned to any extra authentication guards you have defined.
+ |
+ | Supported: "database", "eloquent"
+ |
+ */
+
+ 'providers' => [
+ 'users' => [
+ 'driver' => 'eloquent',
+ 'model' => App\User::class,
+ ],
+
+ // 'users' => [
+ // 'driver' => 'database',
+ // 'table' => 'users',
+ // ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Resetting Passwords
+ |--------------------------------------------------------------------------
+ |
+ | You may specify multiple password reset configurations if you have more
+ | than one user table or model in the application and you want to have
+ | separate password reset settings based on the specific user types.
+ |
+ | The expire time is the number of minutes that the reset token should be
+ | considered valid. This security feature keeps tokens short-lived so
+ | they have less time to be guessed. You may change this as needed.
+ |
+ */
+
+ 'passwords' => [
+ 'users' => [
+ 'provider' => 'users',
+ 'table' => 'password_resets',
+ 'expire' => 60,
+ 'throttle' => 60,
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Password Confirmation Timeout
+ |--------------------------------------------------------------------------
+ |
+ | Here you may define the amount of seconds before a password confirmation
+ | times out and the user is prompted to re-enter their password via the
+ | confirmation screen. By default, the timeout lasts for three hours.
+ |
+ */
+
+ 'password_timeout' => 10800,
+
+];
diff --git a/config/broadcasting.php b/config/broadcasting.php
new file mode 100644
index 0000000..3bba110
--- /dev/null
+++ b/config/broadcasting.php
@@ -0,0 +1,59 @@
+ env('BROADCAST_DRIVER', 'null'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Broadcast Connections
+ |--------------------------------------------------------------------------
+ |
+ | Here you may define all of the broadcast connections that will be used
+ | to broadcast events to other systems or over websockets. Samples of
+ | each available type of connection are provided inside this array.
+ |
+ */
+
+ 'connections' => [
+
+ 'pusher' => [
+ 'driver' => 'pusher',
+ 'key' => env('PUSHER_APP_KEY'),
+ 'secret' => env('PUSHER_APP_SECRET'),
+ 'app_id' => env('PUSHER_APP_ID'),
+ 'options' => [
+ 'cluster' => env('PUSHER_APP_CLUSTER'),
+ 'useTLS' => true,
+ ],
+ ],
+
+ 'redis' => [
+ 'driver' => 'redis',
+ 'connection' => 'default',
+ ],
+
+ 'log' => [
+ 'driver' => 'log',
+ ],
+
+ 'null' => [
+ 'driver' => 'null',
+ ],
+
+ ],
+
+];
diff --git a/config/cache.php b/config/cache.php
new file mode 100644
index 0000000..46751e6
--- /dev/null
+++ b/config/cache.php
@@ -0,0 +1,103 @@
+ env('CACHE_DRIVER', 'file'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Cache Stores
+ |--------------------------------------------------------------------------
+ |
+ | Here you may define all of the cache "stores" for your application as
+ | well as their drivers. You may even define multiple stores for the
+ | same cache driver to group types of items stored in your caches.
+ |
+ */
+
+ 'stores' => [
+
+ 'apc' => [
+ 'driver' => 'apc',
+ ],
+
+ 'array' => [
+ 'driver' => 'array',
+ ],
+
+ 'database' => [
+ 'driver' => 'database',
+ 'table' => 'cache',
+ 'connection' => null,
+ ],
+
+ 'file' => [
+ 'driver' => 'file',
+ 'path' => storage_path('framework/cache/data'),
+ ],
+
+ 'memcached' => [
+ 'driver' => 'memcached',
+ 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
+ 'sasl' => [
+ env('MEMCACHED_USERNAME'),
+ env('MEMCACHED_PASSWORD'),
+ ],
+ 'options' => [
+ // Memcached::OPT_CONNECT_TIMEOUT => 2000,
+ ],
+ 'servers' => [
+ [
+ 'host' => env('MEMCACHED_HOST', '127.0.0.1'),
+ 'port' => env('MEMCACHED_PORT', 11211),
+ 'weight' => 100,
+ ],
+ ],
+ ],
+
+ 'redis' => [
+ 'driver' => 'redis',
+ 'connection' => 'cache',
+ ],
+
+ 'dynamodb' => [
+ 'driver' => 'dynamodb',
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
+ 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'),
+ 'endpoint' => env('DYNAMODB_ENDPOINT'),
+ ],
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Cache Key Prefix
+ |--------------------------------------------------------------------------
+ |
+ | When utilizing a RAM based store such as APC or Memcached, there might
+ | be other applications utilizing the same cache. So, we'll specify a
+ | value to get prefixed to all our keys so we can avoid collisions.
+ |
+ */
+
+ 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache'),
+
+];
diff --git a/config/database.php b/config/database.php
new file mode 100644
index 0000000..b42d9b3
--- /dev/null
+++ b/config/database.php
@@ -0,0 +1,147 @@
+ env('DB_CONNECTION', 'mysql'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Database Connections
+ |--------------------------------------------------------------------------
+ |
+ | Here are each of the database connections setup for your application.
+ | Of course, examples of configuring each database platform that is
+ | supported by Laravel is shown below to make development simple.
+ |
+ |
+ | All database work in Laravel is done through the PHP PDO facilities
+ | so make sure you have the driver for your particular database of
+ | choice installed on your machine before you begin development.
+ |
+ */
+
+ 'connections' => [
+
+ 'sqlite' => [
+ 'driver' => 'sqlite',
+ 'url' => env('DATABASE_URL'),
+ 'database' => env('DB_DATABASE', database_path('database.sqlite')),
+ 'prefix' => '',
+ 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
+ ],
+
+ 'mysql' => [
+ 'driver' => 'mysql',
+ 'url' => env('DATABASE_URL'),
+ 'host' => env('DB_HOST', '127.0.0.1'),
+ 'port' => env('DB_PORT', '3306'),
+ 'database' => env('DB_DATABASE', 'forge'),
+ 'username' => env('DB_USERNAME', 'forge'),
+ 'password' => env('DB_PASSWORD', ''),
+ 'unix_socket' => env('DB_SOCKET', ''),
+ 'charset' => 'utf8mb4',
+ 'collation' => 'utf8mb4_unicode_ci',
+ 'prefix' => '',
+ 'prefix_indexes' => true,
+ 'strict' => true,
+ 'engine' => null,
+ 'options' => extension_loaded('pdo_mysql') ? array_filter([
+ PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
+ ]) : [],
+ ],
+
+ 'pgsql' => [
+ 'driver' => 'pgsql',
+ 'url' => env('DATABASE_URL'),
+ 'host' => env('DB_HOST', '127.0.0.1'),
+ 'port' => env('DB_PORT', '5432'),
+ 'database' => env('DB_DATABASE', 'forge'),
+ 'username' => env('DB_USERNAME', 'forge'),
+ 'password' => env('DB_PASSWORD', ''),
+ 'charset' => 'utf8',
+ 'prefix' => '',
+ 'prefix_indexes' => true,
+ 'schema' => 'public',
+ 'sslmode' => 'prefer',
+ ],
+
+ 'sqlsrv' => [
+ 'driver' => 'sqlsrv',
+ 'url' => env('DATABASE_URL'),
+ 'host' => env('DB_HOST', 'localhost'),
+ 'port' => env('DB_PORT', '1433'),
+ 'database' => env('DB_DATABASE', 'forge'),
+ 'username' => env('DB_USERNAME', 'forge'),
+ 'password' => env('DB_PASSWORD', ''),
+ 'charset' => 'utf8',
+ 'prefix' => '',
+ 'prefix_indexes' => true,
+ ],
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Migration Repository Table
+ |--------------------------------------------------------------------------
+ |
+ | This table keeps track of all the migrations that have already run for
+ | your application. Using this information, we can determine which of
+ | the migrations on disk haven't actually been run in the database.
+ |
+ */
+
+ 'migrations' => 'migrations',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Redis Databases
+ |--------------------------------------------------------------------------
+ |
+ | Redis is an open source, fast, and advanced key-value store that also
+ | provides a richer body of commands than a typical key-value system
+ | such as APC or Memcached. Laravel makes it easy to dig right in.
+ |
+ */
+
+ 'redis' => [
+
+ 'client' => env('REDIS_CLIENT', 'phpredis'),
+
+ 'options' => [
+ 'cluster' => env('REDIS_CLUSTER', 'redis'),
+ 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
+ ],
+
+ 'default' => [
+ 'url' => env('REDIS_URL'),
+ 'host' => env('REDIS_HOST', '127.0.0.1'),
+ 'password' => env('REDIS_PASSWORD', null),
+ 'port' => env('REDIS_PORT', '6379'),
+ 'database' => env('REDIS_DB', '0'),
+ ],
+
+ 'cache' => [
+ 'url' => env('REDIS_URL'),
+ 'host' => env('REDIS_HOST', '127.0.0.1'),
+ 'password' => env('REDIS_PASSWORD', null),
+ 'port' => env('REDIS_PORT', '6379'),
+ 'database' => env('REDIS_CACHE_DB', '1'),
+ ],
+
+ ],
+
+];
diff --git a/config/filesystems.php b/config/filesystems.php
new file mode 100644
index 0000000..c6e2ff6
--- /dev/null
+++ b/config/filesystems.php
@@ -0,0 +1,77 @@
+ env('FILESYSTEM_DRIVER', 'local'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Default Cloud Filesystem Disk
+ |--------------------------------------------------------------------------
+ |
+ | Many applications store files both locally and in the cloud. For this
+ | reason, you may specify a default "cloud" driver here. This driver
+ | will be bound as the Cloud disk implementation in the container.
+ |
+ */
+
+ 'cloud' => env('FILESYSTEM_CLOUD', 's3'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Filesystem Disks
+ |--------------------------------------------------------------------------
+ |
+ | Here you may configure as many filesystem "disks" as you wish, and you
+ | may even configure multiple disks of the same driver. Defaults have
+ | been setup for each driver as an example of the required options.
+ |
+ | Supported Drivers: "local", "ftp", "sftp", "s3"
+ |
+ */
+
+ 'disks' => [
+
+ 'admin' => [
+ 'driver' => 'local',
+ 'root' => storage_path('app/public'),
+ 'url' => env('APP_URL') . '/storage',
+ 'visibility' => 'public',
+ ],
+
+ 'local' => [
+ 'driver' => 'local',
+ 'root' => storage_path('app'),
+ ],
+
+ 'public' => [
+ 'driver' => 'local',
+ 'root' => storage_path('app/public'),
+ 'url' => env('APP_URL') . '/storage',
+ 'visibility' => 'public',
+ ],
+
+ 's3' => [
+ 'driver' => 's3',
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'region' => env('AWS_DEFAULT_REGION'),
+ 'bucket' => env('AWS_BUCKET'),
+ 'url' => env('AWS_URL'),
+ 'endpoint' => env('AWS_ENDPOINT'),
+ ],
+
+ ],
+
+];
diff --git a/config/hashing.php b/config/hashing.php
new file mode 100644
index 0000000..8425770
--- /dev/null
+++ b/config/hashing.php
@@ -0,0 +1,52 @@
+ 'bcrypt',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Bcrypt Options
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify the configuration options that should be used when
+ | passwords are hashed using the Bcrypt algorithm. This will allow you
+ | to control the amount of time it takes to hash the given password.
+ |
+ */
+
+ 'bcrypt' => [
+ 'rounds' => env('BCRYPT_ROUNDS', 10),
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Argon Options
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify the configuration options that should be used when
+ | passwords are hashed using the Argon algorithm. These will allow you
+ | to control the amount of time it takes to hash the given password.
+ |
+ */
+
+ 'argon' => [
+ 'memory' => 1024,
+ 'threads' => 2,
+ 'time' => 2,
+ ],
+
+];
diff --git a/config/logging.php b/config/logging.php
new file mode 100644
index 0000000..088c204
--- /dev/null
+++ b/config/logging.php
@@ -0,0 +1,104 @@
+ env('LOG_CHANNEL', 'stack'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Log Channels
+ |--------------------------------------------------------------------------
+ |
+ | Here you may configure the log channels for your application. Out of
+ | the box, Laravel uses the Monolog PHP logging library. This gives
+ | you a variety of powerful log handlers / formatters to utilize.
+ |
+ | Available Drivers: "single", "daily", "slack", "syslog",
+ | "errorlog", "monolog",
+ | "custom", "stack"
+ |
+ */
+
+ 'channels' => [
+ 'stack' => [
+ 'driver' => 'stack',
+ 'channels' => ['single'],
+ 'ignore_exceptions' => false,
+ ],
+
+ 'single' => [
+ 'driver' => 'single',
+ 'path' => storage_path('logs/laravel.log'),
+ 'level' => 'debug',
+ ],
+
+ 'daily' => [
+ 'driver' => 'daily',
+ 'path' => storage_path('logs/laravel.log'),
+ 'level' => 'debug',
+ 'days' => 14,
+ ],
+
+ 'slack' => [
+ 'driver' => 'slack',
+ 'url' => env('LOG_SLACK_WEBHOOK_URL'),
+ 'username' => 'Laravel Log',
+ 'emoji' => ':boom:',
+ 'level' => 'critical',
+ ],
+
+ 'papertrail' => [
+ 'driver' => 'monolog',
+ 'level' => 'debug',
+ 'handler' => SyslogUdpHandler::class,
+ 'handler_with' => [
+ 'host' => env('PAPERTRAIL_URL'),
+ 'port' => env('PAPERTRAIL_PORT'),
+ ],
+ ],
+
+ 'stderr' => [
+ 'driver' => 'monolog',
+ 'handler' => StreamHandler::class,
+ 'formatter' => env('LOG_STDERR_FORMATTER'),
+ 'with' => [
+ 'stream' => 'php://stderr',
+ ],
+ ],
+
+ 'syslog' => [
+ 'driver' => 'syslog',
+ 'level' => 'debug',
+ ],
+
+ 'errorlog' => [
+ 'driver' => 'errorlog',
+ 'level' => 'debug',
+ ],
+
+ 'null' => [
+ 'driver' => 'monolog',
+ 'handler' => NullHandler::class,
+ ],
+
+ 'emergency' => [
+ 'path' => storage_path('logs/laravel.log'),
+ ],
+ ],
+
+];
diff --git a/config/mail.php b/config/mail.php
new file mode 100644
index 0000000..3c65eb3
--- /dev/null
+++ b/config/mail.php
@@ -0,0 +1,136 @@
+ env('MAIL_DRIVER', 'smtp'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | SMTP Host Address
+ |--------------------------------------------------------------------------
+ |
+ | Here you may provide the host address of the SMTP server used by your
+ | applications. A default option is provided that is compatible with
+ | the Mailgun mail service which will provide reliable deliveries.
+ |
+ */
+
+ 'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | SMTP Host Port
+ |--------------------------------------------------------------------------
+ |
+ | This is the SMTP port used by your application to deliver e-mails to
+ | users of the application. Like the host we have set this value to
+ | stay compatible with the Mailgun e-mail application by default.
+ |
+ */
+
+ 'port' => env('MAIL_PORT', 587),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Global "From" Address
+ |--------------------------------------------------------------------------
+ |
+ | You may wish for all e-mails sent by your application to be sent from
+ | the same address. Here, you may specify a name and address that is
+ | used globally for all e-mails that are sent by your application.
+ |
+ */
+
+ 'from' => [
+ 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
+ 'name' => env('MAIL_FROM_NAME', 'Example'),
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | E-Mail Encryption Protocol
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify the encryption protocol that should be used when
+ | the application send e-mail messages. A sensible default using the
+ | transport layer security protocol should provide great security.
+ |
+ */
+
+ 'encryption' => env('MAIL_ENCRYPTION', 'tls'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | SMTP Server Username
+ |--------------------------------------------------------------------------
+ |
+ | If your SMTP server requires a username for authentication, you should
+ | set it here. This will get used to authenticate with your server on
+ | connection. You may also set the "password" value below this one.
+ |
+ */
+
+ 'username' => env('MAIL_USERNAME'),
+
+ 'password' => env('MAIL_PASSWORD'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Sendmail System Path
+ |--------------------------------------------------------------------------
+ |
+ | When using the "sendmail" driver to send e-mails, we will need to know
+ | the path to where Sendmail lives on this server. A default path has
+ | been provided here, which will work well on most of your systems.
+ |
+ */
+
+ 'sendmail' => '/usr/sbin/sendmail -bs',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Markdown Mail Settings
+ |--------------------------------------------------------------------------
+ |
+ | If you are using Markdown based email rendering, you may configure your
+ | theme and component paths here, allowing you to customize the design
+ | of the emails. Or, you may simply stick with the Laravel defaults!
+ |
+ */
+
+ 'markdown' => [
+ 'theme' => 'default',
+
+ 'paths' => [
+ resource_path('views/vendor/mail'),
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Log Channel
+ |--------------------------------------------------------------------------
+ |
+ | If you are using the "log" driver, you may specify the logging channel
+ | if you prefer to keep mail messages separate from other log entries
+ | for simpler reading. Otherwise, the default channel will be used.
+ |
+ */
+
+ 'log_channel' => env('MAIL_LOG_CHANNEL'),
+
+];
diff --git a/config/queue.php b/config/queue.php
new file mode 100644
index 0000000..3a30d6c
--- /dev/null
+++ b/config/queue.php
@@ -0,0 +1,88 @@
+ env('QUEUE_CONNECTION', 'sync'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Queue Connections
+ |--------------------------------------------------------------------------
+ |
+ | Here you may configure the connection information for each server that
+ | is used by your application. A default configuration has been added
+ | for each back-end shipped with Laravel. You are free to add more.
+ |
+ | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null"
+ |
+ */
+
+ 'connections' => [
+
+ 'sync' => [
+ 'driver' => 'sync',
+ ],
+
+ 'database' => [
+ 'driver' => 'database',
+ 'table' => 'jobs',
+ 'queue' => 'default',
+ 'retry_after' => 90,
+ ],
+
+ 'beanstalkd' => [
+ 'driver' => 'beanstalkd',
+ 'host' => 'localhost',
+ 'queue' => 'default',
+ 'retry_after' => 90,
+ 'block_for' => 0,
+ ],
+
+ 'sqs' => [
+ 'driver' => 'sqs',
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
+ 'queue' => env('SQS_QUEUE', 'your-queue-name'),
+ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
+ ],
+
+ 'redis' => [
+ 'driver' => 'redis',
+ 'connection' => 'default',
+ 'queue' => env('REDIS_QUEUE', 'default'),
+ 'retry_after' => 90,
+ 'block_for' => null,
+ ],
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Failed Queue Jobs
+ |--------------------------------------------------------------------------
+ |
+ | These options configure the behavior of failed queue job logging so you
+ | can control which database and table are used to store the jobs that
+ | have failed. You may change them to any database / table you wish.
+ |
+ */
+
+ 'failed' => [
+ 'driver' => env('QUEUE_FAILED_DRIVER', 'database'),
+ 'database' => env('DB_CONNECTION', 'mysql'),
+ 'table' => 'failed_jobs',
+ ],
+
+];
diff --git a/config/services.php b/config/services.php
new file mode 100644
index 0000000..2a1d616
--- /dev/null
+++ b/config/services.php
@@ -0,0 +1,33 @@
+ [
+ 'domain' => env('MAILGUN_DOMAIN'),
+ 'secret' => env('MAILGUN_SECRET'),
+ 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),
+ ],
+
+ 'postmark' => [
+ 'token' => env('POSTMARK_TOKEN'),
+ ],
+
+ 'ses' => [
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
+ ],
+
+];
diff --git a/config/session.php b/config/session.php
new file mode 100644
index 0000000..175ac49
--- /dev/null
+++ b/config/session.php
@@ -0,0 +1,199 @@
+ env('SESSION_DRIVER', 'file'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Lifetime
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify the number of minutes that you wish the session
+ | to be allowed to remain idle before it expires. If you want them
+ | to immediately expire on the browser closing, set that option.
+ |
+ */
+
+ 'lifetime' => env('SESSION_LIFETIME', 120),
+
+ 'expire_on_close' => false,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Encryption
+ |--------------------------------------------------------------------------
+ |
+ | This option allows you to easily specify that all of your session data
+ | should be encrypted before it is stored. All encryption will be run
+ | automatically by Laravel and you can use the Session like normal.
+ |
+ */
+
+ 'encrypt' => false,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session File Location
+ |--------------------------------------------------------------------------
+ |
+ | When using the native session driver, we need a location where session
+ | files may be stored. A default has been set for you but a different
+ | location may be specified. This is only needed for file sessions.
+ |
+ */
+
+ 'files' => storage_path('framework/sessions'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Database Connection
+ |--------------------------------------------------------------------------
+ |
+ | When using the "database" or "redis" session drivers, you may specify a
+ | connection that should be used to manage these sessions. This should
+ | correspond to a connection in your database configuration options.
+ |
+ */
+
+ 'connection' => env('SESSION_CONNECTION', null),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Database Table
+ |--------------------------------------------------------------------------
+ |
+ | When using the "database" session driver, you may specify the table we
+ | should use to manage the sessions. Of course, a sensible default is
+ | provided for you; however, you are free to change this as needed.
+ |
+ */
+
+ 'table' => 'sessions',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Cache Store
+ |--------------------------------------------------------------------------
+ |
+ | When using the "apc", "memcached", or "dynamodb" session drivers you may
+ | list a cache store that should be used for these sessions. This value
+ | must match with one of the application's configured cache "stores".
+ |
+ */
+
+ 'store' => env('SESSION_STORE', null),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Sweeping Lottery
+ |--------------------------------------------------------------------------
+ |
+ | Some session drivers must manually sweep their storage location to get
+ | rid of old sessions from storage. Here are the chances that it will
+ | happen on a given request. By default, the odds are 2 out of 100.
+ |
+ */
+
+ 'lottery' => [2, 100],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Cookie Name
+ |--------------------------------------------------------------------------
+ |
+ | Here you may change the name of the cookie used to identify a session
+ | instance by ID. The name specified here will get used every time a
+ | new session cookie is created by the framework for every driver.
+ |
+ */
+
+ 'cookie' => env(
+ 'SESSION_COOKIE',
+ Str::slug(env('APP_NAME', 'laravel'), '_') . '_session'
+ ),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Cookie Path
+ |--------------------------------------------------------------------------
+ |
+ | The session cookie path determines the path for which the cookie will
+ | be regarded as available. Typically, this will be the root path of
+ | your application but you are free to change this when necessary.
+ |
+ */
+
+ 'path' => '/',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Cookie Domain
+ |--------------------------------------------------------------------------
+ |
+ | Here you may change the domain of the cookie used to identify a session
+ | in your application. This will determine which domains the cookie is
+ | available to in your application. A sensible default has been set.
+ |
+ */
+
+ 'domain' => env('SESSION_DOMAIN', null),
+
+ /*
+ |--------------------------------------------------------------------------
+ | HTTPS Only Cookies
+ |--------------------------------------------------------------------------
+ |
+ | By setting this option to true, session cookies will only be sent back
+ | to the server if the browser has a HTTPS connection. This will keep
+ | the cookie from being sent to you if it can not be done securely.
+ |
+ */
+
+ 'secure' => env('SESSION_SECURE_COOKIE', null),
+
+ /*
+ |--------------------------------------------------------------------------
+ | HTTP Access Only
+ |--------------------------------------------------------------------------
+ |
+ | Setting this value to true will prevent JavaScript from accessing the
+ | value of the cookie and the cookie will only be accessible through
+ | the HTTP protocol. You are free to modify this option if needed.
+ |
+ */
+
+ 'http_only' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Same-Site Cookies
+ |--------------------------------------------------------------------------
+ |
+ | This option determines how your cookies behave when cross-site requests
+ | take place, and can be used to mitigate CSRF attacks. By default, we
+ | do not enable this as other CSRF protection services are in place.
+ |
+ | Supported: "lax", "strict", "none"
+ |
+ */
+
+ 'same_site' => 'lax',
+
+];
diff --git a/config/ueditor.php b/config/ueditor.php
new file mode 100644
index 0000000..8411b9c
--- /dev/null
+++ b/config/ueditor.php
@@ -0,0 +1,116 @@
+
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this source code in the file LICENSE.
+ */
+
+return [
+ // 存储引擎: config/filesystem.php 中 disks, public 或 qiniu
+ 'disk' => 'public',
+ 'route' => [
+ 'name' => '/ueditor/server',
+ 'options' => [
+ // middleware => 'auth',
+ ],
+ ],
+
+ // 上传 配置
+ 'upload' => [
+ /* 前后端通信相关的配置,注释只允许使用多行方式 */
+ /* 上传图片配置项 */
+ 'imageActionName' => 'upload-image', /* 执行上传图片的action名称 */
+ 'imageFieldName' => 'upfile', /* 提交的图片表单名称 */
+ 'imageMaxSize' => 2 * 1024 * 1024, /* 上传大小限制,单位B */
+ 'imageAllowFiles' => ['.png', '.jpg', '.jpeg', '.gif', '.bmp'], /* 上传图片格式显示 */
+ 'imageCompressEnable' => true, /* 是否压缩图片,默认是true */
+ 'imageCompressBorder' => 1600, /* 图片压缩最长边限制 */
+ 'imageInsertAlign' => 'none', /* 插入的图片浮动方式 */
+ 'imageUrlPrefix' => '', /* 图片访问路径前缀 */
+ 'imagePathFormat' => '/uploads/image/{yyyy}/{mm}/{dd}/', /* 上传保存路径,可以自定义保存路径和文件名格式 */
+ /* {filename} 会替换成原文件名,配置这项需要注意中文乱码问题 */
+ /* {rand:6} 会替换成随机数,后面的数字是随机数的位数 */
+ /* {time} 会替换成时间戳 */
+ /* {yyyy} 会替换成四位年份 */
+ /* {yy} 会替换成两位年份 */
+ /* {mm} 会替换成两位月份 */
+ /* {dd} 会替换成两位日期 */
+ /* {hh} 会替换成两位小时 */
+ /* {ii} 会替换成两位分钟 */
+ /* {ss} 会替换成两位秒 */
+ /* 非法字符 \ => * ? " < > | */
+ /* 具请体看线上文档 => fex.baidu.com/assets/#use-format_upload_filename */
+
+ /* 涂鸦图片上传配置项 */
+ 'scrawlActionName' => 'upload-scrawl', /* 执行上传涂鸦的action名称 */
+ 'scrawlFieldName' => 'upfile', /* 提交的图片表单名称 */
+ 'scrawlPathFormat' => '/uploads/image/{yyyy}/{mm}/{dd}/', /* 上传保存路径,可以自定义保存路径和文件名格式 */
+ 'scrawlMaxSize' => 2048000, /* 上传大小限制,单位B */
+ 'scrawlUrlPrefix' => '', /* 图片访问路径前缀 */
+ 'scrawlInsertAlign' => 'none',
+
+ /* 截图工具上传 */
+ 'snapscreenActionName' => 'upload-image', /* 执行上传截图的action名称 */
+ 'snapscreenPathFormat' => '/uploads/image/{yyyy}/{mm}/{dd}/', /* 上传保存路径,可以自定义保存路径和文件名格式 */
+ 'snapscreenUrlPrefix' => '', /* 图片访问路径前缀 */
+ 'snapscreenInsertAlign' => 'none', /* 插入的图片浮动方式 */
+
+ /* 抓取远程图片配置 */
+ 'catcherLocalDomain' => ['127.0.0.1', 'localhost', 'img.baidu.com'],
+ 'catcherActionName' => 'catch-image', /* 执行抓取远程图片的action名称 */
+ 'catcherFieldName' => 'source', /* 提交的图片列表表单名称 */
+ 'catcherPathFormat' => '/uploads/image/{yyyy}/{mm}/{dd}/', /* 上传保存路径,可以自定义保存路径和文件名格式 */
+ 'catcherUrlPrefix' => '', /* 图片访问路径前缀 */
+ 'catcherMaxSize' => 2048000, /* 上传大小限制,单位B */
+ 'catcherAllowFiles' => ['.png', '.jpg', '.jpeg', '.gif', '.bmp'], /* 抓取图片格式显示 */
+
+ /* 上传视频配置 */
+ 'videoActionName' => 'upload-video', /* 执行上传视频的action名称 */
+ 'videoFieldName' => 'upfile', /* 提交的视频表单名称 */
+ 'videoPathFormat' => '/uploads/video/{yyyy}/{mm}/{dd}/', /* 上传保存路径,可以自定义保存路径和文件名格式 */
+ 'videoUrlPrefix' => '', /* 视频访问路径前缀 */
+ 'videoMaxSize' => 102400000, /* 上传大小限制,单位B,默认100MB */
+ 'videoAllowFiles' => [
+ '.flv', '.swf', '.mkv', '.avi', '.rm', '.rmvb', '.mpeg', '.mpg',
+ '.ogg', '.ogv', '.mov', '.wmv', '.mp4', '.webm', '.mp3', '.wav', '.mid', ], /* 上传视频格式显示 */
+
+ /* 上传文件配置 */
+ 'fileActionName' => 'upload-file', /* controller里,执行上传视频的action名称 */
+ 'fileFieldName' => 'upfile', /* 提交的文件表单名称 */
+ 'filePathFormat' => '/uploads/file/{yyyy}/{mm}/{dd}/', /* 上传保存路径,可以自定义保存路径和文件名格式 */
+ 'fileUrlPrefix' => '', /* 文件访问路径前缀 */
+ 'fileMaxSize' => 51200000, /* 上传大小限制,单位B,默认50MB */
+ 'fileAllowFiles' => [
+ '.png', '.jpg', '.jpeg', '.gif', '.bmp',
+ '.flv', '.swf', '.mkv', '.avi', '.rm', '.rmvb', '.mpeg', '.mpg',
+ '.ogg', '.ogv', '.mov', '.wmv', '.mp4', '.webm', '.mp3', '.wav', '.mid',
+ '.rar', '.zip', '.tar', '.gz', '.7z', '.bz2', '.cab', '.iso',
+ '.doc', '.docx', '.xls', '.xlsx', '.ppt', '.pptx', '.pdf', '.txt', '.md', '.xml',
+ ], /* 上传文件格式显示 */
+
+ /* 列出指定目录下的图片 */
+ 'imageManagerActionName' => 'list-image', /* 执行图片管理的action名称 */
+ 'imageManagerListPath' => '/uploads/image/', /* 指定要列出图片的目录 */
+ 'imageManagerListSize' => 20, /* 每次列出文件数量 */
+ 'imageManagerUrlPrefix' => '', /* 图片访问路径前缀 */
+ 'imageManagerInsertAlign' => 'none', /* 插入的图片浮动方式 */
+ 'imageManagerAllowFiles' => ['.png', '.jpg', '.jpeg', '.gif', '.bmp'], /* 列出的文件类型 */
+
+ /* 列出指定目录下的文件 */
+ 'fileManagerActionName' => 'list-file', /* 执行文件管理的action名称 */
+ 'fileManagerListPath' => '/uploads/file/', /* 指定要列出文件的目录 */
+ 'fileManagerUrlPrefix' => '', /* 文件访问路径前缀 */
+ 'fileManagerListSize' => 20, /* 每次列出文件数量 */
+ 'fileManagerAllowFiles' => [
+ '.png', '.jpg', '.jpeg', '.gif', '.bmp',
+ '.flv', '.swf', '.mkv', '.avi', '.rm', '.rmvb', '.mpeg', '.mpg',
+ '.ogg', '.ogv', '.mov', '.wmv', '.mp4', '.webm', '.mp3', '.wav', '.mid',
+ '.rar', '.zip', '.tar', '.gz', '.7z', '.bz2', '.cab', '.iso',
+ '.doc', '.docx', '.xls', '.xlsx', '.ppt', '.pptx', '.pdf', '.txt', '.md', '.xml',
+ ], /* 列出的文件类型 */
+ ],
+];
diff --git a/config/view.php b/config/view.php
new file mode 100644
index 0000000..22b8a18
--- /dev/null
+++ b/config/view.php
@@ -0,0 +1,36 @@
+ [
+ resource_path('views'),
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Compiled View Path
+ |--------------------------------------------------------------------------
+ |
+ | This option determines where all the compiled Blade templates will be
+ | stored for your application. Typically, this is within the storage
+ | directory. However, as usual, you are free to change this value.
+ |
+ */
+
+ 'compiled' => env(
+ 'VIEW_COMPILED_PATH',
+ realpath(storage_path('framework/views'))
+ ),
+
+];
diff --git a/database/.gitignore b/database/.gitignore
new file mode 100644
index 0000000..97fc976
--- /dev/null
+++ b/database/.gitignore
@@ -0,0 +1,2 @@
+*.sqlite
+*.sqlite-journal
diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php
new file mode 100644
index 0000000..741edea
--- /dev/null
+++ b/database/factories/UserFactory.php
@@ -0,0 +1,28 @@
+define(User::class, function (Faker $faker) {
+ return [
+ 'name' => $faker->name,
+ 'email' => $faker->unique()->safeEmail,
+ 'email_verified_at' => now(),
+ 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
+ 'remember_token' => Str::random(10),
+ ];
+});
diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php
new file mode 100644
index 0000000..a91e1d3
--- /dev/null
+++ b/database/migrations/2014_10_12_000000_create_users_table.php
@@ -0,0 +1,36 @@
+bigIncrements('id');
+ $table->string('name');
+ $table->string('email')->unique();
+ $table->timestamp('email_verified_at')->nullable();
+ $table->string('password');
+ $table->rememberToken();
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('users');
+ }
+}
diff --git a/database/migrations/2014_10_12_100000_create_password_resets_table.php b/database/migrations/2014_10_12_100000_create_password_resets_table.php
new file mode 100644
index 0000000..0ee0a36
--- /dev/null
+++ b/database/migrations/2014_10_12_100000_create_password_resets_table.php
@@ -0,0 +1,32 @@
+string('email')->index();
+ $table->string('token');
+ $table->timestamp('created_at')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('password_resets');
+ }
+}
diff --git a/database/migrations/2016_01_04_173148_create_admin_tables.php b/database/migrations/2016_01_04_173148_create_admin_tables.php
new file mode 100644
index 0000000..450847e
--- /dev/null
+++ b/database/migrations/2016_01_04_173148_create_admin_tables.php
@@ -0,0 +1,119 @@
+increments('id');
+ $table->string('username', 190)->unique();
+ $table->string('password', 60);
+ $table->string('name');
+ $table->string('avatar')->nullable();
+ $table->string('remember_token', 100)->nullable();
+ $table->timestamps();
+ });
+
+ Schema::create(config('admin.database.roles_table'), function (Blueprint $table) {
+ $table->increments('id');
+ $table->string('name', 50)->unique();
+ $table->string('slug', 50)->unique();
+ $table->timestamps();
+ });
+
+ Schema::create(config('admin.database.permissions_table'), function (Blueprint $table) {
+ $table->increments('id');
+ $table->string('name', 50)->unique();
+ $table->string('slug', 50)->unique();
+ $table->string('http_method')->nullable();
+ $table->text('http_path')->nullable();
+ $table->timestamps();
+ });
+
+ Schema::create(config('admin.database.menu_table'), function (Blueprint $table) {
+ $table->increments('id');
+ $table->integer('parent_id')->default(0);
+ $table->integer('order')->default(0);
+ $table->string('title', 50);
+ $table->string('icon', 50);
+ $table->string('uri')->nullable();
+ $table->string('permission')->nullable();
+
+ $table->timestamps();
+ });
+
+ Schema::create(config('admin.database.role_users_table'), function (Blueprint $table) {
+ $table->integer('role_id');
+ $table->integer('user_id');
+ $table->index(['role_id', 'user_id']);
+ $table->timestamps();
+ });
+
+ Schema::create(config('admin.database.role_permissions_table'), function (Blueprint $table) {
+ $table->integer('role_id');
+ $table->integer('permission_id');
+ $table->index(['role_id', 'permission_id']);
+ $table->timestamps();
+ });
+
+ Schema::create(config('admin.database.user_permissions_table'), function (Blueprint $table) {
+ $table->integer('user_id');
+ $table->integer('permission_id');
+ $table->index(['user_id', 'permission_id']);
+ $table->timestamps();
+ });
+
+ Schema::create(config('admin.database.role_menu_table'), function (Blueprint $table) {
+ $table->integer('role_id');
+ $table->integer('menu_id');
+ $table->index(['role_id', 'menu_id']);
+ $table->timestamps();
+ });
+
+ Schema::create(config('admin.database.operation_log_table'), function (Blueprint $table) {
+ $table->increments('id');
+ $table->integer('user_id');
+ $table->string('path');
+ $table->string('method', 10);
+ $table->string('ip');
+ $table->text('input');
+ $table->index('user_id');
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists(config('admin.database.users_table'));
+ Schema::dropIfExists(config('admin.database.roles_table'));
+ Schema::dropIfExists(config('admin.database.permissions_table'));
+ Schema::dropIfExists(config('admin.database.menu_table'));
+ Schema::dropIfExists(config('admin.database.user_permissions_table'));
+ Schema::dropIfExists(config('admin.database.role_users_table'));
+ Schema::dropIfExists(config('admin.database.role_permissions_table'));
+ Schema::dropIfExists(config('admin.database.role_menu_table'));
+ Schema::dropIfExists(config('admin.database.operation_log_table'));
+ }
+}
diff --git a/database/migrations/2019_08_19_000000_create_failed_jobs_table.php b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php
new file mode 100644
index 0000000..389bdf7
--- /dev/null
+++ b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php
@@ -0,0 +1,35 @@
+bigIncrements('id');
+ $table->text('connection');
+ $table->text('queue');
+ $table->longText('payload');
+ $table->longText('exception');
+ $table->timestamp('failed_at')->useCurrent();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('failed_jobs');
+ }
+}
diff --git a/database/migrations/2020_05_28_153525_create_articles_table.php b/database/migrations/2020_05_28_153525_create_articles_table.php
new file mode 100644
index 0000000..fe889a9
--- /dev/null
+++ b/database/migrations/2020_05_28_153525_create_articles_table.php
@@ -0,0 +1,31 @@
+bigIncrements('id');
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('articles');
+ }
+}
diff --git a/database/migrations/2020_05_28_153536_create_categories_table.php b/database/migrations/2020_05_28_153536_create_categories_table.php
new file mode 100644
index 0000000..3820dbd
--- /dev/null
+++ b/database/migrations/2020_05_28_153536_create_categories_table.php
@@ -0,0 +1,31 @@
+bigIncrements('id');
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('categories');
+ }
+}
diff --git a/database/migrations/2020_05_28_163818_create_links_table.php b/database/migrations/2020_05_28_163818_create_links_table.php
new file mode 100644
index 0000000..ee8de29
--- /dev/null
+++ b/database/migrations/2020_05_28_163818_create_links_table.php
@@ -0,0 +1,31 @@
+bigIncrements('id');
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('links');
+ }
+}
diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php
new file mode 100644
index 0000000..91cb6d1
--- /dev/null
+++ b/database/seeds/DatabaseSeeder.php
@@ -0,0 +1,16 @@
+call(UsersTableSeeder::class);
+ }
+}
diff --git a/public/.htaccess b/public/.htaccess
new file mode 100644
index 0000000..b75525b
--- /dev/null
+++ b/public/.htaccess
@@ -0,0 +1,21 @@
+
+
+ Options -MultiViews -Indexes
+
+
+ RewriteEngine On
+
+ # Handle Authorization Header
+ RewriteCond %{HTTP:Authorization} .
+ RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
+
+ # Redirect Trailing Slashes If Not A Folder...
+ RewriteCond %{REQUEST_FILENAME} !-d
+ RewriteCond %{REQUEST_URI} (.+)/$
+ RewriteRule ^ %1 [L,R=301]
+
+ # Handle Front Controller...
+ RewriteCond %{REQUEST_FILENAME} !-d
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteRule ^ index.php [L]
+
diff --git a/public/assets/index/css/base.css b/public/assets/index/css/base.css
new file mode 100644
index 0000000..1308b63
--- /dev/null
+++ b/public/assets/index/css/base.css
@@ -0,0 +1,567 @@
+@charset "utf-8";
+
+/******基础样式开始******/
+body {
+ font-family: Microsoft Yahei, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #333;
+ background: #fff;
+ text-align: justify;
+ text-justify: inter-ideograph;
+ background-image: url(about:blank);
+ background-attachment: fixed;
+ height: 100%;
+}
+
+table,
+td {
+ font-family: Microsoft Yahei, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ line-height: 24px;
+ color: #2e2e2e;
+}
+
+html,
+body,
+div,
+span,
+p,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+em,
+img,
+strong,
+blockquote,
+sub,
+sup,
+tt,
+i,
+b,
+dd,
+dl,
+dt,
+form,
+label,
+table,
+caption,
+tbody,
+tfoot,
+thead,
+tr,
+th,
+td,
+ul,
+li,
+p,
+a,
+ol {
+ margin: 0;
+ padding: 0;
+}
+
+s,
+i,
+em {
+ font-style: normal;
+ text-decoration: none;
+}
+
+ul,
+ol,
+li {
+ list-style-type: none;
+ list-style: none;
+}
+
+button,
+input,
+select,
+textarea {
+ vertical-align: middle;
+ font-family: Microsoft Yahei;
+ margin: 0;
+ padding: 0;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-size: 100%;
+}
+
+address,
+cite,
+dfn,
+em,
+var {
+ font-style: normal;
+}
+
+code,
+kbd,
+pre,
+samp {
+ font-family: courier new, courier, monospace;
+}
+
+sup {
+ vertical-align: text-top;
+}
+
+sub {
+ vertical-align: text-bottom;
+}
+
+legend {
+ color: #000;
+}
+
+fieldset,
+img {
+ border: 0;
+}
+
+button,
+input,
+select,
+textarea {
+ font-size: 100%;
+}
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+a {
+ color: #6e6e6e;
+ text-decoration: none;
+}
+
+.white,
+.white a {
+ color: #fff;
+ text-decoration: none;
+}
+
+.white,
+a:hover {
+ color: #027eba;
+}
+
+.clearfix {
+ clear: both;
+ height: 1px;
+ margin-top: -1px;
+ overflow: hidden;
+}
+
+.fw {
+ font-family: Microsoft Yahei, Arial, Helvetica, sans-serif;
+}
+
+.fl {
+ float: left;
+}
+
+.fr {
+ float: right;
+}
+
+.fb {
+ font-weight: bold;
+}
+
+.disb {
+ display: block;
+}
+
+.disn {
+ display: none;
+}
+
+@font-face {
+ font-family: 'impact';
+ src: url(impact.ttf);
+ src: url('impact.eot');
+ /* IE9 Compat Modes */
+ src: url('impact.eot?#iefix') format('embedded-opentype'),
+ /* IE6-IE8 */
+ url('impact.woff') format('woff'),
+ /* Modern Browsers */
+ url('impact.ttf') format('truetype'),
+ /* Safari, Android, iOS */
+ url('impact.svg#impact') format('svg');
+ /* Legacy iOS */
+}
+
+
+.area-dialog-ct {
+ width: 760px;
+ padding: 10px;
+ background: #fff;
+}
+
+.area-dialog-bar {
+ height: 40px;
+ background: #003a52;
+}
+
+.area-dialog-bar span,
+.area-dialog-bar a {
+ line-height: 40px;
+ color: #fff;
+ font-size: 14px;
+ padding: 0 15px;
+}
+
+.area-dialog-bar a#_a_c_close {
+ float: right;
+}
+
+.area-dialog-ct .area-dialog-content {
+ margin0;
+}
+
+.area-dialog-ct .area-dialog-content::after {
+ clear: both;
+ display: block;
+ content: "";
+}
+
+.area-dialog-content li {
+ float: left;
+ padding: 10px;
+ position: relative;
+}
+
+.area-dialog-content .area-m-o {
+ width: 150px;
+ margin: 0;
+ padding: 0 10px;
+ background: #fff;
+}
+
+.area-dialog-content li .a-i-disable {
+ background: #d8d8d8;
+}
+
+.area-dialog-content .area-m-o .a-check-num {
+ color: #d00;
+}
+
+.area-dialog-content input {
+ margin: -3px 5px 0 0;
+}
+
+.area-dialog-content .area-m-o lable {
+ line-height: 35px;
+ font-size: 12px;
+ color: #333;
+}
+
+.area-dialog-content li .a-city-ct {
+ display: none;
+}
+
+.area-dialog-content li.area-item-mover {
+ background: #f7e76a;
+}
+
+.area-dialog-content li.area-item-mover .a-city-ct {
+ display: block;
+}
+
+.area-dialog-bottom {
+ margin-top: 10px;
+ text-align: center;
+}
+
+.area-dialog-bottom a {
+ padding: 5px 15px;
+ color: #fff;
+ background: #007ba9;
+ font-size: 14px;
+ border-radius: 3px;
+}
+
+.area-dialog-bottom a:hover {
+ background: #003a52;
+ transition: 0.3s ease;
+}
+
+.area-dialog-content .a-city-ct {
+ position: absolute;
+ left: 0;
+ top: 45px;
+ background: #f7e76a;
+ padding: 10px;
+ z-index: 100;
+ width: 480px;
+}
+
+.area-dialog-content .a-city-ct:after {
+ content: "";
+ display: block;
+ clear: both;
+}
+
+.area-dialog-content .a-city-ct p {
+ float: left;
+ width: 100px;
+ padding: 5px 10px;
+}
+
+
+.color-1 {
+ background-color: #249edc;
+}
+
+.color-2 {
+ background-color: #17a668;
+}
+
+.color-3 {
+ background-color: #741d88;
+}
+
+.color-4 {
+ background-color: #da9627;
+}
+
+.color-5 {
+ background-color: #ff9933;
+}
+
+.color-6 {
+ background-color: #6666ff;
+}
+
+.color-7 {
+ background-color: #ff99ff;
+}
+
+.color-8 {
+ background-color: #66cc66;
+}
+
+.color-9 {
+ background-color: #666;
+}
+
+.color-10 {
+ background-color: #ff7800;
+}
+
+.color-11 {
+ background-color: #ccc;
+}
+
+.color-12 {
+ background-color: #ff3333;
+}
+
+.color-white {
+ background-color: #fff;
+}
+
+.bgcolor-gray {
+ background: #f5f5f5;
+}
+
+.ipt-txt {
+ outline: none;
+ border: 1px solid #ccc;
+}
+
+.ipt-txt:focus,
+.ipt-sec:focus {
+ border: 1px solid #0078b5;
+ box-shadow: #ccc 2px 4px 2px;
+}
+
+.small-ipt {
+ line-height: 16px;
+ width: 150px;
+ height: 16px;
+ padding: 4px;
+}
+
+.ipt-sec {
+ padding: 5px;
+}
+
+.ipt-radio,
+.ipt-check {
+ vertical-align: middle;
+ margin: 0 5px 4px 0;
+}
+
+.btnBox {
+ width: 100%;
+ text-align: center;
+}
+
+.Submit {
+ width: 200px;
+ height: 42px;
+ line-height: 42px;
+ font-size: 16px;
+ color: #fff;
+ border: 0;
+ outline: none;
+ margin: 0 auto;
+ cursor: pointer;
+ transition: background-color 0.3s ease;
+ -moz-transition: background-color 0.3s ease;
+ -webkit-transition: background-color 0.3s ease;
+}
+
+.Submit:hover {
+ background-color: #F60;
+}
+
+/* 弹性盒子布局 */
+
+.flexrow {
+ display: -webkit-box;
+ /* Chrome 4+, Safari 3.1, iOS Safari 3.2+ */
+ display: -moz-box;
+ /* Firefox 17- */
+ display: -webkit-flex;
+ /* Chrome 21+, Safari 6.1+, iOS Safari 7+, Opera 15/16 */
+ display: -moz-flex;
+ /* Firefox 18+ */
+ display: -ms-flexbox;
+ /* IE 10 */
+ display: flex;
+ /* Chrome 29+, Firefox 22+, IE 11+, Opera 12.1/17/18, Android 4.4+ */
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+ box-sizing: border-box;
+}
+
+.flexcolumn {
+ display: -webkit-box;
+ /* Chrome 4+, Safari 3.1, iOS Safari 3.2+ */
+ display: -moz-box;
+ /* Firefox 17- */
+ display: -webkit-flex;
+ /* Chrome 21+, Safari 6.1+, iOS Safari 7+, Opera 15/16 */
+ display: -moz-flex;
+ /* Firefox 18+ */
+ display: -ms-flexbox;
+ /* IE 10 */
+ display: flex;
+ /* Chrome 29+, Firefox 22+, IE 11+, Opera 12.1/17/18, Android 4.4+ */
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ box-sizing: border-box;
+}
+
+.jc_start {
+ justify-content: flex-start;
+}
+
+.jc_end {
+ justify-content: flex-end;
+}
+
+.jc_sb {
+ justify-content: space-between;
+}
+
+.jc_sr {
+ justify-content: space-around;
+}
+
+/* align-items: stretch|center|flex-start|flex-end|baseline|initial|inherit; */
+
+.ai_start {
+ align-items: flex-start;
+}
+
+.ai_end {
+ align-items: flex-end;
+}
+
+.flex1 {
+ flex: 1;
+}
+
+.flex2 {
+ flex: 2;
+}
+
+.flex3 {
+ flex: 3;
+}
+
+.flex4 {
+ flex: 4;
+}
+
+.flex5 {
+ flex: 5;
+}
+
+/* wrap 超出一行隐藏... 超出两行隐藏...*/
+
+
+.overflow1 {
+ text-overflow: -o-ellipsis-lastline;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ display: -webkit-box;
+ -webkit-line-clamp: 1;
+ -webkit-box-orient: vertical;
+}
+
+.overflow2 {
+ text-overflow: -o-ellipsis-lastline;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ display: -webkit-box;
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical;
+}
+
+.overflow3 {
+ text-overflow: -o-ellipsis-lastline;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ display: -webkit-box;
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical;
+}
+
+.overflow4 {
+ text-overflow: -o-ellipsis-lastline;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ display: -webkit-box;
+ -webkit-line-clamp: 4;
+ -webkit-box-orient: vertical;
+}
+
+.overflow7 {
+ text-overflow: -o-ellipsis-lastline;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ display: -webkit-box;
+ -webkit-line-clamp: 7;
+ -webkit-box-orient: vertical;
+}
+
+.flexwrap{
+ flex-wrap: wrap;
+}
\ No newline at end of file
diff --git a/public/assets/index/css/jquery.slideBox.css b/public/assets/index/css/jquery.slideBox.css
new file mode 100644
index 0000000..bcf077d
--- /dev/null
+++ b/public/assets/index/css/jquery.slideBox.css
@@ -0,0 +1,23 @@
+@charset "utf-8";
+html, body { font-family:"微软雅黑"}
+/*
+ * jQuery图片轮播(焦点图)插件
+ * ADD.JENA.201206291027
+ * EDIT.JENA.201206300904
+ * Author: jena
+ * Demo: http://ishere.cn/demo/jquery.slidebox/
+ */
+div.slideBox{ position:relative; width:670px; height:300px; overflow:hidden;}
+div.slideBox ul.items{ position:absolute; float:left; background:none; list-style:none; padding:0px; margin:0px;}
+div.slideBox ul.items li{ float:left; background:none; list-style:none; padding:0px; margin:0px;}
+div.slideBox ul.items li a{ float:left; line-height:normal !important; padding:0px !important; border:none/*For IE.ADD.JENA.201206300844*/;}
+div.slideBox ul.items li a img{ margin:0px !important; padding:0px !important; display:block; border:none/*For IE.ADD.JENA.201206300844*/;}
+div.slideBox div.tips{ position:absolute; bottom:0px; width:100%; height:32px; background-color:#000; overflow:hidden;}
+div.slideBox div.tips div.title{ position:absolute; left:0px; top:0px; height:100%;}
+div.slideBox div.tips div.title a{ color:#FFF; font-size:12px; line-height:32px; margin-left:10px; text-decoration:none;}
+div.slideBox div.tips div.title a:hover{ text-decoration:underline !important;}
+div.slideBox div.tips div.nums{ position:absolute; right:0px; top:0px; height:100%;}
+div.slideBox div.tips div.nums a{ display:inline-block; >float:left/*For IE.ADD.JENA.201206300844*/; width:10px; height:10px; background-color:#FFF; text-indent:-99999px; margin:12px 5px 0px 0px;}
+div.slideBox div.tips div.nums a.active{ background-color:#093;}
+
+
diff --git a/public/assets/index/css/main.css b/public/assets/index/css/main.css
new file mode 100644
index 0000000..cfeeec5
--- /dev/null
+++ b/public/assets/index/css/main.css
@@ -0,0 +1,1425 @@
+@charset "utf-8";
+
+body {
+ min-width: 1200px;
+ background: #d6e8f4;
+}
+
+.header {
+ width: 100%;
+ height: 200px;
+ background: url(../images/topbj.png) top center no-repeat;
+}
+
+.container {
+ width: 1200px;
+ margin: 0 auto;
+ position: relative;
+}
+
+.container_col {
+ background: #fff;
+ padding: 10px;
+ clear: both;
+}
+
+#weather {
+ position: absolute;
+ left: 0;
+ top: 10px;
+ font-size: 12px;
+ color: #fff;
+ line-height: 24px;
+}
+
+.toptxt {
+ position: absolute;
+ right: 0;
+ top: 10px;
+ font-size: 12px;
+ color: #fff;
+ line-height: 24px;
+}
+
+.toptxt a {
+ font-size: 12px;
+ color: #fff;
+ line-height: 24px;
+ padding: 0 10px;
+}
+
+.toptxt a:hover {
+ color: #FF0;
+}
+
+.logo {
+ width: 400px;
+ height: 112px;
+ position: absolute;
+ left: 15px;
+ top: 60px;
+}
+
+.search {
+ width: 274px;
+ height: 30px;
+ padding: 6px 96px 6px 10px;
+ background: #fff;
+ position: absolute;
+ right: 15px;
+ top: 150px;
+ border-radius: 4px;
+ overflow: hidden;
+}
+
+.ipt-sea {
+ height: 30px;
+ width: 100%;
+ border: 0;
+ outline: none;
+ line-height: 30px;
+ color: #333;
+ font-size: 14px;
+}
+
+.search a {
+ display: block;
+ width: 90px;
+ height: 42px;
+ background: rgb(63, 155, 11);
+ color: #fff;
+ line-height: 42px;
+ text-align: center;
+ font-size: 14px;
+ transition: all .3s ease;
+ position: absolute;
+ right: 0;
+ top: 0;
+}
+
+.search a:hover {
+ background: rgb(63, 155, 11);
+}
+
+.nav {
+ width: 1220px;
+ margin: 0 auto;
+ height: 60px;
+ background: rgb(63, 155, 11);
+}
+
+.nav li {
+ float: left;
+ height: 60px;
+ position: relative;
+}
+
+.nav li a {
+ display: block;
+ text-align: center;
+ line-height: 60px;
+ font-size: 16px;
+ color: #fff;
+ transition: all .3s ease;
+ padding: 0 26px;
+}
+
+.nav li>a:hover,
+.nav li.active>a {
+ background: #007900;
+ color: #FF0;
+}
+
+#navul li ul {
+ display: none;
+ position: absolute;
+ z-index: 999;
+ left: 0;
+ top: 60px;
+}
+
+#navul li.navmoon {
+ background: rgb(63, 155, 11);
+}
+
+#navul li.navmoon a,
+#navul li.active a {
+ color: #ffba64;
+}
+
+#navul li.navhome a:hover {
+ color: #ff9d24;
+}
+
+#navul li.navmoon ul {
+ display: block;
+}
+
+#navul li.navmoon ul li {
+ background: rgb(63, 155, 11);
+ height: 40px;
+ line-height: 40px;
+ border-top: 1px solid rgb(63, 155, 11);
+}
+
+#navul li.navmoon ul a {
+ display: block;
+ height: 40px;
+ line-height: 40px;
+ font-size: 12px;
+ color: #fff;
+ width: 64px;
+}
+
+#navul li.navmoon ul a:hover {
+ color: #ff9d24;
+}
+
+.news-con .focus {
+ width: 100%;
+ overflow: hidden;
+ margin: 20px 0px 5px 0px;
+ padding: 0 10px;
+ box-sizing: border-box;
+}
+
+.news-con .focus img {
+ width: 130px;
+ height: 90px;
+ float: left;
+}
+
+.news-con .focus p {
+ width: calc(100% - 150px);
+ height: 70px;
+ line-height: 23.33px;
+ float: left;
+ margin-top: 10px;
+ margin-left: 10px;
+ font-size: 15px;
+ color: #084466;
+ font-weight: 600;
+}
+
+
+
+.news-notice {
+ margin: 20px 0;
+}
+
+.indnews {
+ width: 560px;
+ height: 362px;
+ float: left;
+}
+
+.news-pic {
+ width: 560px;
+ height: 362px;
+}
+
+.news-pic,
+.news-pic img {
+ width: 560px;
+ height: 362px;
+ overflow: hidden;
+}
+
+.news-notice .news-txt {
+ width: 620px;
+ height: 362px;
+ float: right;
+}
+
+.news-txt {
+ border: 1px solid #efefef;
+}
+
+.news-title {
+ height: 38px;
+ background: #fafafa;
+ border-bottom: 1px solid #efefef;
+ line-height: 38px;
+ position: relative;
+}
+
+.news-title .name {
+ position: absolute;
+ left: -1px;
+ top: -1px;
+ height: 39px;
+ background: rgb(63, 155, 11);
+ color: #fff;
+ text-align: center;
+ line-height: 39px;
+ font-size: 15px;
+ padding: 0 15px;
+ font-weight: bold;
+}
+
+.news-name.tab-nav {
+ position: absolute;
+ left: -1px;
+ top: -1px;
+ height: 39px;
+}
+
+.news-name.tab-nav a {
+ display: block;
+ float: left;
+ height: 39px;
+ line-height: 39px;
+ color: #333;
+ text-align: center;
+ line-height: 39px;
+ font-size: 15px;
+ padding: 0 15px;
+ margin: 0;
+ position: relative;
+}
+
+.news-name.tab-nav a.current {
+ background: rgb(63, 155, 11);
+ color: #fff;
+ font-weight: bold;
+}
+
+.news-name.tab-nav a i {
+ width: 9px;
+ height: 5px;
+ background: url(../images/sanjiao.png) no-repeat;
+ left: 10px;
+ bottom: -5px;
+ display: none;
+}
+
+.news-name.tab-nav a.current i {
+ display: block;
+}
+
+.news-title .name i {
+ width: 9px;
+ height: 5px;
+ background: url(../images/jtx.png) no-repeat;
+ left: 10px;
+ bottom: -5px;
+ display: block;
+}
+
+.news-title .more {
+ position: absolute;
+ right: 10px;
+ line-height: 38px;
+ top: 0;
+ font-size: 12px;
+ color: #999;
+ transition: all .3s ease;
+}
+
+.news-title .more:hover {
+ color: #084466;
+}
+
+.newslist {
+ display: block;
+ padding: 10px 12px;
+}
+
+.hotnews {
+ margin: 12px 12px 0 12px;
+}
+
+.hotnews h1 {
+ font-size: 16px;
+ color: #084466;
+ text-align: center;
+ margin: 0 10px;
+ height: 30px;
+ line-height: 30px;
+ word-break: break-all;
+ display: -webkit-box;
+ -webkit-line-clamp: 1;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+}
+
+.hotnews .hotcon {
+ margin-top: 12px;
+ word-break: break-all;
+ display: -webkit-box;
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+}
+
+.hotnews .hotcon a {
+ color: #999;
+ line-height: 24px;
+ font-size: 14px;
+}
+
+.hotnews .hotcon a:hover {
+ color: #0594c9;
+}
+
+.newslist li {
+ border-bottom: 1px dotted #dedede;
+ position: relative;
+ padding: 0 80px 0 14px;
+ background: url(../images/jiantou.png) 2px 15px no-repeat;
+}
+
+.newslist li:last-child {
+ border: none;
+}
+
+.newslist li a {
+ display: block;
+ height: 36px;
+ width: 100%;
+ line-height: 36px;
+ font-size: 14px;
+ color: #666;
+ word-break: break-all;
+ display: -webkit-box;
+ -webkit-line-clamp: 1;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+}
+
+.newslist li span {
+ position: absolute;
+ right: 0;
+ top: 0;
+ line-height: 36px;
+ color: #bbb;
+ text-align: center;
+}
+
+.newslist li:last-child {
+ border: 0;
+}
+
+.fwzn {
+ margin: 20px 0;
+ background: #d5e7f6;
+ height: 140px;
+ overflow: hidden;
+}
+
+.fwzn .tit {
+ width: 65px;
+ background: #084466;
+ text-align: center;
+ font-size: 16px;
+ color: #fff;
+ height: 115px;
+ padding-top: 25px;
+ float: left;
+}
+
+.fwzn .iconlist {
+ float: left;
+ width: 1135px;
+}
+
+.fwzn .iconlist a {
+ display: block;
+ width: 162px;
+ text-align: center;
+ float: left;
+ color: #333;
+ font-size: 14px;
+ line-height: 30px;
+}
+
+.fwzn .iconlist a .pic {
+ width: 82px;
+ height: 82px;
+ border-radius: 50%;
+ margin: 20px auto auto auto;
+ transition: all .3s ease;
+}
+
+.fwzn .iconlist a.icon1 .pic {
+ background: #eacd75;
+}
+
+.fwzn .iconlist a.icon2 .pic {
+ background: #93d884;
+}
+
+.fwzn .iconlist a.icon3 .pic {
+ background: #f57b7b;
+}
+
+.fwzn .iconlist a.icon4 .pic {
+ background: #b19de5;
+}
+
+.fwzn .iconlist a.icon5 .pic {
+ background: #60dcb5;
+}
+
+.fwzn .iconlist a.icon6 .pic {
+ background: #7ebfe2;
+}
+
+.fwzn .iconlist a.icon7 .pic {
+ background: #dec67c;
+}
+
+.fwzn .iconlist a.icon1:hover .pic {
+ background: #084466;
+}
+
+.fwzn .iconlist a.icon2:hover .pic {
+ background: #084466;
+}
+
+.fwzn .iconlist a.icon3:hover .pic {
+ background: #084466;
+}
+
+.fwzn .iconlist a.icon4:hover .pic {
+ background: #084466;
+}
+
+.fwzn .iconlist a.icon5:hover .pic {
+ background: #084466;
+}
+
+.fwzn .iconlist a.icon6:hover .pic {
+ background: #084466;
+}
+
+.fwzn .iconlist a.icon7:hover .pic {
+ background: #084466;
+}
+
+.col-box {
+ margin: 20px 0;
+}
+
+.news-txt.col-3 {
+ width: 388px;
+ height: 280px;
+ overflow: hidden;
+ float: left;
+ margin-right: 15px;
+}
+
+.news-txt.col-3.last {
+ margin-right: 0;
+}
+
+.smalllist {
+ margin-left: 100px;
+}
+
+.smalllist a {
+ line-height: 39px;
+ font-size: 12px;
+ color: #084466;
+ margin: 0 5px;
+}
+
+.smalllist a:hover {
+ color: #0594c9;
+}
+
+.col-2-l {}
+
+.col-2-l .tit {
+ height: 40px;
+ background: url(../images/bmicon.png) 0 9px no-repeat;
+ padding-left: 30px;
+ line-height: 40px;
+ color: #333;
+ font-size: 16px;
+}
+
+.col-2-l .list a {
+ float: left;
+ text-align: center;
+ color: #fff;
+ transition: all .3s ease;
+}
+
+.col-2-l .list .ct {
+ width: 162px;
+ height: 120px;
+ float: left;
+ margin-right: 11px;
+}
+
+.col-2-l .list .ct.last {
+ margin-right: 0;
+}
+
+.col-2-l .list a.color_bj .pic {
+ margin: 24px auto 20px auto;
+}
+
+.col-2-l .list a.color_bj {
+ width: 162px;
+ height: 120px;
+ background: #e75603;
+}
+
+.col-2-l .list a.color-1 {
+ background: #80ba4a;
+}
+
+.col-2-l .list a.color-2 {
+ background: #e75603;
+}
+
+.col-2-l .list a.color-3 {
+ background: #288fd2;
+}
+
+.col-2-l .list a.color-4 {
+ background: #f3b548;
+}
+
+.col-2-l .list a.color-5 {
+ background: #2876a2;
+}
+
+.col-2-l .list a.color-6 {
+ background: #7daf06;
+}
+
+.col-2-l .list a.color-7 {
+ background: #b363c7;
+}
+
+.col-2-l .list a.color-1:hover,
+.col-2-l .list a.color-2:hover,
+.col-2-l .list a.color-3:hover,
+.col-2-l .list a.color-4:hover,
+.col-2-l .list a.color-5:hover {
+ background: #084466;
+}
+
+.col-2-r {}
+
+.gsht {
+ float: left;
+ width: 400px;
+}
+
+.col-2-r .tit {
+ height: 40px;
+ background: url(../images/sficon.png) 0 9px no-repeat;
+ padding-left: 30px;
+ line-height: 40px;
+ color: #333;
+ font-size: 16px;
+ float: left;
+}
+
+.sfbox {
+ padding: 0 10px 15px 5px;
+ height: 213px;
+}
+
+.sftxt {
+ float: left;
+ width: 424px;
+ height: 215px;
+ position: relative;
+}
+
+.sftxt .info {
+ height: 198px;
+ line-height: 22px;
+ font-size: 12px;
+ color: #666;
+ word-break: break-all;
+ display: -webkit-box;
+ -webkit-line-clamp: 9;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+}
+
+.sftxt a {
+ display: block;
+ position: absolute;
+ left: 0;
+ bottom: -2px;
+ text-align: center;
+ color: #F30;
+}
+
+.sftxt a:hover {
+ color: #39F;
+}
+
+.jisuan {
+ float: right;
+ padding-left: 30px;
+ width: 270px;
+ border-left: 1px dashed #efefef;
+ height: 213px;
+}
+
+.jisuan h1 {
+ color: #084466;
+ line-height: 30px;
+ font-size: 15px;
+}
+
+.jsbox {
+ position: relative;
+ padding-left: 65px;
+ margin-top: 8px;
+}
+
+.jsbox span {
+ position: absolute;
+ left: 0;
+ top: 0;
+ line-height: 27px;
+ display: block;
+ width: 65px;
+ color: #7e7e7e;
+}
+
+.jsbox .jsq {
+ border: 1px solid #f0f0f0;
+ height: 19px;
+ padding: 3px 3px 3px 10px;
+ border-radius: 2px;
+}
+
+.jsbox .jsq .ipt-jsq {
+ border: 0;
+ height: 19px;
+ line-height: 19px;
+ width: 100%;
+ outline: none;
+}
+
+.jsbox .jsq a {
+ display: block;
+ width: 42px;
+ height: 19px;
+ text-align: center;
+ line-height: 19px;
+ background: #55aeec;
+ position: absolute;
+ top: 4px;
+ right: 4px;
+ color: #fff;
+ border-radius: 2px;
+}
+
+.jsjg {
+ background: #f0f0f0;
+ padding: 4px 8px;
+ margin-top: 10px;
+ position: relative;
+}
+
+.jsjg .tab {
+ line-height: 28px;
+ border-bottom: 1px solid #e2e2e2;
+ color: #6a6a6a;
+ height: 28px;
+ overflow: hidden;
+}
+
+.jsjg .tab span {
+ float: right;
+}
+
+.jsjg .tab.last {
+ border: 0;
+}
+
+.jsjg:before {
+ content: '';
+ width: 9px;
+ height: 5px;
+ background: url(../images/jtt.png) no-repeat;
+ display: block;
+ position: absolute;
+ right: 20px;
+ top: -5px;
+}
+
+.jisuan .smtxt {
+ color: #55aeec;
+ line-height: 40px;
+}
+
+.xxlinks {
+ height: 24px;
+ overflow: hidden;
+}
+
+.xxlinks a {
+ color: #F33;
+ line-height: 24px;
+}
+
+.xxlinks a:hover {
+ color: #55aeec;
+ text-decoration: underline;
+}
+
+.newslist.htlist {
+ padding: 0;
+ width: 360px;
+}
+
+
+.col-4 {
+ width: 289px;
+ float: left;
+ margin-right: 12px;
+ border: 1px solid #efefef;
+}
+
+.col-4.last {
+ margin-right: 0;
+}
+
+.news-title .name2 {
+ float: left;
+ line-height: 39px;
+ font-size: 15px;
+ font-weight: bold;
+ color: #084466;
+ padding-left: 20px;
+ background: url(../images/shu.png) 8px 11px no-repeat;
+}
+
+.linksbox {
+ margin: 20px 0;
+ border: 1px solid #efefef
+}
+
+.txtlisttit {
+ height: 32px;
+ background: #f0f0f0;
+ position: relative;
+ border-bottom: 2px solid rgb(63, 155, 11);
+}
+
+.txtlisttit.linktit span {
+ background: rgb(63, 155, 11);
+ color: #fff;
+ font-size: 15px;
+ font-weight: bold;
+ display: block;
+ width: 100px;
+ height: 33px;
+ line-height: 33px;
+ text-align: center;
+ position: absolute;
+ left: 0;
+ top: -1px;
+}
+
+.tab-nav {
+ position: absolute;
+ left: 100px;
+ top: 0;
+}
+
+.tab-nav a {
+ float: left;
+ line-height: 32px;
+ font-size: 14px;
+ margin: 0 20px;
+}
+
+.tab-nav a.current {
+ color: #FF080D;
+}
+
+.linkcon {
+ height: 54px;
+ margin: 10px;
+ overflow: auto;
+}
+
+.linkslist li {
+ float: left;
+ margin: 1px 20px;
+}
+
+.linkslist li a {
+ display: inline-block;
+ line-height: 25px;
+}
+
+.ft-menu {
+ height: 230px;
+ width: 100%;
+ background: linear-gradient( rgb(63, 155, 11) , #3e8a1a);
+ overflow: hidden;
+}
+
+.menu {
+ width: 1000px;
+ float: left;
+ margin-top: 40px;
+ padding-left: 20px;
+ box-sizing: border-box;
+}
+
+.menu dl {
+ float: left;
+ margin-right: 20px;
+ color: #fff;
+}
+
+.menu dl dt {
+ font-size: 15px;
+}
+
+.menu dl dd {
+ margin-top: 20px;
+}
+
+.menu dl dd.last {
+ margin-top: -3px;
+}
+
+.menu dl dd a {
+ display: block;
+ font-size: 12px;
+ line-height: 24px;
+ color: #1c5302;
+}
+
+.menu dl dd.last p {
+ font-size: 14px;
+ line-height: 26px;
+}
+
+.menu dl dd a:hover {
+ color: #FF0;
+}
+
+.menu dl.last {
+ margin-left: 100px;
+}
+
+.menu dl dd p {
+ color: #fff;
+ line-height: 24px;
+}
+
+.ewm {
+ float: right;
+ width: 125px;
+ text-align: center;
+ line-height: 30px;
+ margin-right: 70px;
+ margin-top: 80px;
+ color: #fff;
+}
+
+
+.cop {
+ font-size: 14px;
+ color: #fff;
+ height: 50px;
+ line-height: 50px;
+ background: #1c5302;
+ padding-left: 20px;
+}
+
+.mg-t-b {
+ margin: 20px auto;
+}
+
+.page-left {
+ width: 255px;
+ float: left;
+ background: #fff;
+}
+
+.page-right {
+ width: 900px;
+ float: right;
+ margin-right: 15px;
+}
+
+.pagelist .listbox {
+ border: 1px solid #efefef;
+}
+
+.pagelist h1 {
+ color: #fff;
+ height: 45px;
+ line-height: 45px;
+ font-size: 18px;
+ font-weight: 600;
+ background: rgb(63, 155, 11);
+ padding-left: 20px;
+ margin-bottom: 5px;
+}
+
+.pagelist li {
+ border-top: 1px solid #efefef;
+ border-bottom: 1px solid #efefef;
+ margin-top: -1px;
+}
+
+.pagelist li a {
+ height: 35px;
+ line-height: 35px;
+ display: block;
+ background: url(../images/sanjiao2.png) 220px 14px no-repeat #fafafa;
+ font-size: 12px;
+ color: #333;
+ padding-left: 20px;
+}
+
+.pagelist li a:hover,
+.pagelist li.active>a {
+ background: url(../images/sanjiao.png) 218px 14px no-repeat #fafafa;
+ font-weight: bold;
+}
+
+.pagelist li .dropdown {
+ display: none;
+}
+
+.pagelist li.active .dropdown {
+ display: block;
+}
+
+.pagelist li .dropdown li {
+ margin-left: 10px;
+ margin-right: 10px;
+}
+
+.pagelist li .dropdown li a {
+ background: #fff;
+ padding-left: 40px;
+}
+
+.pagelist li .dropdown li.active a {
+ color: rgb(63, 155, 11);
+}
+
+.pagelist li .dropdown li:last-child {
+ border-bottom: 0;
+}
+
+.hotarticl {
+ margin-top: 20px;
+}
+
+.hottit {
+ border-bottom: 1px solid #efefef;
+ line-height: 40px;
+ font-size: 16px;
+ color: rgb(63, 155, 11);
+ margin: 12px 12px 0 12px;
+}
+
+.pagelujing {
+ height: 40px;
+ border-bottom: 2px solid #efefef;
+ position: relative;
+}
+
+.pagelujing .name {
+ position: absolute;
+ left: 0;
+ top: 0;
+ height: 40px;
+ border-bottom: 2px solid rgb(63, 155, 11);
+ line-height: 40px;
+ font-size: 16px;
+ font-weight: bold;
+}
+
+.pagelujing span {
+ position: absolute;
+ right: 0;
+ line-height: 40px;
+ color: #888;
+}
+
+.news-txt.ny,
+.newslist.ny {
+ border: 0;
+ padding: 0;
+}
+
+.news-txt.ny {
+ min-height: 600px;
+}
+
+.newslist.ny li:last-child {
+ border-bottom: 1px dotted #efefef;
+}
+
+.foot {
+ margin-top: 10px;
+}
+
+.liuyantab {
+ border: 1px solid #f5f5f5;
+ background: #f8f8f8;
+ margin-top: 20px;
+ padding: 20px;
+}
+
+/*分页*/
+
+.biaoti {
+ font-size: 18px;
+ color: #333;
+ text-align: center;
+ margin: 0 20px;
+ font-weight: 600;
+ margin-top: 30px;
+}
+
+.sshuomign {
+ color: #888;
+ font-size: 12px;
+ line-height: 30px;
+ text-align: center;
+}
+
+.sshuomign span {
+ margin: 0 10px;
+}
+
+.article_txt {
+ font-size: 14px;
+ line-height: 28px;
+ color: #454545;
+ margin-top: 20px;
+ overflow: hidden;
+ padding: 10px;
+}
+
+.tcdPageCode {
+ padding: 15px 20px;
+ text-align: left;
+ color: #ccc;
+ text-align: center;
+ margin-top: 30px;
+}
+
+.tcdPageCode a {
+ display: inline-block;
+ color: #428bca;
+ display: inline-block;
+ height: 25px;
+ line-height: 25px;
+ padding: 0 10px;
+ border: 1px solid #ddd;
+ margin: 0 2px;
+ border-radius: 4px;
+ vertical-align: middle;
+}
+
+.article_txt {
+ font-size: 14px;
+ line-height: 28px;
+ color: #454545;
+ margin-top: 20px;
+ overflow: hidden
+}
+
+.tcdPageCode a:hover {
+ text-decoration: none;
+ border: 1px solid #428bca;
+}
+
+.tcdPageCode span.current {
+ display: inline-block;
+ height: 25px;
+ line-height: 25px;
+ padding: 0 10px;
+ margin: 0 2px;
+ color: #fff;
+ background-color: #428bca;
+ border: 1px solid #428bca;
+ border-radius: 4px;
+ vertical-align: middle;
+}
+
+.tcdPageCode span.disabled {
+ display: inline-block;
+ height: 25px;
+ line-height: 25px;
+ padding: 0 10px;
+ margin: 0 2px;
+ color: #bfbfbf;
+ background: #f2f2f2;
+ border: 1px solid #bfbfbf;
+ border-radius: 4px;
+ vertical-align: middle;
+}
+
+
+
+.words11 {
+ overflow: hidden;
+ padding-top: 20px;
+}
+
+.words11_zzgz_xfgz {
+ width: 388px;
+ overflow: hidden;
+ float: left;
+}
+
+.words11_zzgz_xfgz_title {
+ width: 100%;
+ height: 28px;
+ border-bottom: 1px solid #d8d8d8;
+}
+
+.words11_zzgz_xfgz_title font {
+ display: block;
+ float: left;
+ height: 28px;
+ line-height: 28px;
+ text-align: center;
+ color: #555;
+ font-weight: 600;
+ cursor: pointer;
+ font-size: 16px;
+}
+
+.words11_zzgz_xfgz_title span {
+ display: block;
+ float: right;
+ font-size: 12px;
+ margin-top: 5.5px;
+ margin-right: 5px;
+}
+
+.words11_zzgz_xfgz_content {
+ width: 100%;
+ height: 270px;
+ overflow: hidden;
+ margin: 10px 0px;
+}
+
+.words11_zzgz_xfgz_content .box {
+ width: 100%;
+ overflow: hidden;
+}
+
+.words11_zzgz_xfgz_content .box .focus {
+ width: 100%;
+ overflow: hidden;
+ margin: 10px 0px 20px 0px;
+}
+
+.words11_zzgz_xfgz_content .box .focus img {
+ width: 130px;
+ height: 90px;
+ float: left;
+}
+
+.words11_zzgz_xfgz_content .box .focus p {
+ width: 180px;
+ height: 70px;
+ line-height: 23.33px;
+ float: left;
+ margin-top: 10px;
+ margin-left: 10px;
+ color: #0e5298;
+ font-weight: 600;
+}
+
+.words11_zzgz_xfgz_content li {
+ width: 100%;
+ height: 32px;
+ line-height: 32px;
+ *height: 28px;
+ *line-height: 28px;
+}
+
+.words11_zzgz_xfgz_content li a {
+ float: left;
+ font-size: 14px;
+}
+
+.words11_zzgz_xfgz_content li a img {
+ margin-right: 6px;
+}
+
+.words11_zzgz_xfgz_content li span {
+ float: right;
+ color: #979797;
+}
+
+
+/* 科学研究与特色品牌建设 */
+.news_list_content {
+ width: 100%;
+ height: 300px;
+ overflow: hidden;
+ margin: 10px 0px;
+
+}
+
+.news_list_content .txt {
+ width: 150px;
+ height: 150px;
+ background-color: rgb(63, 155, 11);
+ color: #fff;
+ position: relative;
+ padding: 15px 15px 15px 15px;
+ font-size: 5px;
+}
+
+.news_list_content .sanjiao {
+ width: 0;
+ height: 0;
+ border-width: 10px;
+ border-style: solid;
+ border-color: transparent transparent rgb(63, 155, 11) transparent;
+ bottom: 0;
+ position: absolute;
+ left: 50%;
+ margin-left: -10px;
+}
+
+.news_list_content .sanjiao2 {
+ width: 0;
+ height: 0;
+ border-width: 10px;
+ border-style: solid;
+ border-color: rgb(63, 155, 11) transparent transparent transparent;
+ top: 0;
+ position: absolute;
+ left: 50%;
+ margin-left: -10px;
+}
+
+.news_list_content .img {
+ width: 150px;
+ height: 150px;
+ background-image: url(../images/bg.png);
+ background-repeat: no-repeat;
+ background-size: cover;
+ position: relative;
+}
+
+.news_list_content .getMore {
+ font-size: 5px;
+ opacity: 0.9;
+}
+
+.news_list_content .getMore img {
+ width: 12px;
+ height: 12px;
+ margin-left: 4px;
+}
+
+.news_list_content .txt :hover {
+ cursor: pointer;
+}
+
+.news_list_item:hover .getMore {
+ opacity: 1;
+}
+
+.news_list_content .txt .title {
+ font-size: 16px;
+ opacity: 0.9;
+ margin-bottom: 5px;
+}
+
+.news_list_item:hover .txt .title {
+ opacity: 1;
+}
+
+
+.news_list_item:hover .txt .overflow4 {
+ opacity: 1;
+}
+
+.words11_jcfc_content .box .focus img {
+ width: 100%;
+ height: 200px;
+}
+
+.words11_jcfc_content .box .focus {
+ overflow: hidden;
+ margin: 10px;
+}
+
+.words11_jcfc_content .box ul li {
+ display: inline-block;
+ *display: inline;
+ *margin: 2px 2px;
+ *zoom: 1;
+ margin: 0px 5px;
+}
+
+.words11_jcfc_content .box .midd {
+ width: 350px;
+ height: 50px;
+ float: left;
+ overflow: hidden;
+ position: relative;
+}
+
+.words11_jcfc_content .box ul {
+ height: 50px;
+ display: inline-block;
+ white-space: nowrap;
+ position: relative;
+}
+
+.words11_jcfc_content .box ul li img {
+ width: 61px;
+ height: 50px;
+ *width: 57px;
+ height: 46px;
+ border: 2px solid #fff;
+}
+
+.words11_jcfc_content .box .left {
+ width: 17px;
+ height: 50px;
+ float: left;
+ background: url(../images/words11_jcfc_content_left_but.png) no-repeat center;
+ cursor: pointer;
+}
+
+.words11_jcfc_content .box .right {
+ width: 17px;
+ height: 50px;
+ float: right;
+ background: url(../images/words11_jcfc_content_right_but.png) no-repeat center;
+ cursor: pointer;
+}
+
+
+.poster li {
+ margin-top: 10px
+}
+
+
+.poster li>img {
+ width: 100%;
+ height: 100%;
+ display: block;
+}
+
+.tem ul {
+ width: calc(50% - 10px);
+ float: left;
+ margin: 0 5px;
+}
diff --git a/public/assets/index/images/0.png b/public/assets/index/images/0.png
new file mode 100644
index 0000000000000000000000000000000000000000..25acf44dc875a7dc3fd99f893e85dc7bb401940f
GIT binary patch
literal 2583089
zcmeFYWmsI>wr|NFcZq+^uj4?(S~E3U}Aw?(XjH?g>%>TFWotx7&(6+H2VkIMV4!*Qps{nYwAXc}v9u%lEyy2n1c7$?
zwkFp0CRUdC-{b1)SvlBq5fXmS=+D>h^|G**lKL|%OS|9cJ#wUT*0rXirv=biSkV2G
z(#~GU@iFM{h5SdQouZ31kWLU-kVjgnD%U$3O=9e-_Bv
z!Pfi-GXs4(pgGXuF>kxa>d^mVU963*?5*sKt*rl)|4SkMJp6;lKh@x|vHY|24~YLH
zvNtjO54HY&kmh*c!F-tppT}yr7W4K3WS`!lk4t6$H
zR#rm*J&iuQp&pGM3lk%aE;GF@4GRDWU}ONYF&Ho~{1N(z{NF;$*qS_cR9*A`L5crC
z`fuSyP3-KgY+arZdgSz@`zZiz{x$WF1Lh__x{uCRPprGZlc11MqnEe=F(_
zum2px&dSi5X5^&%r{pK9NA?^7wm@Bbpy1>C@AC)~2R-W_^T^*k{}$shI}<~f
ze~R&RF8UthiRa&AJg&qIbnSKjOHrQs{w>ar`dHa2T3MO@WGef!PQQCU3G{u@#v%57
z*jF(zus7yrU|@cnO#hzxj{-@crO`hqeoy|pgx|#8P8MjZple}m4t#Rz|5&d4Ylr-8
zh4Ev7^Eg$q{cO_wpL_iCXz-){|Ea{BKaT!bHayOqwkG;wmX9;2we91n`muI;Trd8_
zAwxzpJ07{oVgJh~II_nm7Z^zqkJ%IsQHU?>g1*D?oFHAEjhv06f0v
z=)ZsdE`NIX?^3n@z4Ynfzf1p8Dp{J?bN_+oZ^=(o-**HYLXRKHj|-FUt5E<0!y}e|
zOa8m$$AF;lxN!z@voJF=GXE}llKgkY4}7YECXaiJ9~u4D`hR5f_e1|ERr^ay4`65g
zJ;NW;Cx?EQ{?^onV+&+P`r96wynV+&+P`r96wycK)ifGK&~Dh|L=oIEKIwpf
za3q0%pj*Yf=@kYcqqGteK`5){Z!lxH!R{+^?U^H
zqX-{U>w;HR8qLKwzx|G@pukox#iVKkG(VO3Ifz?*qrO
zAMPH`9ws%~yn_IUU4jT;im1deO8&gOl29lhkcvbg-cTR_MM!#DSvg)P82=#rzM!x9
zUcy1-qEK>#Il@Jh_Q65)cZi5ZAcQdSy%pYByw@&ub3q{c3ixt|Zu=?OFwtK{bT1K6
z!Tiay2=SE=5EUVjQ0ZX=dpe9NXTD-7`TLw|c?Izb>VQBozH{eKG6XR4`XON8!0Tjm
zD}X$IW(RWShX6I~hd?TMk@EHJ#cRQjQLC86`H4=kA{2g|!Rg7D&tdy{w%vE!b+
z{~+$nmHFk%rpWE}(Ac-H`^XiEDnTQ-V#t#nlWXx%J^RfO$K{3FTe6+-rA`Dhbtj?#}IGGFLiyTFuG6F3?!RzLUNNjqH>$9n0qg
zda;jK)q9WW8=sN!pc2~J&5yv|bUtuBh!nfq-&o1I!WHtEC^wu@Myja=mdFwYtvEe!
zQbbaT+^D@)SqP9g1oA=Wso$sXnzZ*Z_-DsevX9iZDFFK4l8iaH*<=L502t#emW2*(
z;?HG|3Cl;^M>H$I4A5gOCuT8b#w1VTKlp>roX%b~7r&cLU!#gT9=zy3J&s##3}Y_5
zBqMCKlhV&}&>ZJH;egM*D}F(}xTexbC)?OK(@r8aYi|PcV0L$VSm5ajaY0?ALH0KN
zI1HVOEfV%B7kqw&_Wl^a4v-IbYYZlWQ_E~pv!2h>a*kPLAP&4)1J>}4hY6wvH7?KsduumLA)swjpQQqrLMdt
zoh`q$D=C3aDB`iecgw#(%kq8ea7LwYL#rDPnx=K-Ei4GEw%vDo4oEzWS-`}d;9uO
zBAu$GN}Jo;zP0O^tNrU4`vxFibrieA|&704U{l2X&4RO;4BYyyH
zN|mzcHF*E5WnDckd1kieX8@s(c;AP-KA2%0y&<@wtv>d#q(U!~6h!`(H-^Gc$ZV1h
zXgh8}h(k3xYH0nozCk(@*m_}2iyg3PFt0W<3E-;WU+A+nT3$0|HU%)U9812K$sf)H
zs%2GOArlIhSmV|y2Oz990jihXbCjt{B&H?KOpy102YMGC>4pvb@jY)jDT|Y*1
z{PA@d2Serf^j5tk?PZd}&qz^KP_)rPi=r$55J(dA-oX@+`%(6#*k~aD
z0x=1Oq0ipMSj&wV2~p2?M$Qast6s$0JAO6W1xSrthd1`FXo${t=pvYEWEJT&(;$F?
zAr~MZID_pQ#5VWI4%P4)c!NQ468OoQA(2aPXe}K*^8%o{6X)RuP)6*0F)2{Y1))NN
znqO~3G+D*pJZRv#aOtk0ZqlyIPhc1`SxYn5oJS%c;EQuD2nQHMLOZ*svE%z)G;clZ
zHcQp@1-eqx^)+2J-w$gh2(OB)g%<)p~C%eSMX%#(0u{e|C0oi!+$HrcGA4
zBYV@lp(kX2`2xWo#gni=y&Mc_>55UR`)y_4Y6)+cy56jxK;9XCCT`5h+)l*2Hr}Co
zAtzbSJ$^wwjZath;SgLzg{244(YB;wBS(SZG1R1L><&9V9O>TWb1-i(6>ANx7r+NJ
z1VRub&|Pw$`He_>E*})S!t2j5Ib!fo?xJV$i>`ci7@^l~(hJ-6lWBA&Yla%RU_w1L
zf|`{of*NDbmjo2<`gS-cu_6L6x8`vMN$}*AsPphs5S)eCxHk(s@8BLTtR7(R&nq9$
zIe9w419fZ?w@DQbSP!eJ%a@79#)h_iwr%~3HtadpojJKRkzKwz-K%xpi*z(T!00Dm
zUI!!aV!o&nWG7>jY@kpO&S3*3Bbnz1S9I%YBqD3noysSSlRSq*xF2}^?Xa!I5>6cY<1A_ZhC2|m)FABL03CkZkC
zbr)kAk`=y|motR34+8-Mfgg5(wO0>x5{5S!08)@tl2KqI%o%z33UfhX+jYqKSkMOpTXeT5T8MW&nX|7a_i_xa(6Dj0tLPp#ii;;SoE(7
zufLJTz4*R
z8vz@GDolwm$n~esEgB4Y7Ssuoi#paEa};>#X!1Z!`OhpLY=gVUtdZt=pWN&97@#9@7mzg)PzJxtLt3qJv)RDU3)
zaNhdpnTsUO;0zIi^zn*a{3D97LW>nIOfa1VqGD)|B^`xW8y1SF!)bYUX2srSw~41k
zk+&gf|G2PC#b|N@uObY1QC@{6hVk19#SE(!QW}Uh&cdk^1vS>Hck(i9$gr!JDIs{%
z$lr=U90dJ>@}r2B2vs4QgauP+2=SZa>qS)eI_KJ6HX2kIM%eo`CG?BIIkUK)e7zIz
zIK1pfB(Q>{W_6=t2av=$bL9N|x3jue~yiZl>L_9u;wA0o)|fYvw~r?zc`P!%vWr
zV_7sc%S)opxdSa&m+sPuFKe58=6e+!(yI%as!)u}5wNSDB_u6WG2kNk4>i5li@G&=
zF>UOgnPy55SRP&{jD#6)MvIPQ4I7*UzIpZa)yXQCzM=G&(iJ+51S(PXR{~iz^Wf`n
zF$xb40M3n1FZT44J{kt|2PtIi>3xVBqew!gN%vb`CR2gHJ>firQdE59XaN?CMp8cN
z@+nB!Ye@H+(CH?nWoOAQKN1e=pwF9BS)?FG#nz6Lq-YG8#YwYlwY77sji;z#a~xrR
zJ;;MLm}pyko_JC7rkUM1ee6`&oHvzctmhm5%da=kMNw6!R|mmdTyix#;fsiDxZc$d
zJesQt70k$QIBtg!*Ufx=$-s0msPe!9;l~zHPHbt!mribM#3(R*3odl8*}P#9WV8?i
z#H+bbMGbLeL>^ZWl2d+D```auGN_(S4_jQ;1~W%csO7YzG{i`9yt+WonAWY?bTSNwDL7
zF_%wp
zC|dx;LO!Ec!g@{%=Qh;?r9hbI4=CK>5r-s)pS?u~V}p1PKw2n5^OV1rOaox-ctL>@
zO$(#c_+S?ZZs5~Pk{}Q2y|Wd|#yZqw7#8b+;#C$LbIV@(tV*%1GfU3b12tGWk1OjJ
z1#27sjeGE=c&_~Fr5G=X1|P<4c+jrfjkCm&M3Vimofa5*RVX{`^@I+T%NtzO
z5<5miN<&i37VbATH;J>({aBwqZjhCh`4S)X#q60uhmM6i;b8etqDr#GUYgp4BBA@_
zmJs(DiFOK%G^auZ=kJyH@fzeoG}I#xW|IeWQkb}Aq?tlW9%5Zn?#l^QvAu&V?1Ghp
zq<$5uqVb`-e{Z^{)})jyRU)i7DzlkJhe)>~2PRn0-@L}b%3cDI9D6E;F~d|atmb$*
zS%C$Q!re7LBnVM?iN*TV~L|B
zaRWISVUn~RrehE1XV4c5ZyTmKUino7sak01g{kCM*QVfZv!~GmO`u-pcZ-lZ8O~xb
zAL+VO^u-zNVLc2&%yl4!4{`_lyqS6?EC7|yPVkU=+i7Q!V=(waC}Xa9VQ!YiELcCr
znoqLQY$rZ?+|E*03a%$Uji1?>VWZ3otoa#IsZd-=!3?it6W>&ywiyhquj0`s)yEmS
z1jfRY)pCCavj4*L6C{T0MX2Twg-!W9V?Xm}ccm1)+7#b{Oi6Qt!pY$-HH6-^jDxgKuQ;bl%@yi@e=t=K?mEs&^>&I6-?-
zLIld%N{TZRDEP`
zgv7YYha9u>CTO>+65!L)P;EIe#--3i>d=fM=ZlWUI8{a#!guwJ(}^V@AZ1xY>8AH$
zC#`vboP&@=RNw_6`HcVLU<*8&y~J<`12@PtX)}e>K(^m&;+kU&Q(l~MKTH*-eYfV+
z3W|Zt2wmM%xhM~uw7rrnxz?RJ@NT3t`xH{YU8CW%FsGA@YHHX~x;JIm`}uO-6qjD=
zT~<4p;IOvi?}z>2@c6qp$C_3wx5v(1X*T!bgBIV7r2vniSu#LR_$nqH;#;X&F2D4C
zRI*+|z`p+6pb$VVh$*BLkrm)^;N3&{O#XG9usAxq4q*w5&=u7Q;{+mkKgpbsTmhBl
zC13RkJRXIZfwF}>aZH5Zc!YrNx;h8~N|vlIv8~oRq~_Tfv+v9CNuXj}auSv+zl{95
zPik9Uu}k<&mCyUI!j|zR%gq$gG*6vZi3zcoH*=)D1H^6lD#i=oL=SgArWBt9GvHQN
zzJa@#ylUDozqQ^01Sr)6Jom>+2Aq2$iYwLM;-<>hWcD0hGD(nK}fFnAj-MP(@X*=arrJ=
zvyx4x`lM){Fu|OxqoY!@O4Mg0J?BijcQ_3Q^f44xE|nitj@=P@O^oa$}Cpz$2vwlWwY_!@#H$OCA&g7
zMBdVXsM#>Y2Z~+deXbpL)aJ~L2sRw}j|lh)CxKlFa|#1Db!nlSoMWZ_5n@F*V`F2!
z{02Ekd=eqm*PprDSu=08r^xT=J8+w5lMsL(GK7ISdB$Ygp#7(@m3Rnt3Yy
z6j$*i1U6#%{zX>u?`WbKYNwq>K&38!qbavnQ~0Wo%{
zmZN8aV5iN&EW5nj{k$}@TY$XDZ%M&${kIygETet<{Uz1)KcO)hWNVD^5NiwNCJPOtFYV19lR=|kh)^q}@fA-V{!Qy
zLxRFE`D^jOT*h8z)`%1l7`gYX9bfR(EoV@I$C-G-PnTYGin;kW?amPb>xH*bG5aXR
zj?PAj+py3hZLU642VETcxve!+Y}!ojI4m+3PhBjp$j7S1x-7PNe6`EWy$rY3HnB^8
zXdJ7H#1kHI(rC7qh%z0R3y#_nlht=O@N3NX@Wl<@M0IaYsHg%G@DEhCJrgduyc;F3~aCtqs2DO8ZGK
z*b!@-ccih$)G|!|D0Iot`UpxP2HLb{YHvUDQrc3CSy4!hRn
z;9!Is0fk1pIvS+o*_10I(#6}_HxE4Tzugmck_uCsugwsP0G?%duSqXrBx%a!qfysL
zTD$2>J0{o$F3S7JA>u0)c_U1bqJU#l^ukjaLP(|4U=gYMQrS`x+QmS|Dpna7*8>NJ
zwO~lKib!k{$e~;T#U&)(9Wm5e{abaai{YjCzTck3Kw}x))F>`el>Z0P8J8POF59yL*qpv#aGW_vAw`NA#>*RHCfm<0(|>*Jf=
z=I|^LU5B-Mbz380QsKI;PMaBUUxEAgjh)|G(W$+HUsOa!
zZfew`EU|jdMpBnPrNr+(eNb;SGIwNIr2Nd|^T`pi@OHsbh{uX2Lv(Ye@LKwO#o5uR
zZ9J->c)CyX5+BVDI3ioYSVZ$q{I=gs1aWb?!_jV~cjI{)H1?U_F{xts_3|?)#qyW9
zAo1JA&}au@ZjMg7IA)7$gj=*OTd&mg4sIgJ>zqF_AkziQwd_vb1diMd`yvUpZwGdA
z(}2{s5PK@29K#kQm-#p77nek$?v=R|o;RN?_0B;CZM@X65bwaqlQ!i7Ct)6aPdc+9
zN0r?Xq#250k{QM?iYX2G;XNAPYL^DZS+Al%Ey=_y_M!ae-V3K*4Zg+oM2mTbT$-YT
zn{lXjMWsbWjT0t2Z6inSqbL+_C2~S(A_rOoP7b4+y=tFz#gy5N4ntAbg?tHW>Jw~!
z9arC@NWqc>14;vdZda-Y1F?fScCxy@a>j_^Cq$G(Ek+*&s>G5H$%0-&PRn&o_N>XE`r!89m$In?ZtHkO1KrX)o#_$P{wd
zdUB}@zol<+-cwyKt~VrM2D`Eda&YywXdi*tJQh6l%jVm*I;#5}kJ46^i$P_G=eSHQ
z0^AuAFX7=6U!t}}vdSOn)C;)i{|!uPFTFCVYcDx_>;;z9Y8YFle}
z=xo4NOmW+OcBB8
zV(eh+lK;GXFluTGiq)iDR5NO2ix4)6UrG8B0tbDZLM(j$#cQc>2~a+$oEOHVO(c-u
zHbyGSND+v$#5);ybIyUu1OUi&f`$|^b#^3070F>VuU9HVyCz-?MDog(qCstV?*tRn
zChN_vbHgIY(+6x71TN^uN*-?&oa0!`$#Ni%latSSq@`liA!#5D5cidBWhl8B0!Fsm
z#9ZoCoVo`~N^w8fYoX5N^MlE-<*>j-9W`ULoW)xl=>zF9%BxS855-crnsbV(l1%km
zP6TB|(SW1ULU+tCrnw4k+PQMyrk;6{lKYTS^DGtRr}a>g8SyKdeNdmdn`C@BETl$V
zyt?Z`Xz{+TrH{T!mvWgL+E%%;zllc)GMZD`1XqkPq8T&5g)%(5K6zo8P;#IsYGz(B
zI8DkSo-WR?!nMXEl<0~S##UL7d|qW3%`@PE!3H_dz#%(Fl5Pvi`62@=EFE3zNP!0Z
z?5qX}5gT?dYRXo@CpXEjDt|F0q}cPB^bN0azKlX_IF8vStBroC<}3p;@hTEar2@yU
zTW=ChX)2h)D%sp%I)$`qP7_wf>qJm;iQwh~XYu4SO#M7bLS4#giHI}k8Cvv1McEu(
z@fhmk8Z7bGc;P*vix7M%dh{dpa<#@n+*6F~0aKb0q7XW>>SVFx(iUYzj<1DE4MMj+
zXO&4OLN}z0mNFf(678mxP?GghIDCoR;>u7r3n+-j>7vPV;g9RVk2#?|(XpewFu`R&
zM1iYl@UK6NPU5;>VDh*{_B>j*@LZ(xxcPFoNPoAuOMm1OTA_gVl_f#OkR}2xO0-N%
zmfeIA7^vqB${!YrOB@5m2EsN}AptprV17n#HQA$G$q+p3c+9Y%OABYLjIqE@U*(&s
zn?5bDqenQk)iY`(z28AZ{=8P)Fh4J!D2b7&Tg)e2QaTDVm^gPJ)dBLW;SxNRVk}t#
zhPi?-qiNp48S*yarax^{){0c5$uRtKs(U!fO4eDp?Z>%(GAwUlGth93$iqdYxSf%y
zDdfkSW0%Lc+@AMgk$5~Cn;#;ZG_@6c?(manYYZ(DBd`ugQ+6>cD=R@{r-9cwF2`H@
z@dk^6aYHy}AAKf!b6V34G)!S$8K35@%Zc>w-HBUAVdg7q8a2MGQi)tw9&{eU$|oaZ
z{zM>*ple8!En8h~atKMSa~#az5yf93(A9RixibRB>6ArMhTRi_Q%4IC1_th#nWO4b
z1P>eQ%jHD1he1*Gl}}s%Lf=vpo2yIPr=QR0gR(b@C43~O`Vez*MM%P19vwR0c~qKy
zgVx~XgMlq<#I+vDd^uS$%Qr@}vtAk28?UQwRb(_xF5zug7%-4d+u~y`TOT(aLW`Hq
zlD4~Q8*O9*VIfOgh*hNEM6e}m0~ff%LvrYQYmE4B6$f&C7#0(PzJ7^TO9!2ohVQV9
z`mpj@RQK<&l}k2
z{T*%K+8bdH`=L2=WM^+yPBPN5Z|;aTJ3hTz4Zb|tz7k}@VL94(fS<#4BzEl$lC#_l
z_7!5zA}CK~MxSBsbQry$jMH`i)e>=Oj@Y;spvqC6@)&{NjaED~+E{0AR=&v>^jmRG
zcpFx8eVXykDtEQ6_9eYWg_Vml6zGR3#KKMJ!1u`fNuSYDhuoz@gNpmpY`8POJl@e?
zI%-)Q`k*?^!ENA#ChIF@EfFV2WK)H@Y-^JS7KCY+WSx>}!-->)Cc`#LmbODSyzZyZ
zwy|&BV=wAY%;y@w56c8o5mTn)zPdAmZYCKwr$PcxUyXWa%!+2dNzWn?Q7`X>RZRaT
zlscFgSt>s6HRM#8Y|7af#gh2KWuXZc5|9a_yP0S(?-bL@PZXOzca3g>vPWr%U%Ur9
zDjBq5*MTxa1xHM2ZThj5aM+Pml!0JrJ@4FA$(VyA8eu^qsX!)D3(`ID
z0r>MtW>XP*p1n4X=bT)YQ^;K6A*)k485)%Ii11%rj@>;9;%rv&8nV-p#2iMp6Af{?
z9ZcwmQV2a&G(#^3?@e!eaE{MydoE^~#sJHVo5A&hkbX$AaIe%%leK(XF*7UJ=`s|H
zXd@eIr2Sc70dzHID}BVm=8m>flChtb6&01DP-5b|>J=t8w0JHmSlXa|0p|>uBU`DhFh(vj
zJH76qym9rmojuZqWKDJeu1!mMQ`IZs<|85IxiJCzn$+S|2tCM39J{>G7DFUxyRMiLj;SLnic3xnMov&e$X@y!Fzq0T
zRrJDQYmc{BBV^iltizYx;Z@>0`_+#lRKNFsETgIRcBSXcXq8A#o`>`y+WkPd(+fj8I`Rz~J3`?Ad&F!FR5_HopYPWOA>c?S8*vdDJ%3fD_fabPYnYX7-Y@
z3f7=kwK8-?>bMJ77$BFF60!VdCfzQP4PP>A7{YPV>d+mmaqE4%f3m?q?;+n2MvfG#
z5qv^=ox6e}J|zq;75f;xGo~1EMY(E2{vFcCH{Jmm)RV-6uRHRub~*OE25@zok*mTE
zN=COmXv=E{hz;tBgufks?mok3@h||!?!puWE$vHv&D)$dw)NFW=0Y^J@vYjG`e`i;kSB@S
zq#D_%1TfBW)X>3!PtEk+;}EiLQrg=fJ}qLwDZbGp|*32OTfg!g7reNBEekH
z@A07n!griw`2g-1;x!mzmQd_zu>1DLa+S5uyWr7e2m{w1nj3T^6jS9`pDC~K)Oq0U
zrW~pw%^~CMpV#4%yxN>A>uE+e
z%0^EM@UYG@q2Yyhm<7Vd>iff8qaux2Q}-qIhRe6PgqngHE<<0m_BkgPw?FN!&u?N;
z;pfs!Chp~)E#0?#>_C7s(Wt;P#EUA2OaM}RF=+@?MAru*HB2tnWIa5z3vQNQ5MH7J
z4^d!mKdOpd-sTSwO)gJxbh@6yJ$F6S(&w-eFx#(+F)?8s%HdU@MoPa^xN2v9pXH-0
zznS3;x!=$KSuUrAcaEV){jTBQoALQvfljrsdFXKwCCtDeVWyqD!I8ou@IXH_h*`E@
zw3jOjeTae{@jOJ{{kdx4N^Jly-2Pj)`_{C^+JP*?dr&IUc!gnOJ^JH#HrMeX~#fWyLQB)DOp?_*hG*
zHEd}LXCsy4_od=H3N#!98*trWSI
z9`6Hqi)omR@@A`%9iEw3Zcb`uZwOLlOkYq5gLVVCC^6nM8AkX(aOuLw{T}kp)jZRC
z!QfK8*2v!4camW$nzWV99_<_F=cscB_4Cv&FS2_sG4Tns(?R3EreHgq8ugOO4DY@r
zaFsN~6||F!Wryfv^b9=N$^3l$8NTq!Z+HK7TEvMBn^clv-#S1)0~~=6jib;_&GMsJ
z*ZBnuBw77VRNrflQ3DKpbMwd|A}^b2oDnub`LOJGBrOuQVDNH9BGIXiwj`eyg4P-d
zli@3yEI4^F`UTMI0B`;-!QiCcsWcS(0*dvDG)03r_HrsiK({EprqWB?{Vbh4VM5tL
zb8*4(q~q6mysz>Ncr-8EIv~lX905>cEX6rn0q@C%0dWh6BVVLRS1JaZzp@7
z3kk97w-pzMv!!FJzNhruOKh2!Cil1N4$&9mBE(Q5Raaz8hD1xmC?Hb_6_s1WSs1M|
z@KQf4>!H9KUN~lClVRt1u2~N44T=^dOk5or7HKdOHszT(
zeXrRz?4Xo;hiF)o=T%tyHL77YF0*g}l%RQOy$0qrqBG)h4870T;&rP7cvBzJuwWVK
z%ZE|7IArQlgi1~%{p>H(EV^QBeL`5oqlc|akm@O;COgw|15a<-XXKPmKM%f}Ar-|2
z4wf+~&_k&oRjb(uGE*^_b^~hK^%}m2W#XNBC17w*8df{EI;(xtyffXm4(EaG3duB%Bx_s{+a77iE1J(sb3^
z-Wt9|IaZPRIP2Deg0ha7Ilb=oLbL21IJ!rLvWm5j+8fCLhX%a`-
zF_9%PWHrFp+UZRnhCIVJpj`yp5`>CD1H|U}ulP$Y#0M`2JNn?MYUL($&U^B9&=C$7
z8EwQ6Md!lby=8LaubthXzUgC}KxMZ!pJMs=!X2Dpga|lx0E;5#T(foq>
z40w$-Tkr;fN=!WSu!%N#hJWIsYLL&xN+H&CDc(8OQ#%AaM@pGr+K_eupfroOeH=R~
zgNo}GS$8g{lt>ziN5b$KTOf82hYZ)1qfs
zT8OBRNs8_9`cWZKfe8bza9Ft2y>|^Q^(S1}xMYcL4k~b(A)jqWiItZ^F!N%q3r*Yj
zb>bhO^(-W8s4eJ|`C@PCTqHiB1Rs+#)~yiK5e|L@(FxgZM&MiIW5KB(57~xww}NWJx@aCa|~v#E#hUDC6~j?~9njV64^5DB{$E4dw_f^YAQ
z22Nh@mea)<1W$9aa#Gz!`&_hpb&chVwDz7j9T=;;m}Mn*`$%9`Q+`%ThZDwudECo*
z*=L(>zF%=F^u}fs8Y=uawQe53Ih{{s<>tr*S}5oCzTxt$5#I6y^{TUXP86tz4_C7^
zz|_KRMo!~3pltMQ6~mdgC2<`$-1B&K_@QIP(%&ls_SFVd{me{Y!0y)Gb%;EFp?2e?
z`RxMdY0Rojh|8JNqM2%?$(t9Y)fMm|9T5<($#2oJ<_zA#epz>NoJ6VG9nCo1!*O>%
zSxF7#P|PH!4_kec$h`Y4{gdhqxawJD_v|bckNJXsI}i`6cM5ZybO#lcU#a!ok;lH)
z17>985(m6?De5yn*>cUK=BVpkmp;xB(&uzgF)v(S22KlFbK>BaG_6{8UtQ%K+J`^lZbja=R*Ro
z&$j;l7Po`PJ@7K{(%H#9a+e(u7*Pm4MX!?)%YgpQC$(e4wNs6g2j8$Ubu`l%BUoBu$WVR!a>on@JSmv&U{Yz>a>@^y?dEpNkA=OA5(3+d=+X5
zFdjK2B_`T0tKq?E_a)2pbCqU=(GNLs0does;s{a~xWvXVg3HCtUwerd2o)T;rNi5d
z&8b6e#kgDL4$$|i4IbJofX5jZR^2~eckop26@DhN*hBxHdB1fjRo9W8HxRUEut7(^8|YOnO)
zB~1$>8ONV1xm3Rln9yuhNgXd&?M~07RJu!Jm>3M2?O-Vy-3!FMs*Xe#fKpAkaH*#k
zkpVGL0yd_A-*WG5P762Z6WLv}wN>jn-3Zu)FP4n#s7sOpA&5_f?Za2^Whf^l2pf8t14(bcY0Xs{qt$Dtf9q*k@`U{bD>+E-l?uhe?
zO*RHMhi?FrzAb`62#TSulXjc=ir4hal@^tG8^P)J!;=|F_SwBiD-lHd&6_If;v2SVmsYpz-psI!>!y__PbYOg|`W
zrM%b}0FTcRik!Dw;`m-Hn-a^y(3B5T68?p>nX3WzOqA6yRt3n`@~Q~AUrIx2x@|xi
zhR;;qxlwWMORXGU@KAF8j}EskV-3DIaslE_$|Q9DE)06Ppy~-x3~k|vL=d!0LRpQ^GjOj3l=XdN
z6bOb6QMDV)9hJu<(isr5tFu0J<|(A`P5DnD9*%pGcgcTI2qCCVR%svDaK_LkJBF!
zpg6~KQkUPmbDOYyRpm;09boj;nBeRLxy@?8gN!#@OQ6i+!=BDX;s&I{s~O0C3djg!
zEk%VX7d7DK5v~PQviSo!eh%>rFT`rv!Eo5Yx%#yJ=>dbTVa9IY_O?jxbvxLWHlO^zH|fCGDw0QuLqhVULR1GlVk4iIYfMNz3w6z8rNRo`7Q
z{%)xl5v`0PrlJ&iUtOpU;gdtYXWB(e-84&xwxVWL@<7P9;YGqd-mECG$jYX(w@iK_<
zH2`3Q*93)K;F#slN#8y{HkZ_4YHjzp@uS+cPojPpk)KzhY&*Bb6GX4$zOj?TSeg)}
z`H1G@{lfE28Ea~dy=w*pHy!mLmBr{gegp>?!!20*dc^$aOCr1Go(aUsR+PQ%ucDP3
zUx6fn1)|Lar?k!r`{K+QG0VQ%vL?19ZbmyO9eJ+wTEA`({q7DmO5F_SaI6@>CKCVw
zZ?9~dc9id+Z?VN1uIjXK?d-?lRpM&$Tvn!vaqYwPi*K9zCzw3i+h@u#CR}fDQyoNV=C)1=c
zDPq!Tp)#0yh!Mz)Z2t>;k)uNm&+1x5(NDAb$#I~Dmg1Qow;?7K`W+biBM_kduM!AFk`5{m{|PA
zE+tiRpqB1nF;!>6%)C?50y;QrLZh8oJm$XYVETqv__=DPulZLaz6NJak;hz8V3>;jyq-IYRIeo)1^hq
zVitN@YGnn@Eb(?!h;HQ#C27et+xMsK2Fv74SRkky#Jo%-oAA+sZKE#dCF3;yAU&W6
zX7syJncb5y^%&*(r0Ox6TupgJk!}o_PU8jRxP4Vsz~fTpvfQC%aWT-Q!Y5<4wm%V
z6xhXbpk}FXZU{1~d+Fq(>X)$_BbP%o`4y+cF|l#;ff203!&uao-Ki>;WdR9cSt4X2
zOe6>9OE<~3
ze0_6JrBbbZJcBWJa_F56ai~tQxw-0Q@cT#?BN1VqCOn;<@Z*m^;&3?Na=BnxBCgj3
z=kpi5oIfL)kMmZcsPB66*Azm))6-J|9S(;gC%l;KZH%#~*^I!)oOlkI+XEs<=&f^r
z?ILnHkc}bE9dV>v?bI5DJO9WrI~9b+YNq*lCN%UmPaq4VxdfkW=ZFrKXx7Aqs*J!J
zn`KcH*?4vhd7uPa>e$6ph(fClz$VDoMpdQUcP^ly^*~NztMLAq-eN@^(TSakfFA=U
zMj(P%p@@kvImMlJzDmn{;P(2d8wc-Wdyi%5LFm=@{0#G!UXBRG-TWvjKU3(QjktfK
zBw__bw~u4u;TrJ8P1P;Jo}{@lm@giH2(aW?v?0pm_>z3VF+X84sY~ikTEa&0x5`5|
zs$7G@^r+iy%QC=kyjqfo2fL#Cxu9K~z+0WxI_NIe$BMmoy7c?+-8&;z1(qy@i~HA8
z)anXIxAD6VGQV4*C*6Ai)b}Vm^3oO{Q^%ZEb40hU-2qCzgQga3-WIG6y`Oi84}0C!
z_dZWV5duR>?B~0{d*GbwUbsP&Ayf7nbv4#usl@^hw0MA_6#YWAH0x~!n7I_>w(c>L
zWDbV|4u=DlWhwE-^Ye3wRrcq@+T!D$>ccKkZRc~gey>;5*`9+VD;(dcs*d2WCV1%{
zl7*2%LRFfq=hoLH^Znj+ZypZ`Oxj+{R;TdhbLdvu?w*ScY2uyrHkuPXiCc@(os)zv
ztOl**Z0Yu3qM^+k!^z;^xt_cG`A%$8JGn-qLaS~=1v=u;_%k(kVi&ti+Bh$0<6%&-
zHV7ev=F(e~x@3
z8z-b!z!I(GGJl}w7}i^8_-7^AqN6k&jN{?9m`|ISJTDloj_ZG*dXA3e{3n8ml5o
zC7iYRixO6tOljIsBQs;rNRrhk8v-+$#*5W++9`(Q&+Hq3_7!XDcs~$jcVsl(+^>37
z*5TQ_LCBw`P}yZ6VMWPi=?RDVh{NGfR7d=r*xlo-FcIa3+wF$y^@`i=hRfw#;+3ih
zr>lGLO)&m!S~vChKcUGJr`%{`jTFcE35UZo=HnCIeRz-WzWab5-hIIF@ByW5Ssl#)E{HMWdb{Da++0zkDg_9vC}S8<%tcDWD%;p9cj<4d
zIr*ZN=u#CSM4+-*9Y)%CkyFeV<_Xg@VIs5Pn-n2TIGs-E*%tfYDPay-m5hxbfusnN
zaGd}OFzl3_y~r9j+dF5s_Rtk6xgo;1B9nF{Q#b!aw6V}!tA99%#}pa1fcGZXFY~Y#
zwgV??uwo%b)F{jTok|8ax6IDdsdI#o@pMD5rHx^>Vxo*?k8GY-`DBL$*FwG4F~3;3<@FL5Yc5L7LNu^<_f}Y$e34~1YOD-X0qC0U3=>kRxouVS;3hX)*`QK8
zPVB7H{a&^T>2`9dkrHQ%H_*z$(&v#iuZruKXLZWByuxhWids93F%v0`z}#RtBUP|G
zZoHu?&^J7KJj|0Z;bVeMg>HQAtk08?3gYN`w}`=8c%oMi$?9mC2*7vNe{(yhnR2wom;9mB#r>xwof8SHq_ZT~TJ)l#;7-3I)_tC6@uIYm}_N)4y+jwYw&NT-?
zr)ao$_CA7n_~wPteLsRp-oshEbx+&SOhdw0ud288-1pW?kK=CMS02y7JllHSrLMSo
z4qMpZw*756*Bu7iulJQJ2F4BNY1_?i9645%?!NDlKptEFTl1_aMDx1gpt?oqsy5^?
zwy4=9lAX0(@wqdlu-vq63gv~Myv|j@DG5++EPFolpVGtMayUIN6rKM*ExWCWhT91!D-B~0LuJeUJdNluL!Ovy2ojGI-W9kMZ16ilT0q>^?@85rbNFuMiyu9F-pMQq_9Pt`oL7J3^9tmXp
zBFq5NG)*`jkA)m_xm<8QpK-Zd0H8?j4i~irf#SNG8;c#64EkU~GVw*mB%#C-HPV<%
zfYb#QO#!9x48~B>Y88lSPdZ7Gpvg~^9U&tpufaMsO(NGWD0hAZCyUz$?6`cAz0keXY@mWX74;yS
zS86IcqxDtNZ{;DNRtAMru^@CYu{t6Y5X-Vzcdz#ZkRQIGBG8i@9i&-M4E
z>9T8{t|*Aasb6JKUaAt?h!jBmUFs0T*8<>Ju{6h;rK2lfQ|yRV`{c?DER`66T_b?`
zx=a4KgqGBVsz9KYKjv=rI&WwwcURU3QU^z
zat?_El`Z(D$%ryx!ZasarN9BPiSgA1i>j;D5ZBt~;%4bc}O+-@r
zNO%;PLdrj;NRX6-)Sg2+lPtd>!?i?Gm%OCEVigP4{D&ypPUiD>YO%o;Mwc)v0T2n+
zy>52Zw%ol(LGhtoQalr`LMUBpv){abUJ);x2aArfH2;Ou@;X1>0`B
zi1oP9kSxeSp}M5AP-+k^_IVBVuG@`T`(&(^;NcY`R7}mD7!xsAks6e9&4GDk3EyHQ
zYjRayyzHrq(KIO$8{=Zfrf0_7CEX
zarP>Xnq#2Y1?yQ!-A31?;cAv_&Ag#hBWxQIyIPL7RvzX?va%2zlkV%E5>Ek*zeS$^
z;>lN@2tQamiD=7J6+X+%DJl_vwfBTAgtyt_wi*Y^b#7qu?5rw9rOe4R7M%k_9-ol*
z9#%q#X(A}+_PtP^CvvSWCA6z_xFHrj*a-S3@nauP-M2aW^XqOj^2SE$Z$gyW^W)y^
zQW+G}bHR1b%Y0R2a$T)iHmri#Y}$ktyn>s;%8GrBD%q^s6<&c=H*2bMR4LBdMcuND
zY3KS&5E_hisHuZF`2l8Ew^Xnd5kyU%f~m-5GF!_HQ3SVZlEzlkMxLe#3X|10HJ1p%
zJRgh*l!C|!Q|flHt`uc8`cGd#Tnei;6~P(QH8o~dY=KH0>r=9a?Vu3acj}WRHQp_~
zXRWhOj)@-X#=pOScoj(Hg48r6PuzK)@q9Yrhwr|_&%gYF-+ucIujf}RvfPyq+v=n%
zKF~&5I2;ZJ6n#m_pILp482H+$x$Jobs)Er$Lh2hyG|
z@H(*_&qKfeJVv&8o3&4Wo;CaagI