From 6e456329c50405935ea1797b6e080cf806877d69 Mon Sep 17 00:00:00 2001
From: yuyunine26 <117963966+yuyunine26@users.noreply.github.com>
Date: Tue, 2 Jul 2024 11:55:02 +0700
Subject: [PATCH] first commit
---
.editorconfig | 18 +
.env.example | 52 +
.gitattributes | 10 +
.gitignore | 15 +
.styleci.yml | 13 +
README.md | 64 +
app/Console/Kernel.php | 32 +
app/Events/HelloEvent.php | 53 +
app/Exceptions/Handler.php | 41 +
app/Http/Controllers/AuthController.php | 49 +
app/Http/Controllers/Controller.php | 13 +
app/Http/Controllers/GuruController.php | 104 +
app/Http/Controllers/KelasController.php | 48 +
app/Http/Controllers/MapelController.php | 48 +
app/Http/Controllers/MateriController.php | 159 +
app/Http/Controllers/MengajarController.php | 165 +
app/Http/Controllers/SiswaController.php | 105 +
app/Http/Controllers/UserController.php | 36 +
.../api/DashboardMobileController.php | 82 +
.../Controllers/api/GuruMobileController.php | 386 +
.../Controllers/api/LoginMobileController.php | 94 +
.../api/MateriMobileController.php | 72 +
.../Controllers/api/TugasMobileController.php | 130 +
.../api/UpdatePasswordMobileController.php | 36 +
app/Http/Kernel.php | 67 +
app/Http/Middleware/Authenticate.php | 21 +
app/Http/Middleware/EncryptCookies.php | 17 +
.../PreventRequestsDuringMaintenance.php | 17 +
.../Middleware/RedirectIfAuthenticated.php | 32 +
app/Http/Middleware/TrimStrings.php | 19 +
app/Http/Middleware/TrustHosts.php | 20 +
app/Http/Middleware/TrustProxies.php | 28 +
app/Http/Middleware/VerifyCsrfToken.php | 17 +
app/Models/Guru.php | 21 +
app/Models/Kelas.php | 22 +
app/Models/Mapel.php | 25 +
app/Models/Materi.php | 23 +
app/Models/Mengajar.php | 33 +
app/Models/Siswa.php | 19 +
app/Models/User.php | 44 +
app/Providers/AppServiceProvider.php | 28 +
app/Providers/AuthServiceProvider.php | 30 +
app/Providers/BroadcastServiceProvider.php | 21 +
app/Providers/EventServiceProvider.php | 42 +
app/Providers/RouteServiceProvider.php | 54 +
artisan | 53 +
bootstrap/app.php | 55 +
bootstrap/cache/.gitignore | 2 +
composer.json | 64 +
composer.lock | 9498 +++++++
config/app.php | 197 +
config/auth.php | 111 +
config/broadcasting.php | 64 +
config/cache.php | 110 +
config/cors.php | 34 +
config/database.php | 147 +
config/filesystems.php | 73 +
config/hashing.php | 52 +
config/logging.php | 119 +
config/mail.php | 117 +
config/queue.php | 93 +
config/sanctum.php | 65 +
config/services.php | 33 +
config/session.php | 201 +
config/view.php | 36 +
config/websockets.php | 309 +
database/.gitignore | 1 +
database/factories/UserFactory.php | 42 +
...te_websockets_statistics_entries_table.php | 35 +
...0_00_000000_rename_statistics_counters.php | 36 +
.../migrations/2024_03_11_000001_kelas.php | 30 +
.../migrations/2024_03_11_000002_admin.php | 26 +
.../migrations/2024_03_11_000005_guru.php | 30 +
.../2024_03_11_000007_mata_pelajaran.php | 32 +
.../migrations/2024_03_11_000008_siswa.php | 37 +
.../migrations/2024_03_11_000009_mengajar.php | 35 +
.../migrations/2024_03_12_0000012_materi.php | 35 +
.../migrations/2024_03_12_0000015_tugas.php | 34 +
.../2024_03_12_0000018_pengumpulan_tugas.php | 36 +
database/seeders/DatabaseSeeder.php | 19 +
img/logosmk.png | Bin 0 -> 276270 bytes
lang/en.json | 7 +
lang/en/auth.php | 20 +
lang/en/pagination.php | 19 +
lang/en/passwords.php | 22 +
lang/en/validation.php | 163 +
package-lock.json | 9973 +++++++
package.json | 20 +
phpunit.xml | 31 +
public/.htaccess | 21 +
public/css/sb-admin-2.css | 11281 ++++++++
public/css/sb-admin-2.min.css | 10 +
public/favicon.ico | 0
public/img/logosmk.png | Bin 0 -> 276270 bytes
public/img/undraw_posting_photo.svg | 1 +
public/img/undraw_profile.svg | 38 +
public/img/undraw_profile_1.svg | 38 +
public/img/undraw_profile_2.svg | 44 +
public/img/undraw_profile_3.svg | 47 +
public/img/undraw_rocket.svg | 39 +
public/index.php | 55 +
public/js/demo/chart-area-demo.js | 118 +
public/js/demo/chart-bar-demo.js | 111 +
public/js/demo/chart-pie-demo.js | 35 +
public/js/demo/datatables-demo.js | 4 +
public/js/sb-admin-2.js | 56 +
public/js/sb-admin-2.min.js | 7 +
public/robots.txt | 2 +
public/scss/_buttons.scss | 52 +
public/scss/_cards.scss | 36 +
public/scss/_charts.scss | 29 +
public/scss/_dropdowns.scss | 21 +
public/scss/_error.scss | 52 +
public/scss/_footer.scss | 14 +
public/scss/_global.scss | 60 +
public/scss/_login.scss | 50 +
public/scss/_mixins.scss | 1 +
public/scss/_navs.scss | 3 +
public/scss/_utilities.scss | 7 +
public/scss/_variables.scss | 81 +
public/scss/navs/_global.scss | 42 +
public/scss/navs/_sidebar.scss | 477 +
public/scss/navs/_topbar.scss | 144 +
public/scss/sb-admin-2.scss | 20 +
public/scss/utilities/_animation.scss | 37 +
public/scss/utilities/_background.scss | 17 +
public/scss/utilities/_border.scss | 7 +
public/scss/utilities/_display.scss | 4 +
public/scss/utilities/_progress.scss | 3 +
public/scss/utilities/_rotate.scss | 7 +
public/scss/utilities/_text.scss | 54 +
.../vendor/bootstrap/js/bootstrap.bundle.js | 7045 +++++
.../bootstrap/js/bootstrap.bundle.js.map | 1 +
.../bootstrap/js/bootstrap.bundle.min.js | 7 +
.../bootstrap/js/bootstrap.bundle.min.js.map | 1 +
public/vendor/bootstrap/js/bootstrap.js | 4432 ++++
public/vendor/bootstrap/js/bootstrap.js.map | 1 +
public/vendor/bootstrap/js/bootstrap.min.js | 7 +
.../vendor/bootstrap/js/bootstrap.min.js.map | 1 +
public/vendor/bootstrap/scss/_alert.scss | 52 +
public/vendor/bootstrap/scss/_badge.scss | 54 +
public/vendor/bootstrap/scss/_breadcrumb.scss | 42 +
.../vendor/bootstrap/scss/_button-group.scss | 163 +
public/vendor/bootstrap/scss/_buttons.scss | 142 +
public/vendor/bootstrap/scss/_card.scss | 286 +
public/vendor/bootstrap/scss/_carousel.scss | 197 +
public/vendor/bootstrap/scss/_close.scss | 40 +
public/vendor/bootstrap/scss/_code.scss | 48 +
.../vendor/bootstrap/scss/_custom-forms.scss | 526 +
public/vendor/bootstrap/scss/_dropdown.scss | 192 +
public/vendor/bootstrap/scss/_forms.scss | 347 +
public/vendor/bootstrap/scss/_functions.scss | 144 +
public/vendor/bootstrap/scss/_grid.scss | 73 +
public/vendor/bootstrap/scss/_images.scss | 42 +
.../vendor/bootstrap/scss/_input-group.scss | 208 +
public/vendor/bootstrap/scss/_jumbotron.scss | 17 +
public/vendor/bootstrap/scss/_list-group.scss | 154 +
public/vendor/bootstrap/scss/_media.scss | 8 +
public/vendor/bootstrap/scss/_mixins.scss | 47 +
public/vendor/bootstrap/scss/_modal.scss | 240 +
public/vendor/bootstrap/scss/_nav.scss | 120 +
public/vendor/bootstrap/scss/_navbar.scss | 332 +
public/vendor/bootstrap/scss/_pagination.scss | 74 +
public/vendor/bootstrap/scss/_popover.scss | 170 +
public/vendor/bootstrap/scss/_print.scss | 141 +
public/vendor/bootstrap/scss/_progress.scss | 47 +
public/vendor/bootstrap/scss/_reboot.scss | 484 +
public/vendor/bootstrap/scss/_root.scss | 19 +
public/vendor/bootstrap/scss/_spinners.scss | 65 +
public/vendor/bootstrap/scss/_tables.scss | 185 +
public/vendor/bootstrap/scss/_toasts.scss | 46 +
public/vendor/bootstrap/scss/_tooltip.scss | 115 +
.../vendor/bootstrap/scss/_transitions.scss | 20 +
public/vendor/bootstrap/scss/_type.scss | 125 +
public/vendor/bootstrap/scss/_utilities.scss | 18 +
public/vendor/bootstrap/scss/_variables.scss | 1146 +
.../vendor/bootstrap/scss/bootstrap-grid.scss | 30 +
.../bootstrap/scss/bootstrap-reboot.scss | 12 +
public/vendor/bootstrap/scss/bootstrap.scss | 44 +
.../vendor/bootstrap/scss/mixins/_alert.scss | 13 +
.../scss/mixins/_background-variant.scss | 23 +
.../vendor/bootstrap/scss/mixins/_badge.scss | 17 +
.../bootstrap/scss/mixins/_border-radius.scss | 76 +
.../bootstrap/scss/mixins/_box-shadow.scss | 20 +
.../bootstrap/scss/mixins/_breakpoints.scss | 123 +
.../bootstrap/scss/mixins/_buttons.scss | 110 +
.../vendor/bootstrap/scss/mixins/_caret.scss | 62 +
.../bootstrap/scss/mixins/_clearfix.scss | 7 +
.../bootstrap/scss/mixins/_deprecate.scss | 10 +
.../vendor/bootstrap/scss/mixins/_float.scss | 14 +
.../vendor/bootstrap/scss/mixins/_forms.scss | 185 +
.../bootstrap/scss/mixins/_gradients.scss | 45 +
.../scss/mixins/_grid-framework.scss | 80 +
.../vendor/bootstrap/scss/mixins/_grid.scss | 69 +
.../vendor/bootstrap/scss/mixins/_hover.scss | 37 +
.../vendor/bootstrap/scss/mixins/_image.scss | 36 +
.../bootstrap/scss/mixins/_list-group.scss | 21 +
.../vendor/bootstrap/scss/mixins/_lists.scss | 7 +
.../bootstrap/scss/mixins/_nav-divider.scss | 11 +
.../bootstrap/scss/mixins/_pagination.scss | 22 +
.../bootstrap/scss/mixins/_reset-text.scss | 17 +
.../vendor/bootstrap/scss/mixins/_resize.scss | 6 +
.../bootstrap/scss/mixins/_screen-reader.scss | 34 +
.../vendor/bootstrap/scss/mixins/_size.scss | 7 +
.../bootstrap/scss/mixins/_table-row.scss | 39 +
.../bootstrap/scss/mixins/_text-emphasis.scss | 17 +
.../bootstrap/scss/mixins/_text-hide.scss | 11 +
.../bootstrap/scss/mixins/_text-truncate.scss | 8 +
.../bootstrap/scss/mixins/_transition.scss | 26 +
.../bootstrap/scss/mixins/_visibility.scss | 8 +
.../bootstrap/scss/utilities/_align.scss | 8 +
.../bootstrap/scss/utilities/_background.scss | 19 +
.../bootstrap/scss/utilities/_borders.scss | 75 +
.../bootstrap/scss/utilities/_clearfix.scss | 3 +
.../bootstrap/scss/utilities/_display.scss | 26 +
.../bootstrap/scss/utilities/_embed.scss | 39 +
.../bootstrap/scss/utilities/_flex.scss | 51 +
.../bootstrap/scss/utilities/_float.scss | 11 +
.../scss/utilities/_interactions.scss | 5 +
.../bootstrap/scss/utilities/_overflow.scss | 5 +
.../bootstrap/scss/utilities/_position.scss | 32 +
.../scss/utilities/_screenreaders.scss | 11 +
.../bootstrap/scss/utilities/_shadows.scss | 6 +
.../bootstrap/scss/utilities/_sizing.scss | 20 +
.../bootstrap/scss/utilities/_spacing.scss | 73 +
.../scss/utilities/_stretched-link.scss | 19 +
.../bootstrap/scss/utilities/_text.scss | 72 +
.../bootstrap/scss/utilities/_visibility.scss | 13 +
public/vendor/bootstrap/scss/vendor/_rfs.scss | 204 +
public/vendor/chart.js/Chart.bundle.js | 20776 +++++++++++++++
public/vendor/chart.js/Chart.bundle.min.js | 7 +
public/vendor/chart.js/Chart.js | 16172 ++++++++++++
public/vendor/chart.js/Chart.min.js | 7 +
.../datatables/dataTables.bootstrap4.css | 210 +
.../datatables/dataTables.bootstrap4.js | 184 +
.../datatables/dataTables.bootstrap4.min.css | 1 +
.../datatables/dataTables.bootstrap4.min.js | 8 +
public/vendor/datatables/jquery.dataTables.js | 15387 +++++++++++
.../datatables/jquery.dataTables.min.js | 168 +
public/vendor/fontawesome-free/LICENSE.txt | 34 +
public/vendor/fontawesome-free/attribution.js | 3 +
public/vendor/fontawesome-free/css/all.css | 4619 ++++
.../vendor/fontawesome-free/css/all.min.css | 5 +
public/vendor/fontawesome-free/css/brands.css | 15 +
.../fontawesome-free/css/brands.min.css | 5 +
.../fontawesome-free/css/fontawesome.css | 4585 ++++
.../fontawesome-free/css/fontawesome.min.css | 5 +
.../vendor/fontawesome-free/css/regular.css | 15 +
.../fontawesome-free/css/regular.min.css | 5 +
public/vendor/fontawesome-free/css/solid.css | 16 +
.../vendor/fontawesome-free/css/solid.min.css | 5 +
.../fontawesome-free/css/svg-with-js.css | 371 +
.../fontawesome-free/css/svg-with-js.min.css | 5 +
.../vendor/fontawesome-free/css/v4-shims.css | 2172 ++
.../fontawesome-free/css/v4-shims.min.css | 5 +
public/vendor/fontawesome-free/js/all.js | 4467 ++++
public/vendor/fontawesome-free/js/all.min.js | 5 +
public/vendor/fontawesome-free/js/brands.js | 586 +
.../vendor/fontawesome-free/js/brands.min.js | 5 +
.../fontawesome-free/js/conflict-detection.js | 998 +
.../js/conflict-detection.min.js | 5 +
.../vendor/fontawesome-free/js/fontawesome.js | 2483 ++
.../fontawesome-free/js/fontawesome.min.js | 5 +
public/vendor/fontawesome-free/js/regular.js | 280 +
.../vendor/fontawesome-free/js/regular.min.js | 5 +
public/vendor/fontawesome-free/js/solid.js | 1130 +
.../vendor/fontawesome-free/js/solid.min.js | 5 +
public/vendor/fontawesome-free/js/v4-shims.js | 68 +
.../fontawesome-free/js/v4-shims.min.js | 5 +
.../fontawesome-free/less/_animated.less | 19 +
.../less/_bordered-pulled.less | 16 +
.../vendor/fontawesome-free/less/_core.less | 12 +
.../fontawesome-free/less/_fixed-width.less | 6 +
.../vendor/fontawesome-free/less/_icons.less | 1462 ++
.../vendor/fontawesome-free/less/_larger.less | 27 +
.../vendor/fontawesome-free/less/_list.less | 18 +
.../vendor/fontawesome-free/less/_mixins.less | 56 +
.../less/_rotated-flipped.less | 24 +
.../fontawesome-free/less/_screen-reader.less | 5 +
.../vendor/fontawesome-free/less/_shims.less | 2066 ++
.../fontawesome-free/less/_stacked.less | 22 +
.../fontawesome-free/less/_variables.less | 1474 ++
.../vendor/fontawesome-free/less/brands.less | 23 +
.../fontawesome-free/less/fontawesome.less | 16 +
.../vendor/fontawesome-free/less/regular.less | 23 +
.../vendor/fontawesome-free/less/solid.less | 24 +
.../fontawesome-free/less/v4-shims.less | 6 +
.../fontawesome-free/metadata/categories.yml | 2572 ++
.../fontawesome-free/metadata/icons.yml | 21783 ++++++++++++++++
.../fontawesome-free/metadata/shims.yml | 298 +
.../fontawesome-free/metadata/sponsors.yml | 744 +
public/vendor/fontawesome-free/package.json | 58 +
.../fontawesome-free/scss/_animated.scss | 20 +
.../scss/_bordered-pulled.scss | 20 +
.../vendor/fontawesome-free/scss/_core.scss | 21 +
.../fontawesome-free/scss/_fixed-width.scss | 6 +
.../vendor/fontawesome-free/scss/_icons.scss | 1462 ++
.../vendor/fontawesome-free/scss/_larger.scss | 23 +
.../vendor/fontawesome-free/scss/_list.scss | 18 +
.../vendor/fontawesome-free/scss/_mixins.scss | 56 +
.../scss/_rotated-flipped.scss | 24 +
.../fontawesome-free/scss/_screen-reader.scss | 5 +
.../vendor/fontawesome-free/scss/_shims.scss | 2066 ++
.../fontawesome-free/scss/_stacked.scss | 31 +
.../fontawesome-free/scss/_variables.scss | 1479 ++
.../vendor/fontawesome-free/scss/brands.scss | 23 +
.../fontawesome-free/scss/fontawesome.scss | 16 +
.../vendor/fontawesome-free/scss/regular.scss | 23 +
.../vendor/fontawesome-free/scss/solid.scss | 24 +
.../fontawesome-free/scss/v4-shims.scss | 6 +
.../fontawesome-free/sprites/brands.svg | 1381 +
.../fontawesome-free/sprites/regular.svg | 463 +
.../vendor/fontawesome-free/sprites/solid.svg | 3013 +++
.../fontawesome-free/svgs/brands/500px.svg | 1 +
.../svgs/brands/accessible-icon.svg | 1 +
.../fontawesome-free/svgs/brands/accusoft.svg | 1 +
.../svgs/brands/acquisitions-incorporated.svg | 1 +
.../fontawesome-free/svgs/brands/adn.svg | 1 +
.../fontawesome-free/svgs/brands/adversal.svg | 1 +
.../svgs/brands/affiliatetheme.svg | 1 +
.../fontawesome-free/svgs/brands/airbnb.svg | 1 +
.../fontawesome-free/svgs/brands/algolia.svg | 1 +
.../fontawesome-free/svgs/brands/alipay.svg | 1 +
.../svgs/brands/amazon-pay.svg | 1 +
.../fontawesome-free/svgs/brands/amazon.svg | 1 +
.../fontawesome-free/svgs/brands/amilia.svg | 1 +
.../fontawesome-free/svgs/brands/android.svg | 1 +
.../svgs/brands/angellist.svg | 1 +
.../svgs/brands/angrycreative.svg | 1 +
.../fontawesome-free/svgs/brands/angular.svg | 1 +
.../svgs/brands/app-store-ios.svg | 1 +
.../svgs/brands/app-store.svg | 1 +
.../fontawesome-free/svgs/brands/apper.svg | 1 +
.../svgs/brands/apple-pay.svg | 1 +
.../fontawesome-free/svgs/brands/apple.svg | 1 +
.../svgs/brands/artstation.svg | 1 +
.../svgs/brands/asymmetrik.svg | 1 +
.../svgs/brands/atlassian.svg | 1 +
.../fontawesome-free/svgs/brands/audible.svg | 1 +
.../svgs/brands/autoprefixer.svg | 1 +
.../fontawesome-free/svgs/brands/avianex.svg | 1 +
.../fontawesome-free/svgs/brands/aviato.svg | 1 +
.../fontawesome-free/svgs/brands/aws.svg | 1 +
.../fontawesome-free/svgs/brands/bandcamp.svg | 1 +
.../svgs/brands/battle-net.svg | 1 +
.../svgs/brands/behance-square.svg | 1 +
.../fontawesome-free/svgs/brands/behance.svg | 1 +
.../svgs/brands/bimobject.svg | 1 +
.../svgs/brands/bitbucket.svg | 1 +
.../fontawesome-free/svgs/brands/bitcoin.svg | 1 +
.../fontawesome-free/svgs/brands/bity.svg | 1 +
.../svgs/brands/black-tie.svg | 1 +
.../svgs/brands/blackberry.svg | 1 +
.../svgs/brands/blogger-b.svg | 1 +
.../fontawesome-free/svgs/brands/blogger.svg | 1 +
.../svgs/brands/bluetooth-b.svg | 1 +
.../svgs/brands/bluetooth.svg | 1 +
.../svgs/brands/bootstrap.svg | 1 +
.../fontawesome-free/svgs/brands/btc.svg | 1 +
.../fontawesome-free/svgs/brands/buffer.svg | 1 +
.../svgs/brands/buromobelexperte.svg | 1 +
.../svgs/brands/buy-n-large.svg | 1 +
.../svgs/brands/buysellads.svg | 1 +
.../svgs/brands/canadian-maple-leaf.svg | 1 +
.../svgs/brands/cc-amazon-pay.svg | 1 +
.../fontawesome-free/svgs/brands/cc-amex.svg | 1 +
.../svgs/brands/cc-apple-pay.svg | 1 +
.../svgs/brands/cc-diners-club.svg | 1 +
.../svgs/brands/cc-discover.svg | 1 +
.../fontawesome-free/svgs/brands/cc-jcb.svg | 1 +
.../svgs/brands/cc-mastercard.svg | 1 +
.../svgs/brands/cc-paypal.svg | 1 +
.../svgs/brands/cc-stripe.svg | 1 +
.../fontawesome-free/svgs/brands/cc-visa.svg | 1 +
.../svgs/brands/centercode.svg | 1 +
.../fontawesome-free/svgs/brands/centos.svg | 1 +
.../fontawesome-free/svgs/brands/chrome.svg | 1 +
.../svgs/brands/chromecast.svg | 1 +
.../svgs/brands/cloudflare.svg | 1 +
.../svgs/brands/cloudscale.svg | 1 +
.../svgs/brands/cloudsmith.svg | 1 +
.../svgs/brands/cloudversify.svg | 1 +
.../fontawesome-free/svgs/brands/codepen.svg | 1 +
.../fontawesome-free/svgs/brands/codiepie.svg | 1 +
.../svgs/brands/confluence.svg | 1 +
.../svgs/brands/connectdevelop.svg | 1 +
.../fontawesome-free/svgs/brands/contao.svg | 1 +
.../svgs/brands/cotton-bureau.svg | 1 +
.../fontawesome-free/svgs/brands/cpanel.svg | 1 +
.../svgs/brands/creative-commons-by.svg | 1 +
.../svgs/brands/creative-commons-nc-eu.svg | 1 +
.../svgs/brands/creative-commons-nc-jp.svg | 1 +
.../svgs/brands/creative-commons-nc.svg | 1 +
.../svgs/brands/creative-commons-nd.svg | 1 +
.../svgs/brands/creative-commons-pd-alt.svg | 1 +
.../svgs/brands/creative-commons-pd.svg | 1 +
.../svgs/brands/creative-commons-remix.svg | 1 +
.../svgs/brands/creative-commons-sa.svg | 1 +
.../brands/creative-commons-sampling-plus.svg | 1 +
.../svgs/brands/creative-commons-sampling.svg | 1 +
.../svgs/brands/creative-commons-share.svg | 1 +
.../svgs/brands/creative-commons-zero.svg | 1 +
.../svgs/brands/creative-commons.svg | 1 +
.../svgs/brands/critical-role.svg | 1 +
.../fontawesome-free/svgs/brands/css3-alt.svg | 1 +
.../fontawesome-free/svgs/brands/css3.svg | 1 +
.../svgs/brands/cuttlefish.svg | 1 +
.../svgs/brands/d-and-d-beyond.svg | 1 +
.../fontawesome-free/svgs/brands/d-and-d.svg | 1 +
.../svgs/brands/dailymotion.svg | 1 +
.../fontawesome-free/svgs/brands/dashcube.svg | 1 +
.../fontawesome-free/svgs/brands/deezer.svg | 1 +
.../svgs/brands/delicious.svg | 1 +
.../svgs/brands/deploydog.svg | 1 +
.../fontawesome-free/svgs/brands/deskpro.svg | 1 +
.../fontawesome-free/svgs/brands/dev.svg | 1 +
.../svgs/brands/deviantart.svg | 1 +
.../fontawesome-free/svgs/brands/dhl.svg | 1 +
.../fontawesome-free/svgs/brands/diaspora.svg | 1 +
.../fontawesome-free/svgs/brands/digg.svg | 1 +
.../svgs/brands/digital-ocean.svg | 1 +
.../fontawesome-free/svgs/brands/discord.svg | 1 +
.../svgs/brands/discourse.svg | 1 +
.../fontawesome-free/svgs/brands/dochub.svg | 1 +
.../fontawesome-free/svgs/brands/docker.svg | 1 +
.../svgs/brands/draft2digital.svg | 1 +
.../svgs/brands/dribbble-square.svg | 1 +
.../fontawesome-free/svgs/brands/dribbble.svg | 1 +
.../fontawesome-free/svgs/brands/dropbox.svg | 1 +
.../fontawesome-free/svgs/brands/drupal.svg | 1 +
.../fontawesome-free/svgs/brands/dyalog.svg | 1 +
.../svgs/brands/earlybirds.svg | 1 +
.../fontawesome-free/svgs/brands/ebay.svg | 1 +
.../svgs/brands/edge-legacy.svg | 1 +
.../fontawesome-free/svgs/brands/edge.svg | 1 +
.../svgs/brands/elementor.svg | 1 +
.../fontawesome-free/svgs/brands/ello.svg | 1 +
.../fontawesome-free/svgs/brands/ember.svg | 1 +
.../fontawesome-free/svgs/brands/empire.svg | 1 +
.../fontawesome-free/svgs/brands/envira.svg | 1 +
.../fontawesome-free/svgs/brands/erlang.svg | 1 +
.../fontawesome-free/svgs/brands/ethereum.svg | 1 +
.../fontawesome-free/svgs/brands/etsy.svg | 1 +
.../fontawesome-free/svgs/brands/evernote.svg | 1 +
.../svgs/brands/expeditedssl.svg | 1 +
.../svgs/brands/facebook-f.svg | 1 +
.../svgs/brands/facebook-messenger.svg | 1 +
.../svgs/brands/facebook-square.svg | 1 +
.../fontawesome-free/svgs/brands/facebook.svg | 1 +
.../svgs/brands/fantasy-flight-games.svg | 1 +
.../fontawesome-free/svgs/brands/fedex.svg | 1 +
.../fontawesome-free/svgs/brands/fedora.svg | 1 +
.../fontawesome-free/svgs/brands/figma.svg | 1 +
.../svgs/brands/firefox-browser.svg | 1 +
.../fontawesome-free/svgs/brands/firefox.svg | 1 +
.../svgs/brands/first-order-alt.svg | 1 +
.../svgs/brands/first-order.svg | 1 +
.../svgs/brands/firstdraft.svg | 1 +
.../fontawesome-free/svgs/brands/flickr.svg | 1 +
.../svgs/brands/flipboard.svg | 1 +
.../fontawesome-free/svgs/brands/fly.svg | 1 +
.../svgs/brands/font-awesome-alt.svg | 1 +
.../svgs/brands/font-awesome-flag.svg | 1 +
.../svgs/brands/font-awesome-logo-full.svg | 1 +
.../svgs/brands/font-awesome.svg | 1 +
.../svgs/brands/fonticons-fi.svg | 1 +
.../svgs/brands/fonticons.svg | 1 +
.../svgs/brands/fort-awesome-alt.svg | 1 +
.../svgs/brands/fort-awesome.svg | 1 +
.../fontawesome-free/svgs/brands/forumbee.svg | 1 +
.../svgs/brands/foursquare.svg | 1 +
.../svgs/brands/free-code-camp.svg | 1 +
.../fontawesome-free/svgs/brands/freebsd.svg | 1 +
.../fontawesome-free/svgs/brands/fulcrum.svg | 1 +
.../svgs/brands/galactic-republic.svg | 1 +
.../svgs/brands/galactic-senate.svg | 1 +
.../svgs/brands/get-pocket.svg | 1 +
.../svgs/brands/gg-circle.svg | 1 +
.../fontawesome-free/svgs/brands/gg.svg | 1 +
.../fontawesome-free/svgs/brands/git-alt.svg | 1 +
.../svgs/brands/git-square.svg | 1 +
.../fontawesome-free/svgs/brands/git.svg | 1 +
.../svgs/brands/github-alt.svg | 1 +
.../svgs/brands/github-square.svg | 1 +
.../fontawesome-free/svgs/brands/github.svg | 1 +
.../svgs/brands/gitkraken.svg | 1 +
.../fontawesome-free/svgs/brands/gitlab.svg | 1 +
.../fontawesome-free/svgs/brands/gitter.svg | 1 +
.../fontawesome-free/svgs/brands/glide-g.svg | 1 +
.../fontawesome-free/svgs/brands/glide.svg | 1 +
.../fontawesome-free/svgs/brands/gofore.svg | 1 +
.../svgs/brands/goodreads-g.svg | 1 +
.../svgs/brands/goodreads.svg | 1 +
.../svgs/brands/google-drive.svg | 1 +
.../svgs/brands/google-pay.svg | 1 +
.../svgs/brands/google-play.svg | 1 +
.../svgs/brands/google-plus-g.svg | 1 +
.../svgs/brands/google-plus-square.svg | 1 +
.../svgs/brands/google-plus.svg | 1 +
.../svgs/brands/google-wallet.svg | 1 +
.../fontawesome-free/svgs/brands/google.svg | 1 +
.../fontawesome-free/svgs/brands/gratipay.svg | 1 +
.../fontawesome-free/svgs/brands/grav.svg | 1 +
.../fontawesome-free/svgs/brands/gripfire.svg | 1 +
.../fontawesome-free/svgs/brands/grunt.svg | 1 +
.../fontawesome-free/svgs/brands/guilded.svg | 1 +
.../fontawesome-free/svgs/brands/gulp.svg | 1 +
.../svgs/brands/hacker-news-square.svg | 1 +
.../svgs/brands/hacker-news.svg | 1 +
.../svgs/brands/hackerrank.svg | 1 +
.../fontawesome-free/svgs/brands/hips.svg | 1 +
.../svgs/brands/hire-a-helper.svg | 1 +
.../fontawesome-free/svgs/brands/hive.svg | 1 +
.../fontawesome-free/svgs/brands/hooli.svg | 1 +
.../fontawesome-free/svgs/brands/hornbill.svg | 1 +
.../fontawesome-free/svgs/brands/hotjar.svg | 1 +
.../fontawesome-free/svgs/brands/houzz.svg | 1 +
.../fontawesome-free/svgs/brands/html5.svg | 1 +
.../fontawesome-free/svgs/brands/hubspot.svg | 1 +
.../fontawesome-free/svgs/brands/ideal.svg | 1 +
.../fontawesome-free/svgs/brands/imdb.svg | 1 +
.../fontawesome-free/svgs/brands/innosoft.svg | 1 +
.../svgs/brands/instagram-square.svg | 1 +
.../svgs/brands/instagram.svg | 1 +
.../fontawesome-free/svgs/brands/instalod.svg | 1 +
.../fontawesome-free/svgs/brands/intercom.svg | 1 +
.../svgs/brands/internet-explorer.svg | 1 +
.../fontawesome-free/svgs/brands/invision.svg | 1 +
.../fontawesome-free/svgs/brands/ioxhost.svg | 1 +
.../fontawesome-free/svgs/brands/itch-io.svg | 1 +
.../svgs/brands/itunes-note.svg | 1 +
.../fontawesome-free/svgs/brands/itunes.svg | 1 +
.../fontawesome-free/svgs/brands/java.svg | 1 +
.../svgs/brands/jedi-order.svg | 1 +
.../fontawesome-free/svgs/brands/jenkins.svg | 1 +
.../fontawesome-free/svgs/brands/jira.svg | 1 +
.../fontawesome-free/svgs/brands/joget.svg | 1 +
.../fontawesome-free/svgs/brands/joomla.svg | 1 +
.../svgs/brands/js-square.svg | 1 +
.../fontawesome-free/svgs/brands/js.svg | 1 +
.../fontawesome-free/svgs/brands/jsfiddle.svg | 1 +
.../fontawesome-free/svgs/brands/kaggle.svg | 1 +
.../fontawesome-free/svgs/brands/keybase.svg | 1 +
.../fontawesome-free/svgs/brands/keycdn.svg | 1 +
.../svgs/brands/kickstarter-k.svg | 1 +
.../svgs/brands/kickstarter.svg | 1 +
.../fontawesome-free/svgs/brands/korvue.svg | 1 +
.../fontawesome-free/svgs/brands/laravel.svg | 1 +
.../svgs/brands/lastfm-square.svg | 1 +
.../fontawesome-free/svgs/brands/lastfm.svg | 1 +
.../fontawesome-free/svgs/brands/leanpub.svg | 1 +
.../fontawesome-free/svgs/brands/less.svg | 1 +
.../fontawesome-free/svgs/brands/line.svg | 1 +
.../svgs/brands/linkedin-in.svg | 1 +
.../fontawesome-free/svgs/brands/linkedin.svg | 1 +
.../fontawesome-free/svgs/brands/linode.svg | 1 +
.../fontawesome-free/svgs/brands/linux.svg | 1 +
.../fontawesome-free/svgs/brands/lyft.svg | 1 +
.../fontawesome-free/svgs/brands/magento.svg | 1 +
.../svgs/brands/mailchimp.svg | 1 +
.../svgs/brands/mandalorian.svg | 1 +
.../fontawesome-free/svgs/brands/markdown.svg | 1 +
.../fontawesome-free/svgs/brands/mastodon.svg | 1 +
.../fontawesome-free/svgs/brands/maxcdn.svg | 1 +
.../fontawesome-free/svgs/brands/mdb.svg | 1 +
.../fontawesome-free/svgs/brands/medapps.svg | 1 +
.../fontawesome-free/svgs/brands/medium-m.svg | 1 +
.../fontawesome-free/svgs/brands/medium.svg | 1 +
.../fontawesome-free/svgs/brands/medrt.svg | 1 +
.../fontawesome-free/svgs/brands/meetup.svg | 1 +
.../fontawesome-free/svgs/brands/megaport.svg | 1 +
.../fontawesome-free/svgs/brands/mendeley.svg | 1 +
.../svgs/brands/microblog.svg | 1 +
.../svgs/brands/microsoft.svg | 1 +
.../fontawesome-free/svgs/brands/mix.svg | 1 +
.../fontawesome-free/svgs/brands/mixcloud.svg | 1 +
.../fontawesome-free/svgs/brands/mixer.svg | 1 +
.../fontawesome-free/svgs/brands/mizuni.svg | 1 +
.../fontawesome-free/svgs/brands/modx.svg | 1 +
.../fontawesome-free/svgs/brands/monero.svg | 1 +
.../fontawesome-free/svgs/brands/napster.svg | 1 +
.../fontawesome-free/svgs/brands/neos.svg | 1 +
.../fontawesome-free/svgs/brands/nimblr.svg | 1 +
.../fontawesome-free/svgs/brands/node-js.svg | 1 +
.../fontawesome-free/svgs/brands/node.svg | 1 +
.../fontawesome-free/svgs/brands/npm.svg | 1 +
.../fontawesome-free/svgs/brands/ns8.svg | 1 +
.../svgs/brands/nutritionix.svg | 1 +
.../svgs/brands/octopus-deploy.svg | 1 +
.../svgs/brands/odnoklassniki-square.svg | 1 +
.../svgs/brands/odnoklassniki.svg | 1 +
.../svgs/brands/old-republic.svg | 1 +
.../fontawesome-free/svgs/brands/opencart.svg | 1 +
.../fontawesome-free/svgs/brands/openid.svg | 1 +
.../fontawesome-free/svgs/brands/opera.svg | 1 +
.../svgs/brands/optin-monster.svg | 1 +
.../fontawesome-free/svgs/brands/orcid.svg | 1 +
.../fontawesome-free/svgs/brands/osi.svg | 1 +
.../fontawesome-free/svgs/brands/page4.svg | 1 +
.../svgs/brands/pagelines.svg | 1 +
.../fontawesome-free/svgs/brands/palfed.svg | 1 +
.../fontawesome-free/svgs/brands/patreon.svg | 1 +
.../fontawesome-free/svgs/brands/paypal.svg | 1 +
.../svgs/brands/penny-arcade.svg | 1 +
.../fontawesome-free/svgs/brands/perbyte.svg | 1 +
.../svgs/brands/periscope.svg | 1 +
.../svgs/brands/phabricator.svg | 1 +
.../svgs/brands/phoenix-framework.svg | 1 +
.../svgs/brands/phoenix-squadron.svg | 1 +
.../fontawesome-free/svgs/brands/php.svg | 1 +
.../svgs/brands/pied-piper-alt.svg | 1 +
.../svgs/brands/pied-piper-hat.svg | 1 +
.../svgs/brands/pied-piper-pp.svg | 1 +
.../svgs/brands/pied-piper-square.svg | 1 +
.../svgs/brands/pied-piper.svg | 1 +
.../svgs/brands/pinterest-p.svg | 1 +
.../svgs/brands/pinterest-square.svg | 1 +
.../svgs/brands/pinterest.svg | 1 +
.../svgs/brands/playstation.svg | 1 +
.../svgs/brands/product-hunt.svg | 1 +
.../fontawesome-free/svgs/brands/pushed.svg | 1 +
.../fontawesome-free/svgs/brands/python.svg | 1 +
.../fontawesome-free/svgs/brands/qq.svg | 1 +
.../svgs/brands/quinscape.svg | 1 +
.../fontawesome-free/svgs/brands/quora.svg | 1 +
.../svgs/brands/r-project.svg | 1 +
.../svgs/brands/raspberry-pi.svg | 1 +
.../fontawesome-free/svgs/brands/ravelry.svg | 1 +
.../fontawesome-free/svgs/brands/react.svg | 1 +
.../svgs/brands/reacteurope.svg | 1 +
.../fontawesome-free/svgs/brands/readme.svg | 1 +
.../fontawesome-free/svgs/brands/rebel.svg | 1 +
.../svgs/brands/red-river.svg | 1 +
.../svgs/brands/reddit-alien.svg | 1 +
.../svgs/brands/reddit-square.svg | 1 +
.../fontawesome-free/svgs/brands/reddit.svg | 1 +
.../fontawesome-free/svgs/brands/redhat.svg | 1 +
.../fontawesome-free/svgs/brands/renren.svg | 1 +
.../fontawesome-free/svgs/brands/replyd.svg | 1 +
.../svgs/brands/researchgate.svg | 1 +
.../svgs/brands/resolving.svg | 1 +
.../fontawesome-free/svgs/brands/rev.svg | 1 +
.../svgs/brands/rocketchat.svg | 1 +
.../fontawesome-free/svgs/brands/rockrms.svg | 1 +
.../fontawesome-free/svgs/brands/rust.svg | 1 +
.../fontawesome-free/svgs/brands/safari.svg | 1 +
.../svgs/brands/salesforce.svg | 1 +
.../fontawesome-free/svgs/brands/sass.svg | 1 +
.../fontawesome-free/svgs/brands/schlix.svg | 1 +
.../fontawesome-free/svgs/brands/scribd.svg | 1 +
.../svgs/brands/searchengin.svg | 1 +
.../fontawesome-free/svgs/brands/sellcast.svg | 1 +
.../fontawesome-free/svgs/brands/sellsy.svg | 1 +
.../svgs/brands/servicestack.svg | 1 +
.../svgs/brands/shirtsinbulk.svg | 1 +
.../fontawesome-free/svgs/brands/shopify.svg | 1 +
.../fontawesome-free/svgs/brands/shopware.svg | 1 +
.../svgs/brands/simplybuilt.svg | 1 +
.../fontawesome-free/svgs/brands/sistrix.svg | 1 +
.../fontawesome-free/svgs/brands/sith.svg | 1 +
.../fontawesome-free/svgs/brands/sketch.svg | 1 +
.../fontawesome-free/svgs/brands/skyatlas.svg | 1 +
.../fontawesome-free/svgs/brands/skype.svg | 1 +
.../svgs/brands/slack-hash.svg | 1 +
.../fontawesome-free/svgs/brands/slack.svg | 1 +
.../svgs/brands/slideshare.svg | 1 +
.../svgs/brands/snapchat-ghost.svg | 1 +
.../svgs/brands/snapchat-square.svg | 1 +
.../fontawesome-free/svgs/brands/snapchat.svg | 1 +
.../svgs/brands/soundcloud.svg | 1 +
.../svgs/brands/sourcetree.svg | 1 +
.../fontawesome-free/svgs/brands/speakap.svg | 1 +
.../svgs/brands/speaker-deck.svg | 1 +
.../fontawesome-free/svgs/brands/spotify.svg | 1 +
.../svgs/brands/squarespace.svg | 1 +
.../svgs/brands/stack-exchange.svg | 1 +
.../svgs/brands/stack-overflow.svg | 1 +
.../svgs/brands/stackpath.svg | 1 +
.../svgs/brands/staylinked.svg | 1 +
.../svgs/brands/steam-square.svg | 1 +
.../svgs/brands/steam-symbol.svg | 1 +
.../fontawesome-free/svgs/brands/steam.svg | 1 +
.../svgs/brands/sticker-mule.svg | 1 +
.../fontawesome-free/svgs/brands/strava.svg | 1 +
.../fontawesome-free/svgs/brands/stripe-s.svg | 1 +
.../fontawesome-free/svgs/brands/stripe.svg | 1 +
.../svgs/brands/studiovinari.svg | 1 +
.../svgs/brands/stumbleupon-circle.svg | 1 +
.../svgs/brands/stumbleupon.svg | 1 +
.../svgs/brands/superpowers.svg | 1 +
.../fontawesome-free/svgs/brands/supple.svg | 1 +
.../fontawesome-free/svgs/brands/suse.svg | 1 +
.../fontawesome-free/svgs/brands/swift.svg | 1 +
.../fontawesome-free/svgs/brands/symfony.svg | 1 +
.../svgs/brands/teamspeak.svg | 1 +
.../svgs/brands/telegram-plane.svg | 1 +
.../fontawesome-free/svgs/brands/telegram.svg | 1 +
.../svgs/brands/tencent-weibo.svg | 1 +
.../svgs/brands/the-red-yeti.svg | 1 +
.../fontawesome-free/svgs/brands/themeco.svg | 1 +
.../svgs/brands/themeisle.svg | 1 +
.../svgs/brands/think-peaks.svg | 1 +
.../fontawesome-free/svgs/brands/tiktok.svg | 1 +
.../svgs/brands/trade-federation.svg | 1 +
.../fontawesome-free/svgs/brands/trello.svg | 1 +
.../svgs/brands/tripadvisor.svg | 1 +
.../svgs/brands/tumblr-square.svg | 1 +
.../fontawesome-free/svgs/brands/tumblr.svg | 1 +
.../fontawesome-free/svgs/brands/twitch.svg | 1 +
.../svgs/brands/twitter-square.svg | 1 +
.../fontawesome-free/svgs/brands/twitter.svg | 1 +
.../fontawesome-free/svgs/brands/typo3.svg | 1 +
.../fontawesome-free/svgs/brands/uber.svg | 1 +
.../fontawesome-free/svgs/brands/ubuntu.svg | 1 +
.../fontawesome-free/svgs/brands/uikit.svg | 1 +
.../fontawesome-free/svgs/brands/umbraco.svg | 1 +
.../svgs/brands/uncharted.svg | 1 +
.../svgs/brands/uniregistry.svg | 1 +
.../fontawesome-free/svgs/brands/unity.svg | 1 +
.../fontawesome-free/svgs/brands/unsplash.svg | 1 +
.../fontawesome-free/svgs/brands/untappd.svg | 1 +
.../fontawesome-free/svgs/brands/ups.svg | 1 +
.../fontawesome-free/svgs/brands/usb.svg | 1 +
.../fontawesome-free/svgs/brands/usps.svg | 1 +
.../fontawesome-free/svgs/brands/ussunnah.svg | 1 +
.../fontawesome-free/svgs/brands/vaadin.svg | 1 +
.../fontawesome-free/svgs/brands/viacoin.svg | 1 +
.../svgs/brands/viadeo-square.svg | 1 +
.../fontawesome-free/svgs/brands/viadeo.svg | 1 +
.../fontawesome-free/svgs/brands/viber.svg | 1 +
.../svgs/brands/vimeo-square.svg | 1 +
.../fontawesome-free/svgs/brands/vimeo-v.svg | 1 +
.../fontawesome-free/svgs/brands/vimeo.svg | 1 +
.../fontawesome-free/svgs/brands/vine.svg | 1 +
.../fontawesome-free/svgs/brands/vk.svg | 1 +
.../fontawesome-free/svgs/brands/vnv.svg | 1 +
.../fontawesome-free/svgs/brands/vuejs.svg | 1 +
.../svgs/brands/watchman-monitoring.svg | 1 +
.../fontawesome-free/svgs/brands/waze.svg | 1 +
.../fontawesome-free/svgs/brands/weebly.svg | 1 +
.../fontawesome-free/svgs/brands/weibo.svg | 1 +
.../fontawesome-free/svgs/brands/weixin.svg | 1 +
.../svgs/brands/whatsapp-square.svg | 1 +
.../fontawesome-free/svgs/brands/whatsapp.svg | 1 +
.../fontawesome-free/svgs/brands/whmcs.svg | 1 +
.../svgs/brands/wikipedia-w.svg | 1 +
.../fontawesome-free/svgs/brands/windows.svg | 1 +
.../fontawesome-free/svgs/brands/wix.svg | 1 +
.../svgs/brands/wizards-of-the-coast.svg | 1 +
.../fontawesome-free/svgs/brands/wodu.svg | 1 +
.../svgs/brands/wolf-pack-battalion.svg | 1 +
.../svgs/brands/wordpress-simple.svg | 1 +
.../svgs/brands/wordpress.svg | 1 +
.../svgs/brands/wpbeginner.svg | 1 +
.../svgs/brands/wpexplorer.svg | 1 +
.../fontawesome-free/svgs/brands/wpforms.svg | 1 +
.../fontawesome-free/svgs/brands/wpressr.svg | 1 +
.../fontawesome-free/svgs/brands/xbox.svg | 1 +
.../svgs/brands/xing-square.svg | 1 +
.../fontawesome-free/svgs/brands/xing.svg | 1 +
.../svgs/brands/y-combinator.svg | 1 +
.../fontawesome-free/svgs/brands/yahoo.svg | 1 +
.../fontawesome-free/svgs/brands/yammer.svg | 1 +
.../svgs/brands/yandex-international.svg | 1 +
.../fontawesome-free/svgs/brands/yandex.svg | 1 +
.../fontawesome-free/svgs/brands/yarn.svg | 1 +
.../fontawesome-free/svgs/brands/yelp.svg | 1 +
.../fontawesome-free/svgs/brands/yoast.svg | 1 +
.../svgs/brands/youtube-square.svg | 1 +
.../fontawesome-free/svgs/brands/youtube.svg | 1 +
.../fontawesome-free/svgs/brands/zhihu.svg | 1 +
.../svgs/regular/address-book.svg | 1 +
.../svgs/regular/address-card.svg | 1 +
.../fontawesome-free/svgs/regular/angry.svg | 1 +
.../svgs/regular/arrow-alt-circle-down.svg | 1 +
.../svgs/regular/arrow-alt-circle-left.svg | 1 +
.../svgs/regular/arrow-alt-circle-right.svg | 1 +
.../svgs/regular/arrow-alt-circle-up.svg | 1 +
.../svgs/regular/bell-slash.svg | 1 +
.../fontawesome-free/svgs/regular/bell.svg | 1 +
.../svgs/regular/bookmark.svg | 1 +
.../svgs/regular/building.svg | 1 +
.../svgs/regular/calendar-alt.svg | 1 +
.../svgs/regular/calendar-check.svg | 1 +
.../svgs/regular/calendar-minus.svg | 1 +
.../svgs/regular/calendar-plus.svg | 1 +
.../svgs/regular/calendar-times.svg | 1 +
.../svgs/regular/calendar.svg | 1 +
.../svgs/regular/caret-square-down.svg | 1 +
.../svgs/regular/caret-square-left.svg | 1 +
.../svgs/regular/caret-square-right.svg | 1 +
.../svgs/regular/caret-square-up.svg | 1 +
.../svgs/regular/chart-bar.svg | 1 +
.../svgs/regular/check-circle.svg | 1 +
.../svgs/regular/check-square.svg | 1 +
.../fontawesome-free/svgs/regular/circle.svg | 1 +
.../svgs/regular/clipboard.svg | 1 +
.../fontawesome-free/svgs/regular/clock.svg | 1 +
.../fontawesome-free/svgs/regular/clone.svg | 1 +
.../svgs/regular/closed-captioning.svg | 1 +
.../svgs/regular/comment-alt.svg | 1 +
.../svgs/regular/comment-dots.svg | 1 +
.../fontawesome-free/svgs/regular/comment.svg | 1 +
.../svgs/regular/comments.svg | 1 +
.../fontawesome-free/svgs/regular/compass.svg | 1 +
.../fontawesome-free/svgs/regular/copy.svg | 1 +
.../svgs/regular/copyright.svg | 1 +
.../svgs/regular/credit-card.svg | 1 +
.../fontawesome-free/svgs/regular/dizzy.svg | 1 +
.../svgs/regular/dot-circle.svg | 1 +
.../fontawesome-free/svgs/regular/edit.svg | 1 +
.../svgs/regular/envelope-open.svg | 1 +
.../svgs/regular/envelope.svg | 1 +
.../svgs/regular/eye-slash.svg | 1 +
.../fontawesome-free/svgs/regular/eye.svg | 1 +
.../svgs/regular/file-alt.svg | 1 +
.../svgs/regular/file-archive.svg | 1 +
.../svgs/regular/file-audio.svg | 1 +
.../svgs/regular/file-code.svg | 1 +
.../svgs/regular/file-excel.svg | 1 +
.../svgs/regular/file-image.svg | 1 +
.../svgs/regular/file-pdf.svg | 1 +
.../svgs/regular/file-powerpoint.svg | 1 +
.../svgs/regular/file-video.svg | 1 +
.../svgs/regular/file-word.svg | 1 +
.../fontawesome-free/svgs/regular/file.svg | 1 +
.../fontawesome-free/svgs/regular/flag.svg | 1 +
.../fontawesome-free/svgs/regular/flushed.svg | 1 +
.../svgs/regular/folder-open.svg | 1 +
.../fontawesome-free/svgs/regular/folder.svg | 1 +
.../svgs/regular/font-awesome-logo-full.svg | 1 +
.../svgs/regular/frown-open.svg | 1 +
.../fontawesome-free/svgs/regular/frown.svg | 1 +
.../fontawesome-free/svgs/regular/futbol.svg | 1 +
.../fontawesome-free/svgs/regular/gem.svg | 1 +
.../fontawesome-free/svgs/regular/grimace.svg | 1 +
.../svgs/regular/grin-alt.svg | 1 +
.../svgs/regular/grin-beam-sweat.svg | 1 +
.../svgs/regular/grin-beam.svg | 1 +
.../svgs/regular/grin-hearts.svg | 1 +
.../svgs/regular/grin-squint-tears.svg | 1 +
.../svgs/regular/grin-squint.svg | 1 +
.../svgs/regular/grin-stars.svg | 1 +
.../svgs/regular/grin-tears.svg | 1 +
.../svgs/regular/grin-tongue-squint.svg | 1 +
.../svgs/regular/grin-tongue-wink.svg | 1 +
.../svgs/regular/grin-tongue.svg | 1 +
.../svgs/regular/grin-wink.svg | 1 +
.../fontawesome-free/svgs/regular/grin.svg | 1 +
.../svgs/regular/hand-lizard.svg | 1 +
.../svgs/regular/hand-paper.svg | 1 +
.../svgs/regular/hand-peace.svg | 1 +
.../svgs/regular/hand-point-down.svg | 1 +
.../svgs/regular/hand-point-left.svg | 1 +
.../svgs/regular/hand-point-right.svg | 1 +
.../svgs/regular/hand-point-up.svg | 1 +
.../svgs/regular/hand-pointer.svg | 1 +
.../svgs/regular/hand-rock.svg | 1 +
.../svgs/regular/hand-scissors.svg | 1 +
.../svgs/regular/hand-spock.svg | 1 +
.../svgs/regular/handshake.svg | 1 +
.../fontawesome-free/svgs/regular/hdd.svg | 1 +
.../fontawesome-free/svgs/regular/heart.svg | 1 +
.../svgs/regular/hospital.svg | 1 +
.../svgs/regular/hourglass.svg | 1 +
.../svgs/regular/id-badge.svg | 1 +
.../fontawesome-free/svgs/regular/id-card.svg | 1 +
.../fontawesome-free/svgs/regular/image.svg | 1 +
.../fontawesome-free/svgs/regular/images.svg | 1 +
.../svgs/regular/keyboard.svg | 1 +
.../svgs/regular/kiss-beam.svg | 1 +
.../svgs/regular/kiss-wink-heart.svg | 1 +
.../fontawesome-free/svgs/regular/kiss.svg | 1 +
.../svgs/regular/laugh-beam.svg | 1 +
.../svgs/regular/laugh-squint.svg | 1 +
.../svgs/regular/laugh-wink.svg | 1 +
.../fontawesome-free/svgs/regular/laugh.svg | 1 +
.../fontawesome-free/svgs/regular/lemon.svg | 1 +
.../svgs/regular/life-ring.svg | 1 +
.../svgs/regular/lightbulb.svg | 1 +
.../svgs/regular/list-alt.svg | 1 +
.../fontawesome-free/svgs/regular/map.svg | 1 +
.../svgs/regular/meh-blank.svg | 1 +
.../svgs/regular/meh-rolling-eyes.svg | 1 +
.../fontawesome-free/svgs/regular/meh.svg | 1 +
.../svgs/regular/minus-square.svg | 1 +
.../svgs/regular/money-bill-alt.svg | 1 +
.../fontawesome-free/svgs/regular/moon.svg | 1 +
.../svgs/regular/newspaper.svg | 1 +
.../svgs/regular/object-group.svg | 1 +
.../svgs/regular/object-ungroup.svg | 1 +
.../svgs/regular/paper-plane.svg | 1 +
.../svgs/regular/pause-circle.svg | 1 +
.../svgs/regular/play-circle.svg | 1 +
.../svgs/regular/plus-square.svg | 1 +
.../svgs/regular/question-circle.svg | 1 +
.../svgs/regular/registered.svg | 1 +
.../fontawesome-free/svgs/regular/sad-cry.svg | 1 +
.../svgs/regular/sad-tear.svg | 1 +
.../fontawesome-free/svgs/regular/save.svg | 1 +
.../svgs/regular/share-square.svg | 1 +
.../svgs/regular/smile-beam.svg | 1 +
.../svgs/regular/smile-wink.svg | 1 +
.../fontawesome-free/svgs/regular/smile.svg | 1 +
.../svgs/regular/snowflake.svg | 1 +
.../fontawesome-free/svgs/regular/square.svg | 1 +
.../svgs/regular/star-half.svg | 1 +
.../fontawesome-free/svgs/regular/star.svg | 1 +
.../svgs/regular/sticky-note.svg | 1 +
.../svgs/regular/stop-circle.svg | 1 +
.../fontawesome-free/svgs/regular/sun.svg | 1 +
.../svgs/regular/surprise.svg | 1 +
.../svgs/regular/thumbs-down.svg | 1 +
.../svgs/regular/thumbs-up.svg | 1 +
.../svgs/regular/times-circle.svg | 1 +
.../fontawesome-free/svgs/regular/tired.svg | 1 +
.../svgs/regular/trash-alt.svg | 1 +
.../svgs/regular/user-circle.svg | 1 +
.../fontawesome-free/svgs/regular/user.svg | 1 +
.../svgs/regular/window-close.svg | 1 +
.../svgs/regular/window-maximize.svg | 1 +
.../svgs/regular/window-minimize.svg | 1 +
.../svgs/regular/window-restore.svg | 1 +
.../vendor/fontawesome-free/svgs/solid/ad.svg | 1 +
.../svgs/solid/address-book.svg | 1 +
.../svgs/solid/address-card.svg | 1 +
.../fontawesome-free/svgs/solid/adjust.svg | 1 +
.../svgs/solid/air-freshener.svg | 1 +
.../svgs/solid/align-center.svg | 1 +
.../svgs/solid/align-justify.svg | 1 +
.../svgs/solid/align-left.svg | 1 +
.../svgs/solid/align-right.svg | 1 +
.../fontawesome-free/svgs/solid/allergies.svg | 1 +
.../fontawesome-free/svgs/solid/ambulance.svg | 1 +
.../american-sign-language-interpreting.svg | 1 +
.../fontawesome-free/svgs/solid/anchor.svg | 1 +
.../svgs/solid/angle-double-down.svg | 1 +
.../svgs/solid/angle-double-left.svg | 1 +
.../svgs/solid/angle-double-right.svg | 1 +
.../svgs/solid/angle-double-up.svg | 1 +
.../svgs/solid/angle-down.svg | 1 +
.../svgs/solid/angle-left.svg | 1 +
.../svgs/solid/angle-right.svg | 1 +
.../fontawesome-free/svgs/solid/angle-up.svg | 1 +
.../fontawesome-free/svgs/solid/angry.svg | 1 +
.../fontawesome-free/svgs/solid/ankh.svg | 1 +
.../fontawesome-free/svgs/solid/apple-alt.svg | 1 +
.../fontawesome-free/svgs/solid/archive.svg | 1 +
.../fontawesome-free/svgs/solid/archway.svg | 1 +
.../svgs/solid/arrow-alt-circle-down.svg | 1 +
.../svgs/solid/arrow-alt-circle-left.svg | 1 +
.../svgs/solid/arrow-alt-circle-right.svg | 1 +
.../svgs/solid/arrow-alt-circle-up.svg | 1 +
.../svgs/solid/arrow-circle-down.svg | 1 +
.../svgs/solid/arrow-circle-left.svg | 1 +
.../svgs/solid/arrow-circle-right.svg | 1 +
.../svgs/solid/arrow-circle-up.svg | 1 +
.../svgs/solid/arrow-down.svg | 1 +
.../svgs/solid/arrow-left.svg | 1 +
.../svgs/solid/arrow-right.svg | 1 +
.../fontawesome-free/svgs/solid/arrow-up.svg | 1 +
.../svgs/solid/arrows-alt-h.svg | 1 +
.../svgs/solid/arrows-alt-v.svg | 1 +
.../svgs/solid/arrows-alt.svg | 1 +
.../solid/assistive-listening-systems.svg | 1 +
.../fontawesome-free/svgs/solid/asterisk.svg | 1 +
.../vendor/fontawesome-free/svgs/solid/at.svg | 1 +
.../fontawesome-free/svgs/solid/atlas.svg | 1 +
.../fontawesome-free/svgs/solid/atom.svg | 1 +
.../svgs/solid/audio-description.svg | 1 +
.../fontawesome-free/svgs/solid/award.svg | 1 +
.../svgs/solid/baby-carriage.svg | 1 +
.../fontawesome-free/svgs/solid/baby.svg | 1 +
.../fontawesome-free/svgs/solid/backspace.svg | 1 +
.../fontawesome-free/svgs/solid/backward.svg | 1 +
.../fontawesome-free/svgs/solid/bacon.svg | 1 +
.../fontawesome-free/svgs/solid/bacteria.svg | 1 +
.../fontawesome-free/svgs/solid/bacterium.svg | 1 +
.../fontawesome-free/svgs/solid/bahai.svg | 1 +
.../svgs/solid/balance-scale-left.svg | 1 +
.../svgs/solid/balance-scale-right.svg | 1 +
.../svgs/solid/balance-scale.svg | 1 +
.../fontawesome-free/svgs/solid/ban.svg | 1 +
.../fontawesome-free/svgs/solid/band-aid.svg | 1 +
.../fontawesome-free/svgs/solid/barcode.svg | 1 +
.../fontawesome-free/svgs/solid/bars.svg | 1 +
.../svgs/solid/baseball-ball.svg | 1 +
.../svgs/solid/basketball-ball.svg | 1 +
.../fontawesome-free/svgs/solid/bath.svg | 1 +
.../svgs/solid/battery-empty.svg | 1 +
.../svgs/solid/battery-full.svg | 1 +
.../svgs/solid/battery-half.svg | 1 +
.../svgs/solid/battery-quarter.svg | 1 +
.../svgs/solid/battery-three-quarters.svg | 1 +
.../fontawesome-free/svgs/solid/bed.svg | 1 +
.../fontawesome-free/svgs/solid/beer.svg | 1 +
.../svgs/solid/bell-slash.svg | 1 +
.../fontawesome-free/svgs/solid/bell.svg | 1 +
.../svgs/solid/bezier-curve.svg | 1 +
.../fontawesome-free/svgs/solid/bible.svg | 1 +
.../fontawesome-free/svgs/solid/bicycle.svg | 1 +
.../fontawesome-free/svgs/solid/biking.svg | 1 +
.../svgs/solid/binoculars.svg | 1 +
.../fontawesome-free/svgs/solid/biohazard.svg | 1 +
.../svgs/solid/birthday-cake.svg | 1 +
.../svgs/solid/blender-phone.svg | 1 +
.../fontawesome-free/svgs/solid/blender.svg | 1 +
.../fontawesome-free/svgs/solid/blind.svg | 1 +
.../fontawesome-free/svgs/solid/blog.svg | 1 +
.../fontawesome-free/svgs/solid/bold.svg | 1 +
.../fontawesome-free/svgs/solid/bolt.svg | 1 +
.../fontawesome-free/svgs/solid/bomb.svg | 1 +
.../fontawesome-free/svgs/solid/bone.svg | 1 +
.../fontawesome-free/svgs/solid/bong.svg | 1 +
.../fontawesome-free/svgs/solid/book-dead.svg | 1 +
.../svgs/solid/book-medical.svg | 1 +
.../fontawesome-free/svgs/solid/book-open.svg | 1 +
.../svgs/solid/book-reader.svg | 1 +
.../fontawesome-free/svgs/solid/book.svg | 1 +
.../fontawesome-free/svgs/solid/bookmark.svg | 1 +
.../svgs/solid/border-all.svg | 1 +
.../svgs/solid/border-none.svg | 1 +
.../svgs/solid/border-style.svg | 1 +
.../svgs/solid/bowling-ball.svg | 1 +
.../fontawesome-free/svgs/solid/box-open.svg | 1 +
.../svgs/solid/box-tissue.svg | 1 +
.../fontawesome-free/svgs/solid/box.svg | 1 +
.../fontawesome-free/svgs/solid/boxes.svg | 1 +
.../fontawesome-free/svgs/solid/braille.svg | 1 +
.../fontawesome-free/svgs/solid/brain.svg | 1 +
.../svgs/solid/bread-slice.svg | 1 +
.../svgs/solid/briefcase-medical.svg | 1 +
.../fontawesome-free/svgs/solid/briefcase.svg | 1 +
.../svgs/solid/broadcast-tower.svg | 1 +
.../fontawesome-free/svgs/solid/broom.svg | 1 +
.../fontawesome-free/svgs/solid/brush.svg | 1 +
.../fontawesome-free/svgs/solid/bug.svg | 1 +
.../fontawesome-free/svgs/solid/building.svg | 1 +
.../fontawesome-free/svgs/solid/bullhorn.svg | 1 +
.../fontawesome-free/svgs/solid/bullseye.svg | 1 +
.../fontawesome-free/svgs/solid/burn.svg | 1 +
.../fontawesome-free/svgs/solid/bus-alt.svg | 1 +
.../fontawesome-free/svgs/solid/bus.svg | 1 +
.../svgs/solid/business-time.svg | 1 +
.../svgs/solid/calculator.svg | 1 +
.../svgs/solid/calendar-alt.svg | 1 +
.../svgs/solid/calendar-check.svg | 1 +
.../svgs/solid/calendar-day.svg | 1 +
.../svgs/solid/calendar-minus.svg | 1 +
.../svgs/solid/calendar-plus.svg | 1 +
.../svgs/solid/calendar-times.svg | 1 +
.../svgs/solid/calendar-week.svg | 1 +
.../fontawesome-free/svgs/solid/calendar.svg | 1 +
.../svgs/solid/camera-retro.svg | 1 +
.../fontawesome-free/svgs/solid/camera.svg | 1 +
.../svgs/solid/campground.svg | 1 +
.../svgs/solid/candy-cane.svg | 1 +
.../fontawesome-free/svgs/solid/cannabis.svg | 1 +
.../fontawesome-free/svgs/solid/capsules.svg | 1 +
.../fontawesome-free/svgs/solid/car-alt.svg | 1 +
.../svgs/solid/car-battery.svg | 1 +
.../fontawesome-free/svgs/solid/car-crash.svg | 1 +
.../fontawesome-free/svgs/solid/car-side.svg | 1 +
.../fontawesome-free/svgs/solid/car.svg | 1 +
.../fontawesome-free/svgs/solid/caravan.svg | 1 +
.../svgs/solid/caret-down.svg | 1 +
.../svgs/solid/caret-left.svg | 1 +
.../svgs/solid/caret-right.svg | 1 +
.../svgs/solid/caret-square-down.svg | 1 +
.../svgs/solid/caret-square-left.svg | 1 +
.../svgs/solid/caret-square-right.svg | 1 +
.../svgs/solid/caret-square-up.svg | 1 +
.../fontawesome-free/svgs/solid/caret-up.svg | 1 +
.../fontawesome-free/svgs/solid/carrot.svg | 1 +
.../svgs/solid/cart-arrow-down.svg | 1 +
.../fontawesome-free/svgs/solid/cart-plus.svg | 1 +
.../svgs/solid/cash-register.svg | 1 +
.../fontawesome-free/svgs/solid/cat.svg | 1 +
.../svgs/solid/certificate.svg | 1 +
.../fontawesome-free/svgs/solid/chair.svg | 1 +
.../svgs/solid/chalkboard-teacher.svg | 1 +
.../svgs/solid/chalkboard.svg | 1 +
.../svgs/solid/charging-station.svg | 1 +
.../svgs/solid/chart-area.svg | 1 +
.../fontawesome-free/svgs/solid/chart-bar.svg | 1 +
.../svgs/solid/chart-line.svg | 1 +
.../fontawesome-free/svgs/solid/chart-pie.svg | 1 +
.../svgs/solid/check-circle.svg | 1 +
.../svgs/solid/check-double.svg | 1 +
.../svgs/solid/check-square.svg | 1 +
.../fontawesome-free/svgs/solid/check.svg | 1 +
.../fontawesome-free/svgs/solid/cheese.svg | 1 +
.../svgs/solid/chess-bishop.svg | 1 +
.../svgs/solid/chess-board.svg | 1 +
.../svgs/solid/chess-king.svg | 1 +
.../svgs/solid/chess-knight.svg | 1 +
.../svgs/solid/chess-pawn.svg | 1 +
.../svgs/solid/chess-queen.svg | 1 +
.../svgs/solid/chess-rook.svg | 1 +
.../fontawesome-free/svgs/solid/chess.svg | 1 +
.../svgs/solid/chevron-circle-down.svg | 1 +
.../svgs/solid/chevron-circle-left.svg | 1 +
.../svgs/solid/chevron-circle-right.svg | 1 +
.../svgs/solid/chevron-circle-up.svg | 1 +
.../svgs/solid/chevron-down.svg | 1 +
.../svgs/solid/chevron-left.svg | 1 +
.../svgs/solid/chevron-right.svg | 1 +
.../svgs/solid/chevron-up.svg | 1 +
.../fontawesome-free/svgs/solid/child.svg | 1 +
.../fontawesome-free/svgs/solid/church.svg | 1 +
.../svgs/solid/circle-notch.svg | 1 +
.../fontawesome-free/svgs/solid/circle.svg | 1 +
.../fontawesome-free/svgs/solid/city.svg | 1 +
.../svgs/solid/clinic-medical.svg | 1 +
.../svgs/solid/clipboard-check.svg | 1 +
.../svgs/solid/clipboard-list.svg | 1 +
.../fontawesome-free/svgs/solid/clipboard.svg | 1 +
.../fontawesome-free/svgs/solid/clock.svg | 1 +
.../fontawesome-free/svgs/solid/clone.svg | 1 +
.../svgs/solid/closed-captioning.svg | 1 +
.../svgs/solid/cloud-download-alt.svg | 1 +
.../svgs/solid/cloud-meatball.svg | 1 +
.../svgs/solid/cloud-moon-rain.svg | 1 +
.../svgs/solid/cloud-moon.svg | 1 +
.../svgs/solid/cloud-rain.svg | 1 +
.../svgs/solid/cloud-showers-heavy.svg | 1 +
.../svgs/solid/cloud-sun-rain.svg | 1 +
.../fontawesome-free/svgs/solid/cloud-sun.svg | 1 +
.../svgs/solid/cloud-upload-alt.svg | 1 +
.../fontawesome-free/svgs/solid/cloud.svg | 1 +
.../fontawesome-free/svgs/solid/cocktail.svg | 1 +
.../svgs/solid/code-branch.svg | 1 +
.../fontawesome-free/svgs/solid/code.svg | 1 +
.../fontawesome-free/svgs/solid/coffee.svg | 1 +
.../fontawesome-free/svgs/solid/cog.svg | 1 +
.../fontawesome-free/svgs/solid/cogs.svg | 1 +
.../fontawesome-free/svgs/solid/coins.svg | 1 +
.../fontawesome-free/svgs/solid/columns.svg | 1 +
.../svgs/solid/comment-alt.svg | 1 +
.../svgs/solid/comment-dollar.svg | 1 +
.../svgs/solid/comment-dots.svg | 1 +
.../svgs/solid/comment-medical.svg | 1 +
.../svgs/solid/comment-slash.svg | 1 +
.../fontawesome-free/svgs/solid/comment.svg | 1 +
.../svgs/solid/comments-dollar.svg | 1 +
.../fontawesome-free/svgs/solid/comments.svg | 1 +
.../svgs/solid/compact-disc.svg | 1 +
.../fontawesome-free/svgs/solid/compass.svg | 1 +
.../svgs/solid/compress-alt.svg | 1 +
.../svgs/solid/compress-arrows-alt.svg | 1 +
.../fontawesome-free/svgs/solid/compress.svg | 1 +
.../svgs/solid/concierge-bell.svg | 1 +
.../svgs/solid/cookie-bite.svg | 1 +
.../fontawesome-free/svgs/solid/cookie.svg | 1 +
.../fontawesome-free/svgs/solid/copy.svg | 1 +
.../fontawesome-free/svgs/solid/copyright.svg | 1 +
.../fontawesome-free/svgs/solid/couch.svg | 1 +
.../svgs/solid/credit-card.svg | 1 +
.../fontawesome-free/svgs/solid/crop-alt.svg | 1 +
.../fontawesome-free/svgs/solid/crop.svg | 1 +
.../fontawesome-free/svgs/solid/cross.svg | 1 +
.../svgs/solid/crosshairs.svg | 1 +
.../fontawesome-free/svgs/solid/crow.svg | 1 +
.../fontawesome-free/svgs/solid/crown.svg | 1 +
.../fontawesome-free/svgs/solid/crutch.svg | 1 +
.../fontawesome-free/svgs/solid/cube.svg | 1 +
.../fontawesome-free/svgs/solid/cubes.svg | 1 +
.../fontawesome-free/svgs/solid/cut.svg | 1 +
.../fontawesome-free/svgs/solid/database.svg | 1 +
.../fontawesome-free/svgs/solid/deaf.svg | 1 +
.../fontawesome-free/svgs/solid/democrat.svg | 1 +
.../fontawesome-free/svgs/solid/desktop.svg | 1 +
.../svgs/solid/dharmachakra.svg | 1 +
.../fontawesome-free/svgs/solid/diagnoses.svg | 1 +
.../fontawesome-free/svgs/solid/dice-d20.svg | 1 +
.../fontawesome-free/svgs/solid/dice-d6.svg | 1 +
.../fontawesome-free/svgs/solid/dice-five.svg | 1 +
.../fontawesome-free/svgs/solid/dice-four.svg | 1 +
.../fontawesome-free/svgs/solid/dice-one.svg | 1 +
.../fontawesome-free/svgs/solid/dice-six.svg | 1 +
.../svgs/solid/dice-three.svg | 1 +
.../fontawesome-free/svgs/solid/dice-two.svg | 1 +
.../fontawesome-free/svgs/solid/dice.svg | 1 +
.../svgs/solid/digital-tachograph.svg | 1 +
.../svgs/solid/directions.svg | 1 +
.../fontawesome-free/svgs/solid/disease.svg | 1 +
.../fontawesome-free/svgs/solid/divide.svg | 1 +
.../fontawesome-free/svgs/solid/dizzy.svg | 1 +
.../fontawesome-free/svgs/solid/dna.svg | 1 +
.../fontawesome-free/svgs/solid/dog.svg | 1 +
.../svgs/solid/dollar-sign.svg | 1 +
.../svgs/solid/dolly-flatbed.svg | 1 +
.../fontawesome-free/svgs/solid/dolly.svg | 1 +
.../fontawesome-free/svgs/solid/donate.svg | 1 +
.../svgs/solid/door-closed.svg | 1 +
.../fontawesome-free/svgs/solid/door-open.svg | 1 +
.../svgs/solid/dot-circle.svg | 1 +
.../fontawesome-free/svgs/solid/dove.svg | 1 +
.../fontawesome-free/svgs/solid/download.svg | 1 +
.../svgs/solid/drafting-compass.svg | 1 +
.../fontawesome-free/svgs/solid/dragon.svg | 1 +
.../svgs/solid/draw-polygon.svg | 1 +
.../svgs/solid/drum-steelpan.svg | 1 +
.../fontawesome-free/svgs/solid/drum.svg | 1 +
.../svgs/solid/drumstick-bite.svg | 1 +
.../fontawesome-free/svgs/solid/dumbbell.svg | 1 +
.../svgs/solid/dumpster-fire.svg | 1 +
.../fontawesome-free/svgs/solid/dumpster.svg | 1 +
.../fontawesome-free/svgs/solid/dungeon.svg | 1 +
.../fontawesome-free/svgs/solid/edit.svg | 1 +
.../fontawesome-free/svgs/solid/egg.svg | 1 +
.../fontawesome-free/svgs/solid/eject.svg | 1 +
.../svgs/solid/ellipsis-h.svg | 1 +
.../svgs/solid/ellipsis-v.svg | 1 +
.../svgs/solid/envelope-open-text.svg | 1 +
.../svgs/solid/envelope-open.svg | 1 +
.../svgs/solid/envelope-square.svg | 1 +
.../fontawesome-free/svgs/solid/envelope.svg | 1 +
.../fontawesome-free/svgs/solid/equals.svg | 1 +
.../fontawesome-free/svgs/solid/eraser.svg | 1 +
.../fontawesome-free/svgs/solid/ethernet.svg | 1 +
.../fontawesome-free/svgs/solid/euro-sign.svg | 1 +
.../svgs/solid/exchange-alt.svg | 1 +
.../svgs/solid/exclamation-circle.svg | 1 +
.../svgs/solid/exclamation-triangle.svg | 1 +
.../svgs/solid/exclamation.svg | 1 +
.../svgs/solid/expand-alt.svg | 1 +
.../svgs/solid/expand-arrows-alt.svg | 1 +
.../fontawesome-free/svgs/solid/expand.svg | 1 +
.../svgs/solid/external-link-alt.svg | 1 +
.../svgs/solid/external-link-square-alt.svg | 1 +
.../svgs/solid/eye-dropper.svg | 1 +
.../fontawesome-free/svgs/solid/eye-slash.svg | 1 +
.../fontawesome-free/svgs/solid/eye.svg | 1 +
.../fontawesome-free/svgs/solid/fan.svg | 1 +
.../svgs/solid/fast-backward.svg | 1 +
.../svgs/solid/fast-forward.svg | 1 +
.../fontawesome-free/svgs/solid/faucet.svg | 1 +
.../fontawesome-free/svgs/solid/fax.svg | 1 +
.../svgs/solid/feather-alt.svg | 1 +
.../fontawesome-free/svgs/solid/feather.svg | 1 +
.../fontawesome-free/svgs/solid/female.svg | 1 +
.../svgs/solid/fighter-jet.svg | 1 +
.../fontawesome-free/svgs/solid/file-alt.svg | 1 +
.../svgs/solid/file-archive.svg | 1 +
.../svgs/solid/file-audio.svg | 1 +
.../fontawesome-free/svgs/solid/file-code.svg | 1 +
.../svgs/solid/file-contract.svg | 1 +
.../fontawesome-free/svgs/solid/file-csv.svg | 1 +
.../svgs/solid/file-download.svg | 1 +
.../svgs/solid/file-excel.svg | 1 +
.../svgs/solid/file-export.svg | 1 +
.../svgs/solid/file-image.svg | 1 +
.../svgs/solid/file-import.svg | 1 +
.../svgs/solid/file-invoice-dollar.svg | 1 +
.../svgs/solid/file-invoice.svg | 1 +
.../svgs/solid/file-medical-alt.svg | 1 +
.../svgs/solid/file-medical.svg | 1 +
.../fontawesome-free/svgs/solid/file-pdf.svg | 1 +
.../svgs/solid/file-powerpoint.svg | 1 +
.../svgs/solid/file-prescription.svg | 1 +
.../svgs/solid/file-signature.svg | 1 +
.../svgs/solid/file-upload.svg | 1 +
.../svgs/solid/file-video.svg | 1 +
.../fontawesome-free/svgs/solid/file-word.svg | 1 +
.../fontawesome-free/svgs/solid/file.svg | 1 +
.../fontawesome-free/svgs/solid/fill-drip.svg | 1 +
.../fontawesome-free/svgs/solid/fill.svg | 1 +
.../fontawesome-free/svgs/solid/film.svg | 1 +
.../fontawesome-free/svgs/solid/filter.svg | 1 +
.../svgs/solid/fingerprint.svg | 1 +
.../fontawesome-free/svgs/solid/fire-alt.svg | 1 +
.../svgs/solid/fire-extinguisher.svg | 1 +
.../fontawesome-free/svgs/solid/fire.svg | 1 +
.../fontawesome-free/svgs/solid/first-aid.svg | 1 +
.../fontawesome-free/svgs/solid/fish.svg | 1 +
.../svgs/solid/fist-raised.svg | 1 +
.../svgs/solid/flag-checkered.svg | 1 +
.../fontawesome-free/svgs/solid/flag-usa.svg | 1 +
.../fontawesome-free/svgs/solid/flag.svg | 1 +
.../fontawesome-free/svgs/solid/flask.svg | 1 +
.../fontawesome-free/svgs/solid/flushed.svg | 1 +
.../svgs/solid/folder-minus.svg | 1 +
.../svgs/solid/folder-open.svg | 1 +
.../svgs/solid/folder-plus.svg | 1 +
.../fontawesome-free/svgs/solid/folder.svg | 1 +
.../svgs/solid/font-awesome-logo-full.svg | 1 +
.../fontawesome-free/svgs/solid/font.svg | 1 +
.../svgs/solid/football-ball.svg | 1 +
.../fontawesome-free/svgs/solid/forward.svg | 1 +
.../fontawesome-free/svgs/solid/frog.svg | 1 +
.../svgs/solid/frown-open.svg | 1 +
.../fontawesome-free/svgs/solid/frown.svg | 1 +
.../svgs/solid/funnel-dollar.svg | 1 +
.../fontawesome-free/svgs/solid/futbol.svg | 1 +
.../fontawesome-free/svgs/solid/gamepad.svg | 1 +
.../fontawesome-free/svgs/solid/gas-pump.svg | 1 +
.../fontawesome-free/svgs/solid/gavel.svg | 1 +
.../fontawesome-free/svgs/solid/gem.svg | 1 +
.../svgs/solid/genderless.svg | 1 +
.../fontawesome-free/svgs/solid/ghost.svg | 1 +
.../fontawesome-free/svgs/solid/gift.svg | 1 +
.../fontawesome-free/svgs/solid/gifts.svg | 1 +
.../svgs/solid/glass-cheers.svg | 1 +
.../svgs/solid/glass-martini-alt.svg | 1 +
.../svgs/solid/glass-martini.svg | 1 +
.../svgs/solid/glass-whiskey.svg | 1 +
.../fontawesome-free/svgs/solid/glasses.svg | 1 +
.../svgs/solid/globe-africa.svg | 1 +
.../svgs/solid/globe-americas.svg | 1 +
.../svgs/solid/globe-asia.svg | 1 +
.../svgs/solid/globe-europe.svg | 1 +
.../fontawesome-free/svgs/solid/globe.svg | 1 +
.../fontawesome-free/svgs/solid/golf-ball.svg | 1 +
.../fontawesome-free/svgs/solid/gopuram.svg | 1 +
.../svgs/solid/graduation-cap.svg | 1 +
.../svgs/solid/greater-than-equal.svg | 1 +
.../svgs/solid/greater-than.svg | 1 +
.../fontawesome-free/svgs/solid/grimace.svg | 1 +
.../fontawesome-free/svgs/solid/grin-alt.svg | 1 +
.../svgs/solid/grin-beam-sweat.svg | 1 +
.../fontawesome-free/svgs/solid/grin-beam.svg | 1 +
.../svgs/solid/grin-hearts.svg | 1 +
.../svgs/solid/grin-squint-tears.svg | 1 +
.../svgs/solid/grin-squint.svg | 1 +
.../svgs/solid/grin-stars.svg | 1 +
.../svgs/solid/grin-tears.svg | 1 +
.../svgs/solid/grin-tongue-squint.svg | 1 +
.../svgs/solid/grin-tongue-wink.svg | 1 +
.../svgs/solid/grin-tongue.svg | 1 +
.../fontawesome-free/svgs/solid/grin-wink.svg | 1 +
.../fontawesome-free/svgs/solid/grin.svg | 1 +
.../svgs/solid/grip-horizontal.svg | 1 +
.../svgs/solid/grip-lines-vertical.svg | 1 +
.../svgs/solid/grip-lines.svg | 1 +
.../svgs/solid/grip-vertical.svg | 1 +
.../fontawesome-free/svgs/solid/guitar.svg | 1 +
.../fontawesome-free/svgs/solid/h-square.svg | 1 +
.../fontawesome-free/svgs/solid/hamburger.svg | 1 +
.../fontawesome-free/svgs/solid/hammer.svg | 1 +
.../fontawesome-free/svgs/solid/hamsa.svg | 1 +
.../svgs/solid/hand-holding-heart.svg | 1 +
.../svgs/solid/hand-holding-medical.svg | 1 +
.../svgs/solid/hand-holding-usd.svg | 1 +
.../svgs/solid/hand-holding-water.svg | 1 +
.../svgs/solid/hand-holding.svg | 1 +
.../svgs/solid/hand-lizard.svg | 1 +
.../svgs/solid/hand-middle-finger.svg | 1 +
.../svgs/solid/hand-paper.svg | 1 +
.../svgs/solid/hand-peace.svg | 1 +
.../svgs/solid/hand-point-down.svg | 1 +
.../svgs/solid/hand-point-left.svg | 1 +
.../svgs/solid/hand-point-right.svg | 1 +
.../svgs/solid/hand-point-up.svg | 1 +
.../svgs/solid/hand-pointer.svg | 1 +
.../fontawesome-free/svgs/solid/hand-rock.svg | 1 +
.../svgs/solid/hand-scissors.svg | 1 +
.../svgs/solid/hand-sparkles.svg | 1 +
.../svgs/solid/hand-spock.svg | 1 +
.../svgs/solid/hands-helping.svg | 1 +
.../svgs/solid/hands-wash.svg | 1 +
.../fontawesome-free/svgs/solid/hands.svg | 1 +
.../svgs/solid/handshake-alt-slash.svg | 1 +
.../svgs/solid/handshake-slash.svg | 1 +
.../fontawesome-free/svgs/solid/handshake.svg | 1 +
.../fontawesome-free/svgs/solid/hanukiah.svg | 1 +
.../fontawesome-free/svgs/solid/hard-hat.svg | 1 +
.../fontawesome-free/svgs/solid/hashtag.svg | 1 +
.../svgs/solid/hat-cowboy-side.svg | 1 +
.../svgs/solid/hat-cowboy.svg | 1 +
.../svgs/solid/hat-wizard.svg | 1 +
.../fontawesome-free/svgs/solid/hdd.svg | 1 +
.../svgs/solid/head-side-cough-slash.svg | 1 +
.../svgs/solid/head-side-cough.svg | 1 +
.../svgs/solid/head-side-mask.svg | 1 +
.../svgs/solid/head-side-virus.svg | 1 +
.../fontawesome-free/svgs/solid/heading.svg | 1 +
.../svgs/solid/headphones-alt.svg | 1 +
.../svgs/solid/headphones.svg | 1 +
.../fontawesome-free/svgs/solid/headset.svg | 1 +
.../svgs/solid/heart-broken.svg | 1 +
.../fontawesome-free/svgs/solid/heart.svg | 1 +
.../fontawesome-free/svgs/solid/heartbeat.svg | 1 +
.../svgs/solid/helicopter.svg | 1 +
.../svgs/solid/highlighter.svg | 1 +
.../fontawesome-free/svgs/solid/hiking.svg | 1 +
.../fontawesome-free/svgs/solid/hippo.svg | 1 +
.../fontawesome-free/svgs/solid/history.svg | 1 +
.../svgs/solid/hockey-puck.svg | 1 +
.../svgs/solid/holly-berry.svg | 1 +
.../fontawesome-free/svgs/solid/home.svg | 1 +
.../svgs/solid/horse-head.svg | 1 +
.../fontawesome-free/svgs/solid/horse.svg | 1 +
.../svgs/solid/hospital-alt.svg | 1 +
.../svgs/solid/hospital-symbol.svg | 1 +
.../svgs/solid/hospital-user.svg | 1 +
.../fontawesome-free/svgs/solid/hospital.svg | 1 +
.../fontawesome-free/svgs/solid/hot-tub.svg | 1 +
.../fontawesome-free/svgs/solid/hotdog.svg | 1 +
.../fontawesome-free/svgs/solid/hotel.svg | 1 +
.../svgs/solid/hourglass-end.svg | 1 +
.../svgs/solid/hourglass-half.svg | 1 +
.../svgs/solid/hourglass-start.svg | 1 +
.../fontawesome-free/svgs/solid/hourglass.svg | 1 +
.../svgs/solid/house-damage.svg | 1 +
.../svgs/solid/house-user.svg | 1 +
.../fontawesome-free/svgs/solid/hryvnia.svg | 1 +
.../fontawesome-free/svgs/solid/i-cursor.svg | 1 +
.../fontawesome-free/svgs/solid/ice-cream.svg | 1 +
.../fontawesome-free/svgs/solid/icicles.svg | 1 +
.../fontawesome-free/svgs/solid/icons.svg | 1 +
.../fontawesome-free/svgs/solid/id-badge.svg | 1 +
.../svgs/solid/id-card-alt.svg | 1 +
.../fontawesome-free/svgs/solid/id-card.svg | 1 +
.../fontawesome-free/svgs/solid/igloo.svg | 1 +
.../fontawesome-free/svgs/solid/image.svg | 1 +
.../fontawesome-free/svgs/solid/images.svg | 1 +
.../fontawesome-free/svgs/solid/inbox.svg | 1 +
.../fontawesome-free/svgs/solid/indent.svg | 1 +
.../fontawesome-free/svgs/solid/industry.svg | 1 +
.../fontawesome-free/svgs/solid/infinity.svg | 1 +
.../svgs/solid/info-circle.svg | 1 +
.../fontawesome-free/svgs/solid/info.svg | 1 +
.../fontawesome-free/svgs/solid/italic.svg | 1 +
.../fontawesome-free/svgs/solid/jedi.svg | 1 +
.../fontawesome-free/svgs/solid/joint.svg | 1 +
.../svgs/solid/journal-whills.svg | 1 +
.../fontawesome-free/svgs/solid/kaaba.svg | 1 +
.../fontawesome-free/svgs/solid/key.svg | 1 +
.../fontawesome-free/svgs/solid/keyboard.svg | 1 +
.../fontawesome-free/svgs/solid/khanda.svg | 1 +
.../fontawesome-free/svgs/solid/kiss-beam.svg | 1 +
.../svgs/solid/kiss-wink-heart.svg | 1 +
.../fontawesome-free/svgs/solid/kiss.svg | 1 +
.../fontawesome-free/svgs/solid/kiwi-bird.svg | 1 +
.../fontawesome-free/svgs/solid/landmark.svg | 1 +
.../fontawesome-free/svgs/solid/language.svg | 1 +
.../svgs/solid/laptop-code.svg | 1 +
.../svgs/solid/laptop-house.svg | 1 +
.../svgs/solid/laptop-medical.svg | 1 +
.../fontawesome-free/svgs/solid/laptop.svg | 1 +
.../svgs/solid/laugh-beam.svg | 1 +
.../svgs/solid/laugh-squint.svg | 1 +
.../svgs/solid/laugh-wink.svg | 1 +
.../fontawesome-free/svgs/solid/laugh.svg | 1 +
.../svgs/solid/layer-group.svg | 1 +
.../fontawesome-free/svgs/solid/leaf.svg | 1 +
.../fontawesome-free/svgs/solid/lemon.svg | 1 +
.../svgs/solid/less-than-equal.svg | 1 +
.../fontawesome-free/svgs/solid/less-than.svg | 1 +
.../svgs/solid/level-down-alt.svg | 1 +
.../svgs/solid/level-up-alt.svg | 1 +
.../fontawesome-free/svgs/solid/life-ring.svg | 1 +
.../fontawesome-free/svgs/solid/lightbulb.svg | 1 +
.../fontawesome-free/svgs/solid/link.svg | 1 +
.../fontawesome-free/svgs/solid/lira-sign.svg | 1 +
.../fontawesome-free/svgs/solid/list-alt.svg | 1 +
.../fontawesome-free/svgs/solid/list-ol.svg | 1 +
.../fontawesome-free/svgs/solid/list-ul.svg | 1 +
.../fontawesome-free/svgs/solid/list.svg | 1 +
.../svgs/solid/location-arrow.svg | 1 +
.../fontawesome-free/svgs/solid/lock-open.svg | 1 +
.../fontawesome-free/svgs/solid/lock.svg | 1 +
.../svgs/solid/long-arrow-alt-down.svg | 1 +
.../svgs/solid/long-arrow-alt-left.svg | 1 +
.../svgs/solid/long-arrow-alt-right.svg | 1 +
.../svgs/solid/long-arrow-alt-up.svg | 1 +
.../svgs/solid/low-vision.svg | 1 +
.../svgs/solid/luggage-cart.svg | 1 +
.../svgs/solid/lungs-virus.svg | 1 +
.../fontawesome-free/svgs/solid/lungs.svg | 1 +
.../fontawesome-free/svgs/solid/magic.svg | 1 +
.../fontawesome-free/svgs/solid/magnet.svg | 1 +
.../fontawesome-free/svgs/solid/mail-bulk.svg | 1 +
.../fontawesome-free/svgs/solid/male.svg | 1 +
.../svgs/solid/map-marked-alt.svg | 1 +
.../svgs/solid/map-marked.svg | 1 +
.../svgs/solid/map-marker-alt.svg | 1 +
.../svgs/solid/map-marker.svg | 1 +
.../fontawesome-free/svgs/solid/map-pin.svg | 1 +
.../fontawesome-free/svgs/solid/map-signs.svg | 1 +
.../fontawesome-free/svgs/solid/map.svg | 1 +
.../fontawesome-free/svgs/solid/marker.svg | 1 +
.../svgs/solid/mars-double.svg | 1 +
.../svgs/solid/mars-stroke-h.svg | 1 +
.../svgs/solid/mars-stroke-v.svg | 1 +
.../svgs/solid/mars-stroke.svg | 1 +
.../fontawesome-free/svgs/solid/mars.svg | 1 +
.../fontawesome-free/svgs/solid/mask.svg | 1 +
.../fontawesome-free/svgs/solid/medal.svg | 1 +
.../fontawesome-free/svgs/solid/medkit.svg | 1 +
.../fontawesome-free/svgs/solid/meh-blank.svg | 1 +
.../svgs/solid/meh-rolling-eyes.svg | 1 +
.../fontawesome-free/svgs/solid/meh.svg | 1 +
.../fontawesome-free/svgs/solid/memory.svg | 1 +
.../fontawesome-free/svgs/solid/menorah.svg | 1 +
.../fontawesome-free/svgs/solid/mercury.svg | 1 +
.../fontawesome-free/svgs/solid/meteor.svg | 1 +
.../fontawesome-free/svgs/solid/microchip.svg | 1 +
.../svgs/solid/microphone-alt-slash.svg | 1 +
.../svgs/solid/microphone-alt.svg | 1 +
.../svgs/solid/microphone-slash.svg | 1 +
.../svgs/solid/microphone.svg | 1 +
.../svgs/solid/microscope.svg | 1 +
.../svgs/solid/minus-circle.svg | 1 +
.../svgs/solid/minus-square.svg | 1 +
.../fontawesome-free/svgs/solid/minus.svg | 1 +
.../fontawesome-free/svgs/solid/mitten.svg | 1 +
.../svgs/solid/mobile-alt.svg | 1 +
.../fontawesome-free/svgs/solid/mobile.svg | 1 +
.../svgs/solid/money-bill-alt.svg | 1 +
.../svgs/solid/money-bill-wave-alt.svg | 1 +
.../svgs/solid/money-bill-wave.svg | 1 +
.../svgs/solid/money-bill.svg | 1 +
.../svgs/solid/money-check-alt.svg | 1 +
.../svgs/solid/money-check.svg | 1 +
.../fontawesome-free/svgs/solid/monument.svg | 1 +
.../fontawesome-free/svgs/solid/moon.svg | 1 +
.../svgs/solid/mortar-pestle.svg | 1 +
.../fontawesome-free/svgs/solid/mosque.svg | 1 +
.../svgs/solid/motorcycle.svg | 1 +
.../fontawesome-free/svgs/solid/mountain.svg | 1 +
.../svgs/solid/mouse-pointer.svg | 1 +
.../fontawesome-free/svgs/solid/mouse.svg | 1 +
.../fontawesome-free/svgs/solid/mug-hot.svg | 1 +
.../fontawesome-free/svgs/solid/music.svg | 1 +
.../svgs/solid/network-wired.svg | 1 +
.../fontawesome-free/svgs/solid/neuter.svg | 1 +
.../fontawesome-free/svgs/solid/newspaper.svg | 1 +
.../fontawesome-free/svgs/solid/not-equal.svg | 1 +
.../svgs/solid/notes-medical.svg | 1 +
.../svgs/solid/object-group.svg | 1 +
.../svgs/solid/object-ungroup.svg | 1 +
.../fontawesome-free/svgs/solid/oil-can.svg | 1 +
.../vendor/fontawesome-free/svgs/solid/om.svg | 1 +
.../fontawesome-free/svgs/solid/otter.svg | 1 +
.../fontawesome-free/svgs/solid/outdent.svg | 1 +
.../fontawesome-free/svgs/solid/pager.svg | 1 +
.../svgs/solid/paint-brush.svg | 1 +
.../svgs/solid/paint-roller.svg | 1 +
.../fontawesome-free/svgs/solid/palette.svg | 1 +
.../fontawesome-free/svgs/solid/pallet.svg | 1 +
.../svgs/solid/paper-plane.svg | 1 +
.../fontawesome-free/svgs/solid/paperclip.svg | 1 +
.../svgs/solid/parachute-box.svg | 1 +
.../fontawesome-free/svgs/solid/paragraph.svg | 1 +
.../fontawesome-free/svgs/solid/parking.svg | 1 +
.../fontawesome-free/svgs/solid/passport.svg | 1 +
.../svgs/solid/pastafarianism.svg | 1 +
.../fontawesome-free/svgs/solid/paste.svg | 1 +
.../svgs/solid/pause-circle.svg | 1 +
.../fontawesome-free/svgs/solid/pause.svg | 1 +
.../fontawesome-free/svgs/solid/paw.svg | 1 +
.../fontawesome-free/svgs/solid/peace.svg | 1 +
.../fontawesome-free/svgs/solid/pen-alt.svg | 1 +
.../fontawesome-free/svgs/solid/pen-fancy.svg | 1 +
.../fontawesome-free/svgs/solid/pen-nib.svg | 1 +
.../svgs/solid/pen-square.svg | 1 +
.../fontawesome-free/svgs/solid/pen.svg | 1 +
.../svgs/solid/pencil-alt.svg | 1 +
.../svgs/solid/pencil-ruler.svg | 1 +
.../svgs/solid/people-arrows.svg | 1 +
.../svgs/solid/people-carry.svg | 1 +
.../svgs/solid/pepper-hot.svg | 1 +
.../fontawesome-free/svgs/solid/percent.svg | 1 +
.../svgs/solid/percentage.svg | 1 +
.../svgs/solid/person-booth.svg | 1 +
.../fontawesome-free/svgs/solid/phone-alt.svg | 1 +
.../svgs/solid/phone-slash.svg | 1 +
.../svgs/solid/phone-square-alt.svg | 1 +
.../svgs/solid/phone-square.svg | 1 +
.../svgs/solid/phone-volume.svg | 1 +
.../fontawesome-free/svgs/solid/phone.svg | 1 +
.../svgs/solid/photo-video.svg | 1 +
.../svgs/solid/piggy-bank.svg | 1 +
.../fontawesome-free/svgs/solid/pills.svg | 1 +
.../svgs/solid/pizza-slice.svg | 1 +
.../svgs/solid/place-of-worship.svg | 1 +
.../svgs/solid/plane-arrival.svg | 1 +
.../svgs/solid/plane-departure.svg | 1 +
.../svgs/solid/plane-slash.svg | 1 +
.../fontawesome-free/svgs/solid/plane.svg | 1 +
.../svgs/solid/play-circle.svg | 1 +
.../fontawesome-free/svgs/solid/play.svg | 1 +
.../fontawesome-free/svgs/solid/plug.svg | 1 +
.../svgs/solid/plus-circle.svg | 1 +
.../svgs/solid/plus-square.svg | 1 +
.../fontawesome-free/svgs/solid/plus.svg | 1 +
.../fontawesome-free/svgs/solid/podcast.svg | 1 +
.../fontawesome-free/svgs/solid/poll-h.svg | 1 +
.../fontawesome-free/svgs/solid/poll.svg | 1 +
.../fontawesome-free/svgs/solid/poo-storm.svg | 1 +
.../fontawesome-free/svgs/solid/poo.svg | 1 +
.../fontawesome-free/svgs/solid/poop.svg | 1 +
.../fontawesome-free/svgs/solid/portrait.svg | 1 +
.../svgs/solid/pound-sign.svg | 1 +
.../fontawesome-free/svgs/solid/power-off.svg | 1 +
.../fontawesome-free/svgs/solid/pray.svg | 1 +
.../svgs/solid/praying-hands.svg | 1 +
.../svgs/solid/prescription-bottle-alt.svg | 1 +
.../svgs/solid/prescription-bottle.svg | 1 +
.../svgs/solid/prescription.svg | 1 +
.../fontawesome-free/svgs/solid/print.svg | 1 +
.../svgs/solid/procedures.svg | 1 +
.../svgs/solid/project-diagram.svg | 1 +
.../svgs/solid/pump-medical.svg | 1 +
.../fontawesome-free/svgs/solid/pump-soap.svg | 1 +
.../svgs/solid/puzzle-piece.svg | 1 +
.../fontawesome-free/svgs/solid/qrcode.svg | 1 +
.../svgs/solid/question-circle.svg | 1 +
.../fontawesome-free/svgs/solid/question.svg | 1 +
.../fontawesome-free/svgs/solid/quidditch.svg | 1 +
.../svgs/solid/quote-left.svg | 1 +
.../svgs/solid/quote-right.svg | 1 +
.../fontawesome-free/svgs/solid/quran.svg | 1 +
.../svgs/solid/radiation-alt.svg | 1 +
.../fontawesome-free/svgs/solid/radiation.svg | 1 +
.../fontawesome-free/svgs/solid/rainbow.svg | 1 +
.../fontawesome-free/svgs/solid/random.svg | 1 +
.../fontawesome-free/svgs/solid/receipt.svg | 1 +
.../svgs/solid/record-vinyl.svg | 1 +
.../fontawesome-free/svgs/solid/recycle.svg | 1 +
.../fontawesome-free/svgs/solid/redo-alt.svg | 1 +
.../fontawesome-free/svgs/solid/redo.svg | 1 +
.../svgs/solid/registered.svg | 1 +
.../svgs/solid/remove-format.svg | 1 +
.../fontawesome-free/svgs/solid/reply-all.svg | 1 +
.../fontawesome-free/svgs/solid/reply.svg | 1 +
.../svgs/solid/republican.svg | 1 +
.../fontawesome-free/svgs/solid/restroom.svg | 1 +
.../fontawesome-free/svgs/solid/retweet.svg | 1 +
.../fontawesome-free/svgs/solid/ribbon.svg | 1 +
.../fontawesome-free/svgs/solid/ring.svg | 1 +
.../fontawesome-free/svgs/solid/road.svg | 1 +
.../fontawesome-free/svgs/solid/robot.svg | 1 +
.../fontawesome-free/svgs/solid/rocket.svg | 1 +
.../fontawesome-free/svgs/solid/route.svg | 1 +
.../svgs/solid/rss-square.svg | 1 +
.../fontawesome-free/svgs/solid/rss.svg | 1 +
.../svgs/solid/ruble-sign.svg | 1 +
.../svgs/solid/ruler-combined.svg | 1 +
.../svgs/solid/ruler-horizontal.svg | 1 +
.../svgs/solid/ruler-vertical.svg | 1 +
.../fontawesome-free/svgs/solid/ruler.svg | 1 +
.../fontawesome-free/svgs/solid/running.svg | 1 +
.../svgs/solid/rupee-sign.svg | 1 +
.../fontawesome-free/svgs/solid/sad-cry.svg | 1 +
.../fontawesome-free/svgs/solid/sad-tear.svg | 1 +
.../svgs/solid/satellite-dish.svg | 1 +
.../fontawesome-free/svgs/solid/satellite.svg | 1 +
.../fontawesome-free/svgs/solid/save.svg | 1 +
.../fontawesome-free/svgs/solid/school.svg | 1 +
.../svgs/solid/screwdriver.svg | 1 +
.../fontawesome-free/svgs/solid/scroll.svg | 1 +
.../fontawesome-free/svgs/solid/sd-card.svg | 1 +
.../svgs/solid/search-dollar.svg | 1 +
.../svgs/solid/search-location.svg | 1 +
.../svgs/solid/search-minus.svg | 1 +
.../svgs/solid/search-plus.svg | 1 +
.../fontawesome-free/svgs/solid/search.svg | 1 +
.../fontawesome-free/svgs/solid/seedling.svg | 1 +
.../fontawesome-free/svgs/solid/server.svg | 1 +
.../fontawesome-free/svgs/solid/shapes.svg | 1 +
.../svgs/solid/share-alt-square.svg | 1 +
.../fontawesome-free/svgs/solid/share-alt.svg | 1 +
.../svgs/solid/share-square.svg | 1 +
.../fontawesome-free/svgs/solid/share.svg | 1 +
.../svgs/solid/shekel-sign.svg | 1 +
.../svgs/solid/shield-alt.svg | 1 +
.../svgs/solid/shield-virus.svg | 1 +
.../fontawesome-free/svgs/solid/ship.svg | 1 +
.../svgs/solid/shipping-fast.svg | 1 +
.../svgs/solid/shoe-prints.svg | 1 +
.../svgs/solid/shopping-bag.svg | 1 +
.../svgs/solid/shopping-basket.svg | 1 +
.../svgs/solid/shopping-cart.svg | 1 +
.../fontawesome-free/svgs/solid/shower.svg | 1 +
.../svgs/solid/shuttle-van.svg | 1 +
.../svgs/solid/sign-in-alt.svg | 1 +
.../svgs/solid/sign-language.svg | 1 +
.../svgs/solid/sign-out-alt.svg | 1 +
.../fontawesome-free/svgs/solid/sign.svg | 1 +
.../fontawesome-free/svgs/solid/signal.svg | 1 +
.../fontawesome-free/svgs/solid/signature.svg | 1 +
.../fontawesome-free/svgs/solid/sim-card.svg | 1 +
.../fontawesome-free/svgs/solid/sink.svg | 1 +
.../fontawesome-free/svgs/solid/sitemap.svg | 1 +
.../fontawesome-free/svgs/solid/skating.svg | 1 +
.../svgs/solid/skiing-nordic.svg | 1 +
.../fontawesome-free/svgs/solid/skiing.svg | 1 +
.../svgs/solid/skull-crossbones.svg | 1 +
.../fontawesome-free/svgs/solid/skull.svg | 1 +
.../fontawesome-free/svgs/solid/slash.svg | 1 +
.../fontawesome-free/svgs/solid/sleigh.svg | 1 +
.../fontawesome-free/svgs/solid/sliders-h.svg | 1 +
.../svgs/solid/smile-beam.svg | 1 +
.../svgs/solid/smile-wink.svg | 1 +
.../fontawesome-free/svgs/solid/smile.svg | 1 +
.../fontawesome-free/svgs/solid/smog.svg | 1 +
.../svgs/solid/smoking-ban.svg | 1 +
.../fontawesome-free/svgs/solid/smoking.svg | 1 +
.../fontawesome-free/svgs/solid/sms.svg | 1 +
.../svgs/solid/snowboarding.svg | 1 +
.../fontawesome-free/svgs/solid/snowflake.svg | 1 +
.../fontawesome-free/svgs/solid/snowman.svg | 1 +
.../fontawesome-free/svgs/solid/snowplow.svg | 1 +
.../fontawesome-free/svgs/solid/soap.svg | 1 +
.../fontawesome-free/svgs/solid/socks.svg | 1 +
.../svgs/solid/solar-panel.svg | 1 +
.../svgs/solid/sort-alpha-down-alt.svg | 1 +
.../svgs/solid/sort-alpha-down.svg | 1 +
.../svgs/solid/sort-alpha-up-alt.svg | 1 +
.../svgs/solid/sort-alpha-up.svg | 1 +
.../svgs/solid/sort-amount-down-alt.svg | 1 +
.../svgs/solid/sort-amount-down.svg | 1 +
.../svgs/solid/sort-amount-up-alt.svg | 1 +
.../svgs/solid/sort-amount-up.svg | 1 +
.../fontawesome-free/svgs/solid/sort-down.svg | 1 +
.../svgs/solid/sort-numeric-down-alt.svg | 1 +
.../svgs/solid/sort-numeric-down.svg | 1 +
.../svgs/solid/sort-numeric-up-alt.svg | 1 +
.../svgs/solid/sort-numeric-up.svg | 1 +
.../fontawesome-free/svgs/solid/sort-up.svg | 1 +
.../fontawesome-free/svgs/solid/sort.svg | 1 +
.../fontawesome-free/svgs/solid/spa.svg | 1 +
.../svgs/solid/space-shuttle.svg | 1 +
.../svgs/solid/spell-check.svg | 1 +
.../fontawesome-free/svgs/solid/spider.svg | 1 +
.../fontawesome-free/svgs/solid/spinner.svg | 1 +
.../fontawesome-free/svgs/solid/splotch.svg | 1 +
.../fontawesome-free/svgs/solid/spray-can.svg | 1 +
.../svgs/solid/square-full.svg | 1 +
.../svgs/solid/square-root-alt.svg | 1 +
.../fontawesome-free/svgs/solid/square.svg | 1 +
.../fontawesome-free/svgs/solid/stamp.svg | 1 +
.../svgs/solid/star-and-crescent.svg | 1 +
.../svgs/solid/star-half-alt.svg | 1 +
.../fontawesome-free/svgs/solid/star-half.svg | 1 +
.../svgs/solid/star-of-david.svg | 1 +
.../svgs/solid/star-of-life.svg | 1 +
.../fontawesome-free/svgs/solid/star.svg | 1 +
.../svgs/solid/step-backward.svg | 1 +
.../svgs/solid/step-forward.svg | 1 +
.../svgs/solid/stethoscope.svg | 1 +
.../svgs/solid/sticky-note.svg | 1 +
.../svgs/solid/stop-circle.svg | 1 +
.../fontawesome-free/svgs/solid/stop.svg | 1 +
.../svgs/solid/stopwatch-20.svg | 1 +
.../fontawesome-free/svgs/solid/stopwatch.svg | 1 +
.../svgs/solid/store-alt-slash.svg | 1 +
.../fontawesome-free/svgs/solid/store-alt.svg | 1 +
.../svgs/solid/store-slash.svg | 1 +
.../fontawesome-free/svgs/solid/store.svg | 1 +
.../fontawesome-free/svgs/solid/stream.svg | 1 +
.../svgs/solid/street-view.svg | 1 +
.../svgs/solid/strikethrough.svg | 1 +
.../svgs/solid/stroopwafel.svg | 1 +
.../fontawesome-free/svgs/solid/subscript.svg | 1 +
.../fontawesome-free/svgs/solid/subway.svg | 1 +
.../svgs/solid/suitcase-rolling.svg | 1 +
.../fontawesome-free/svgs/solid/suitcase.svg | 1 +
.../fontawesome-free/svgs/solid/sun.svg | 1 +
.../svgs/solid/superscript.svg | 1 +
.../fontawesome-free/svgs/solid/surprise.svg | 1 +
.../svgs/solid/swatchbook.svg | 1 +
.../fontawesome-free/svgs/solid/swimmer.svg | 1 +
.../svgs/solid/swimming-pool.svg | 1 +
.../fontawesome-free/svgs/solid/synagogue.svg | 1 +
.../fontawesome-free/svgs/solid/sync-alt.svg | 1 +
.../fontawesome-free/svgs/solid/sync.svg | 1 +
.../fontawesome-free/svgs/solid/syringe.svg | 1 +
.../svgs/solid/table-tennis.svg | 1 +
.../fontawesome-free/svgs/solid/table.svg | 1 +
.../svgs/solid/tablet-alt.svg | 1 +
.../fontawesome-free/svgs/solid/tablet.svg | 1 +
.../fontawesome-free/svgs/solid/tablets.svg | 1 +
.../svgs/solid/tachometer-alt.svg | 1 +
.../fontawesome-free/svgs/solid/tag.svg | 1 +
.../fontawesome-free/svgs/solid/tags.svg | 1 +
.../fontawesome-free/svgs/solid/tape.svg | 1 +
.../fontawesome-free/svgs/solid/tasks.svg | 1 +
.../fontawesome-free/svgs/solid/taxi.svg | 1 +
.../svgs/solid/teeth-open.svg | 1 +
.../fontawesome-free/svgs/solid/teeth.svg | 1 +
.../svgs/solid/temperature-high.svg | 1 +
.../svgs/solid/temperature-low.svg | 1 +
.../fontawesome-free/svgs/solid/tenge.svg | 1 +
.../fontawesome-free/svgs/solid/terminal.svg | 1 +
.../svgs/solid/text-height.svg | 1 +
.../svgs/solid/text-width.svg | 1 +
.../fontawesome-free/svgs/solid/th-large.svg | 1 +
.../fontawesome-free/svgs/solid/th-list.svg | 1 +
.../vendor/fontawesome-free/svgs/solid/th.svg | 1 +
.../svgs/solid/theater-masks.svg | 1 +
.../svgs/solid/thermometer-empty.svg | 1 +
.../svgs/solid/thermometer-full.svg | 1 +
.../svgs/solid/thermometer-half.svg | 1 +
.../svgs/solid/thermometer-quarter.svg | 1 +
.../svgs/solid/thermometer-three-quarters.svg | 1 +
.../svgs/solid/thermometer.svg | 1 +
.../svgs/solid/thumbs-down.svg | 1 +
.../fontawesome-free/svgs/solid/thumbs-up.svg | 1 +
.../fontawesome-free/svgs/solid/thumbtack.svg | 1 +
.../svgs/solid/ticket-alt.svg | 1 +
.../svgs/solid/times-circle.svg | 1 +
.../fontawesome-free/svgs/solid/times.svg | 1 +
.../svgs/solid/tint-slash.svg | 1 +
.../fontawesome-free/svgs/solid/tint.svg | 1 +
.../fontawesome-free/svgs/solid/tired.svg | 1 +
.../svgs/solid/toggle-off.svg | 1 +
.../fontawesome-free/svgs/solid/toggle-on.svg | 1 +
.../svgs/solid/toilet-paper-slash.svg | 1 +
.../svgs/solid/toilet-paper.svg | 1 +
.../fontawesome-free/svgs/solid/toilet.svg | 1 +
.../fontawesome-free/svgs/solid/toolbox.svg | 1 +
.../fontawesome-free/svgs/solid/tools.svg | 1 +
.../fontawesome-free/svgs/solid/tooth.svg | 1 +
.../fontawesome-free/svgs/solid/torah.svg | 1 +
.../svgs/solid/torii-gate.svg | 1 +
.../fontawesome-free/svgs/solid/tractor.svg | 1 +
.../fontawesome-free/svgs/solid/trademark.svg | 1 +
.../svgs/solid/traffic-light.svg | 1 +
.../fontawesome-free/svgs/solid/trailer.svg | 1 +
.../fontawesome-free/svgs/solid/train.svg | 1 +
.../fontawesome-free/svgs/solid/tram.svg | 1 +
.../svgs/solid/transgender-alt.svg | 1 +
.../svgs/solid/transgender.svg | 1 +
.../fontawesome-free/svgs/solid/trash-alt.svg | 1 +
.../svgs/solid/trash-restore-alt.svg | 1 +
.../svgs/solid/trash-restore.svg | 1 +
.../fontawesome-free/svgs/solid/trash.svg | 1 +
.../fontawesome-free/svgs/solid/tree.svg | 1 +
.../fontawesome-free/svgs/solid/trophy.svg | 1 +
.../svgs/solid/truck-loading.svg | 1 +
.../svgs/solid/truck-monster.svg | 1 +
.../svgs/solid/truck-moving.svg | 1 +
.../svgs/solid/truck-pickup.svg | 1 +
.../fontawesome-free/svgs/solid/truck.svg | 1 +
.../fontawesome-free/svgs/solid/tshirt.svg | 1 +
.../fontawesome-free/svgs/solid/tty.svg | 1 +
.../vendor/fontawesome-free/svgs/solid/tv.svg | 1 +
.../svgs/solid/umbrella-beach.svg | 1 +
.../fontawesome-free/svgs/solid/umbrella.svg | 1 +
.../fontawesome-free/svgs/solid/underline.svg | 1 +
.../fontawesome-free/svgs/solid/undo-alt.svg | 1 +
.../fontawesome-free/svgs/solid/undo.svg | 1 +
.../svgs/solid/universal-access.svg | 1 +
.../svgs/solid/university.svg | 1 +
.../fontawesome-free/svgs/solid/unlink.svg | 1 +
.../svgs/solid/unlock-alt.svg | 1 +
.../fontawesome-free/svgs/solid/unlock.svg | 1 +
.../fontawesome-free/svgs/solid/upload.svg | 1 +
.../svgs/solid/user-alt-slash.svg | 1 +
.../fontawesome-free/svgs/solid/user-alt.svg | 1 +
.../svgs/solid/user-astronaut.svg | 1 +
.../svgs/solid/user-check.svg | 1 +
.../svgs/solid/user-circle.svg | 1 +
.../svgs/solid/user-clock.svg | 1 +
.../fontawesome-free/svgs/solid/user-cog.svg | 1 +
.../fontawesome-free/svgs/solid/user-edit.svg | 1 +
.../svgs/solid/user-friends.svg | 1 +
.../svgs/solid/user-graduate.svg | 1 +
.../svgs/solid/user-injured.svg | 1 +
.../fontawesome-free/svgs/solid/user-lock.svg | 1 +
.../fontawesome-free/svgs/solid/user-md.svg | 1 +
.../svgs/solid/user-minus.svg | 1 +
.../svgs/solid/user-ninja.svg | 1 +
.../svgs/solid/user-nurse.svg | 1 +
.../fontawesome-free/svgs/solid/user-plus.svg | 1 +
.../svgs/solid/user-secret.svg | 1 +
.../svgs/solid/user-shield.svg | 1 +
.../svgs/solid/user-slash.svg | 1 +
.../fontawesome-free/svgs/solid/user-tag.svg | 1 +
.../fontawesome-free/svgs/solid/user-tie.svg | 1 +
.../svgs/solid/user-times.svg | 1 +
.../fontawesome-free/svgs/solid/user.svg | 1 +
.../fontawesome-free/svgs/solid/users-cog.svg | 1 +
.../svgs/solid/users-slash.svg | 1 +
.../fontawesome-free/svgs/solid/users.svg | 1 +
.../svgs/solid/utensil-spoon.svg | 1 +
.../fontawesome-free/svgs/solid/utensils.svg | 1 +
.../svgs/solid/vector-square.svg | 1 +
.../svgs/solid/venus-double.svg | 1 +
.../svgs/solid/venus-mars.svg | 1 +
.../fontawesome-free/svgs/solid/venus.svg | 1 +
.../svgs/solid/vest-patches.svg | 1 +
.../fontawesome-free/svgs/solid/vest.svg | 1 +
.../fontawesome-free/svgs/solid/vial.svg | 1 +
.../fontawesome-free/svgs/solid/vials.svg | 1 +
.../svgs/solid/video-slash.svg | 1 +
.../fontawesome-free/svgs/solid/video.svg | 1 +
.../fontawesome-free/svgs/solid/vihara.svg | 1 +
.../svgs/solid/virus-slash.svg | 1 +
.../fontawesome-free/svgs/solid/virus.svg | 1 +
.../fontawesome-free/svgs/solid/viruses.svg | 1 +
.../fontawesome-free/svgs/solid/voicemail.svg | 1 +
.../svgs/solid/volleyball-ball.svg | 1 +
.../svgs/solid/volume-down.svg | 1 +
.../svgs/solid/volume-mute.svg | 1 +
.../svgs/solid/volume-off.svg | 1 +
.../fontawesome-free/svgs/solid/volume-up.svg | 1 +
.../fontawesome-free/svgs/solid/vote-yea.svg | 1 +
.../svgs/solid/vr-cardboard.svg | 1 +
.../fontawesome-free/svgs/solid/walking.svg | 1 +
.../fontawesome-free/svgs/solid/wallet.svg | 1 +
.../fontawesome-free/svgs/solid/warehouse.svg | 1 +
.../fontawesome-free/svgs/solid/water.svg | 1 +
.../svgs/solid/wave-square.svg | 1 +
.../svgs/solid/weight-hanging.svg | 1 +
.../fontawesome-free/svgs/solid/weight.svg | 1 +
.../svgs/solid/wheelchair.svg | 1 +
.../fontawesome-free/svgs/solid/wifi.svg | 1 +
.../fontawesome-free/svgs/solid/wind.svg | 1 +
.../svgs/solid/window-close.svg | 1 +
.../svgs/solid/window-maximize.svg | 1 +
.../svgs/solid/window-minimize.svg | 1 +
.../svgs/solid/window-restore.svg | 1 +
.../svgs/solid/wine-bottle.svg | 1 +
.../svgs/solid/wine-glass-alt.svg | 1 +
.../svgs/solid/wine-glass.svg | 1 +
.../fontawesome-free/svgs/solid/won-sign.svg | 1 +
.../fontawesome-free/svgs/solid/wrench.svg | 1 +
.../fontawesome-free/svgs/solid/x-ray.svg | 1 +
.../fontawesome-free/svgs/solid/yen-sign.svg | 1 +
.../fontawesome-free/svgs/solid/yin-yang.svg | 1 +
.../webfonts/fa-brands-400.eot | Bin 0 -> 134346 bytes
.../webfonts/fa-brands-400.svg | 3717 +++
.../webfonts/fa-brands-400.ttf | Bin 0 -> 134040 bytes
.../webfonts/fa-brands-400.woff | Bin 0 -> 90060 bytes
.../webfonts/fa-brands-400.woff2 | Bin 0 -> 76764 bytes
.../webfonts/fa-regular-400.eot | Bin 0 -> 34034 bytes
.../webfonts/fa-regular-400.svg | 801 +
.../webfonts/fa-regular-400.ttf | Bin 0 -> 33736 bytes
.../webfonts/fa-regular-400.woff | Bin 0 -> 16276 bytes
.../webfonts/fa-regular-400.woff2 | Bin 0 -> 13276 bytes
.../webfonts/fa-solid-900.eot | Bin 0 -> 203030 bytes
.../webfonts/fa-solid-900.svg | 5034 ++++
.../webfonts/fa-solid-900.ttf | Bin 0 -> 202744 bytes
.../webfonts/fa-solid-900.woff | Bin 0 -> 101652 bytes
.../webfonts/fa-solid-900.woff2 | Bin 0 -> 78196 bytes
.../jquery.easing.compatibility.js | 59 +
public/vendor/jquery-easing/jquery.easing.js | 166 +
.../vendor/jquery-easing/jquery.easing.min.js | 1 +
public/vendor/jquery/jquery.js | 10881 ++++++++
public/vendor/jquery/jquery.min.js | 2 +
public/vendor/jquery/jquery.min.map | 1 +
public/vendor/jquery/jquery.slim.js | 8782 +++++++
public/vendor/jquery/jquery.slim.min.js | 2 +
public/vendor/jquery/jquery.slim.min.map | 1 +
resources/css/app.css | 0
resources/js/app.js | 1 +
resources/js/bootstrap.js | 28 +
resources/views/auth/login.blade.php | 82 +
resources/views/dashboard.blade.php | 107 +
resources/views/guru/index.blade.php | 168 +
resources/views/kelas/index.blade.php | 140 +
resources/views/layout/app.blade.php | 237 +
resources/views/mapel/index.blade.php | 139 +
resources/views/materi/index.blade.php | 189 +
resources/views/mengajar/index.blade.php | 229 +
resources/views/mengajar/show.blade.php | 203 +
resources/views/siswa/index.blade.php | 128 +
resources/views/siswa/show.blade.php | 223 +
routes/api.php | 66 +
routes/channels.php | 18 +
routes/console.php | 19 +
routes/web.php | 54 +
storage/app/.gitignore | 3 +
storage/app/public/.gitignore | 2 +
storage/framework/.gitignore | 9 +
storage/framework/cache/.gitignore | 3 +
storage/framework/cache/data/.gitignore | 2 +
storage/framework/sessions/.gitignore | 2 +
storage/framework/testing/.gitignore | 2 +
storage/framework/views/.gitignore | 2 +
storage/logs/.gitignore | 2 +
tests/CreatesApplication.php | 22 +
tests/Feature/ExampleTest.php | 21 +
tests/TestCase.php | 10 +
tests/Unit/ExampleTest.php | 18 +
webpack.mix.js | 17 +
1981 files changed, 206200 insertions(+)
create mode 100644 .editorconfig
create mode 100644 .env.example
create mode 100644 .gitattributes
create mode 100644 .gitignore
create mode 100644 .styleci.yml
create mode 100644 README.md
create mode 100644 app/Console/Kernel.php
create mode 100644 app/Events/HelloEvent.php
create mode 100644 app/Exceptions/Handler.php
create mode 100644 app/Http/Controllers/AuthController.php
create mode 100644 app/Http/Controllers/Controller.php
create mode 100644 app/Http/Controllers/GuruController.php
create mode 100644 app/Http/Controllers/KelasController.php
create mode 100644 app/Http/Controllers/MapelController.php
create mode 100644 app/Http/Controllers/MateriController.php
create mode 100644 app/Http/Controllers/MengajarController.php
create mode 100644 app/Http/Controllers/SiswaController.php
create mode 100644 app/Http/Controllers/UserController.php
create mode 100644 app/Http/Controllers/api/DashboardMobileController.php
create mode 100644 app/Http/Controllers/api/GuruMobileController.php
create mode 100644 app/Http/Controllers/api/LoginMobileController.php
create mode 100644 app/Http/Controllers/api/MateriMobileController.php
create mode 100644 app/Http/Controllers/api/TugasMobileController.php
create mode 100644 app/Http/Controllers/api/UpdatePasswordMobileController.php
create mode 100644 app/Http/Kernel.php
create mode 100644 app/Http/Middleware/Authenticate.php
create mode 100644 app/Http/Middleware/EncryptCookies.php
create mode 100644 app/Http/Middleware/PreventRequestsDuringMaintenance.php
create mode 100644 app/Http/Middleware/RedirectIfAuthenticated.php
create mode 100644 app/Http/Middleware/TrimStrings.php
create mode 100644 app/Http/Middleware/TrustHosts.php
create mode 100644 app/Http/Middleware/TrustProxies.php
create mode 100644 app/Http/Middleware/VerifyCsrfToken.php
create mode 100644 app/Models/Guru.php
create mode 100644 app/Models/Kelas.php
create mode 100644 app/Models/Mapel.php
create mode 100644 app/Models/Materi.php
create mode 100644 app/Models/Mengajar.php
create mode 100644 app/Models/Siswa.php
create mode 100644 app/Models/User.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 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/app.php
create mode 100644 config/auth.php
create mode 100644 config/broadcasting.php
create mode 100644 config/cache.php
create mode 100644 config/cors.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/sanctum.php
create mode 100644 config/services.php
create mode 100644 config/session.php
create mode 100644 config/view.php
create mode 100644 config/websockets.php
create mode 100644 database/.gitignore
create mode 100644 database/factories/UserFactory.php
create mode 100644 database/migrations/0000_00_00_000000_create_websockets_statistics_entries_table.php
create mode 100644 database/migrations/0000_00_00_000000_rename_statistics_counters.php
create mode 100644 database/migrations/2024_03_11_000001_kelas.php
create mode 100644 database/migrations/2024_03_11_000002_admin.php
create mode 100644 database/migrations/2024_03_11_000005_guru.php
create mode 100644 database/migrations/2024_03_11_000007_mata_pelajaran.php
create mode 100644 database/migrations/2024_03_11_000008_siswa.php
create mode 100644 database/migrations/2024_03_11_000009_mengajar.php
create mode 100644 database/migrations/2024_03_12_0000012_materi.php
create mode 100644 database/migrations/2024_03_12_0000015_tugas.php
create mode 100644 database/migrations/2024_03_12_0000018_pengumpulan_tugas.php
create mode 100644 database/seeders/DatabaseSeeder.php
create mode 100644 img/logosmk.png
create mode 100644 lang/en.json
create mode 100644 lang/en/auth.php
create mode 100644 lang/en/pagination.php
create mode 100644 lang/en/passwords.php
create mode 100644 lang/en/validation.php
create mode 100644 package-lock.json
create mode 100644 package.json
create mode 100644 phpunit.xml
create mode 100644 public/.htaccess
create mode 100644 public/css/sb-admin-2.css
create mode 100644 public/css/sb-admin-2.min.css
create mode 100644 public/favicon.ico
create mode 100644 public/img/logosmk.png
create mode 100644 public/img/undraw_posting_photo.svg
create mode 100644 public/img/undraw_profile.svg
create mode 100644 public/img/undraw_profile_1.svg
create mode 100644 public/img/undraw_profile_2.svg
create mode 100644 public/img/undraw_profile_3.svg
create mode 100644 public/img/undraw_rocket.svg
create mode 100644 public/index.php
create mode 100644 public/js/demo/chart-area-demo.js
create mode 100644 public/js/demo/chart-bar-demo.js
create mode 100644 public/js/demo/chart-pie-demo.js
create mode 100644 public/js/demo/datatables-demo.js
create mode 100644 public/js/sb-admin-2.js
create mode 100644 public/js/sb-admin-2.min.js
create mode 100644 public/robots.txt
create mode 100644 public/scss/_buttons.scss
create mode 100644 public/scss/_cards.scss
create mode 100644 public/scss/_charts.scss
create mode 100644 public/scss/_dropdowns.scss
create mode 100644 public/scss/_error.scss
create mode 100644 public/scss/_footer.scss
create mode 100644 public/scss/_global.scss
create mode 100644 public/scss/_login.scss
create mode 100644 public/scss/_mixins.scss
create mode 100644 public/scss/_navs.scss
create mode 100644 public/scss/_utilities.scss
create mode 100644 public/scss/_variables.scss
create mode 100644 public/scss/navs/_global.scss
create mode 100644 public/scss/navs/_sidebar.scss
create mode 100644 public/scss/navs/_topbar.scss
create mode 100644 public/scss/sb-admin-2.scss
create mode 100644 public/scss/utilities/_animation.scss
create mode 100644 public/scss/utilities/_background.scss
create mode 100644 public/scss/utilities/_border.scss
create mode 100644 public/scss/utilities/_display.scss
create mode 100644 public/scss/utilities/_progress.scss
create mode 100644 public/scss/utilities/_rotate.scss
create mode 100644 public/scss/utilities/_text.scss
create mode 100644 public/vendor/bootstrap/js/bootstrap.bundle.js
create mode 100644 public/vendor/bootstrap/js/bootstrap.bundle.js.map
create mode 100644 public/vendor/bootstrap/js/bootstrap.bundle.min.js
create mode 100644 public/vendor/bootstrap/js/bootstrap.bundle.min.js.map
create mode 100644 public/vendor/bootstrap/js/bootstrap.js
create mode 100644 public/vendor/bootstrap/js/bootstrap.js.map
create mode 100644 public/vendor/bootstrap/js/bootstrap.min.js
create mode 100644 public/vendor/bootstrap/js/bootstrap.min.js.map
create mode 100644 public/vendor/bootstrap/scss/_alert.scss
create mode 100644 public/vendor/bootstrap/scss/_badge.scss
create mode 100644 public/vendor/bootstrap/scss/_breadcrumb.scss
create mode 100644 public/vendor/bootstrap/scss/_button-group.scss
create mode 100644 public/vendor/bootstrap/scss/_buttons.scss
create mode 100644 public/vendor/bootstrap/scss/_card.scss
create mode 100644 public/vendor/bootstrap/scss/_carousel.scss
create mode 100644 public/vendor/bootstrap/scss/_close.scss
create mode 100644 public/vendor/bootstrap/scss/_code.scss
create mode 100644 public/vendor/bootstrap/scss/_custom-forms.scss
create mode 100644 public/vendor/bootstrap/scss/_dropdown.scss
create mode 100644 public/vendor/bootstrap/scss/_forms.scss
create mode 100644 public/vendor/bootstrap/scss/_functions.scss
create mode 100644 public/vendor/bootstrap/scss/_grid.scss
create mode 100644 public/vendor/bootstrap/scss/_images.scss
create mode 100644 public/vendor/bootstrap/scss/_input-group.scss
create mode 100644 public/vendor/bootstrap/scss/_jumbotron.scss
create mode 100644 public/vendor/bootstrap/scss/_list-group.scss
create mode 100644 public/vendor/bootstrap/scss/_media.scss
create mode 100644 public/vendor/bootstrap/scss/_mixins.scss
create mode 100644 public/vendor/bootstrap/scss/_modal.scss
create mode 100644 public/vendor/bootstrap/scss/_nav.scss
create mode 100644 public/vendor/bootstrap/scss/_navbar.scss
create mode 100644 public/vendor/bootstrap/scss/_pagination.scss
create mode 100644 public/vendor/bootstrap/scss/_popover.scss
create mode 100644 public/vendor/bootstrap/scss/_print.scss
create mode 100644 public/vendor/bootstrap/scss/_progress.scss
create mode 100644 public/vendor/bootstrap/scss/_reboot.scss
create mode 100644 public/vendor/bootstrap/scss/_root.scss
create mode 100644 public/vendor/bootstrap/scss/_spinners.scss
create mode 100644 public/vendor/bootstrap/scss/_tables.scss
create mode 100644 public/vendor/bootstrap/scss/_toasts.scss
create mode 100644 public/vendor/bootstrap/scss/_tooltip.scss
create mode 100644 public/vendor/bootstrap/scss/_transitions.scss
create mode 100644 public/vendor/bootstrap/scss/_type.scss
create mode 100644 public/vendor/bootstrap/scss/_utilities.scss
create mode 100644 public/vendor/bootstrap/scss/_variables.scss
create mode 100644 public/vendor/bootstrap/scss/bootstrap-grid.scss
create mode 100644 public/vendor/bootstrap/scss/bootstrap-reboot.scss
create mode 100644 public/vendor/bootstrap/scss/bootstrap.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_alert.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_background-variant.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_badge.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_border-radius.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_box-shadow.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_breakpoints.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_buttons.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_caret.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_clearfix.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_deprecate.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_float.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_forms.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_gradients.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_grid-framework.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_grid.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_hover.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_image.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_list-group.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_lists.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_nav-divider.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_pagination.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_reset-text.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_resize.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_screen-reader.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_size.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_table-row.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_text-emphasis.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_text-hide.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_text-truncate.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_transition.scss
create mode 100644 public/vendor/bootstrap/scss/mixins/_visibility.scss
create mode 100644 public/vendor/bootstrap/scss/utilities/_align.scss
create mode 100644 public/vendor/bootstrap/scss/utilities/_background.scss
create mode 100644 public/vendor/bootstrap/scss/utilities/_borders.scss
create mode 100644 public/vendor/bootstrap/scss/utilities/_clearfix.scss
create mode 100644 public/vendor/bootstrap/scss/utilities/_display.scss
create mode 100644 public/vendor/bootstrap/scss/utilities/_embed.scss
create mode 100644 public/vendor/bootstrap/scss/utilities/_flex.scss
create mode 100644 public/vendor/bootstrap/scss/utilities/_float.scss
create mode 100644 public/vendor/bootstrap/scss/utilities/_interactions.scss
create mode 100644 public/vendor/bootstrap/scss/utilities/_overflow.scss
create mode 100644 public/vendor/bootstrap/scss/utilities/_position.scss
create mode 100644 public/vendor/bootstrap/scss/utilities/_screenreaders.scss
create mode 100644 public/vendor/bootstrap/scss/utilities/_shadows.scss
create mode 100644 public/vendor/bootstrap/scss/utilities/_sizing.scss
create mode 100644 public/vendor/bootstrap/scss/utilities/_spacing.scss
create mode 100644 public/vendor/bootstrap/scss/utilities/_stretched-link.scss
create mode 100644 public/vendor/bootstrap/scss/utilities/_text.scss
create mode 100644 public/vendor/bootstrap/scss/utilities/_visibility.scss
create mode 100644 public/vendor/bootstrap/scss/vendor/_rfs.scss
create mode 100644 public/vendor/chart.js/Chart.bundle.js
create mode 100644 public/vendor/chart.js/Chart.bundle.min.js
create mode 100644 public/vendor/chart.js/Chart.js
create mode 100644 public/vendor/chart.js/Chart.min.js
create mode 100644 public/vendor/datatables/dataTables.bootstrap4.css
create mode 100644 public/vendor/datatables/dataTables.bootstrap4.js
create mode 100644 public/vendor/datatables/dataTables.bootstrap4.min.css
create mode 100644 public/vendor/datatables/dataTables.bootstrap4.min.js
create mode 100644 public/vendor/datatables/jquery.dataTables.js
create mode 100644 public/vendor/datatables/jquery.dataTables.min.js
create mode 100644 public/vendor/fontawesome-free/LICENSE.txt
create mode 100644 public/vendor/fontawesome-free/attribution.js
create mode 100644 public/vendor/fontawesome-free/css/all.css
create mode 100644 public/vendor/fontawesome-free/css/all.min.css
create mode 100644 public/vendor/fontawesome-free/css/brands.css
create mode 100644 public/vendor/fontawesome-free/css/brands.min.css
create mode 100644 public/vendor/fontawesome-free/css/fontawesome.css
create mode 100644 public/vendor/fontawesome-free/css/fontawesome.min.css
create mode 100644 public/vendor/fontawesome-free/css/regular.css
create mode 100644 public/vendor/fontawesome-free/css/regular.min.css
create mode 100644 public/vendor/fontawesome-free/css/solid.css
create mode 100644 public/vendor/fontawesome-free/css/solid.min.css
create mode 100644 public/vendor/fontawesome-free/css/svg-with-js.css
create mode 100644 public/vendor/fontawesome-free/css/svg-with-js.min.css
create mode 100644 public/vendor/fontawesome-free/css/v4-shims.css
create mode 100644 public/vendor/fontawesome-free/css/v4-shims.min.css
create mode 100644 public/vendor/fontawesome-free/js/all.js
create mode 100644 public/vendor/fontawesome-free/js/all.min.js
create mode 100644 public/vendor/fontawesome-free/js/brands.js
create mode 100644 public/vendor/fontawesome-free/js/brands.min.js
create mode 100644 public/vendor/fontawesome-free/js/conflict-detection.js
create mode 100644 public/vendor/fontawesome-free/js/conflict-detection.min.js
create mode 100644 public/vendor/fontawesome-free/js/fontawesome.js
create mode 100644 public/vendor/fontawesome-free/js/fontawesome.min.js
create mode 100644 public/vendor/fontawesome-free/js/regular.js
create mode 100644 public/vendor/fontawesome-free/js/regular.min.js
create mode 100644 public/vendor/fontawesome-free/js/solid.js
create mode 100644 public/vendor/fontawesome-free/js/solid.min.js
create mode 100644 public/vendor/fontawesome-free/js/v4-shims.js
create mode 100644 public/vendor/fontawesome-free/js/v4-shims.min.js
create mode 100644 public/vendor/fontawesome-free/less/_animated.less
create mode 100644 public/vendor/fontawesome-free/less/_bordered-pulled.less
create mode 100644 public/vendor/fontawesome-free/less/_core.less
create mode 100644 public/vendor/fontawesome-free/less/_fixed-width.less
create mode 100644 public/vendor/fontawesome-free/less/_icons.less
create mode 100644 public/vendor/fontawesome-free/less/_larger.less
create mode 100644 public/vendor/fontawesome-free/less/_list.less
create mode 100644 public/vendor/fontawesome-free/less/_mixins.less
create mode 100644 public/vendor/fontawesome-free/less/_rotated-flipped.less
create mode 100644 public/vendor/fontawesome-free/less/_screen-reader.less
create mode 100644 public/vendor/fontawesome-free/less/_shims.less
create mode 100644 public/vendor/fontawesome-free/less/_stacked.less
create mode 100644 public/vendor/fontawesome-free/less/_variables.less
create mode 100644 public/vendor/fontawesome-free/less/brands.less
create mode 100644 public/vendor/fontawesome-free/less/fontawesome.less
create mode 100644 public/vendor/fontawesome-free/less/regular.less
create mode 100644 public/vendor/fontawesome-free/less/solid.less
create mode 100644 public/vendor/fontawesome-free/less/v4-shims.less
create mode 100644 public/vendor/fontawesome-free/metadata/categories.yml
create mode 100644 public/vendor/fontawesome-free/metadata/icons.yml
create mode 100644 public/vendor/fontawesome-free/metadata/shims.yml
create mode 100644 public/vendor/fontawesome-free/metadata/sponsors.yml
create mode 100644 public/vendor/fontawesome-free/package.json
create mode 100644 public/vendor/fontawesome-free/scss/_animated.scss
create mode 100644 public/vendor/fontawesome-free/scss/_bordered-pulled.scss
create mode 100644 public/vendor/fontawesome-free/scss/_core.scss
create mode 100644 public/vendor/fontawesome-free/scss/_fixed-width.scss
create mode 100644 public/vendor/fontawesome-free/scss/_icons.scss
create mode 100644 public/vendor/fontawesome-free/scss/_larger.scss
create mode 100644 public/vendor/fontawesome-free/scss/_list.scss
create mode 100644 public/vendor/fontawesome-free/scss/_mixins.scss
create mode 100644 public/vendor/fontawesome-free/scss/_rotated-flipped.scss
create mode 100644 public/vendor/fontawesome-free/scss/_screen-reader.scss
create mode 100644 public/vendor/fontawesome-free/scss/_shims.scss
create mode 100644 public/vendor/fontawesome-free/scss/_stacked.scss
create mode 100644 public/vendor/fontawesome-free/scss/_variables.scss
create mode 100644 public/vendor/fontawesome-free/scss/brands.scss
create mode 100644 public/vendor/fontawesome-free/scss/fontawesome.scss
create mode 100644 public/vendor/fontawesome-free/scss/regular.scss
create mode 100644 public/vendor/fontawesome-free/scss/solid.scss
create mode 100644 public/vendor/fontawesome-free/scss/v4-shims.scss
create mode 100644 public/vendor/fontawesome-free/sprites/brands.svg
create mode 100644 public/vendor/fontawesome-free/sprites/regular.svg
create mode 100644 public/vendor/fontawesome-free/sprites/solid.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/500px.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/accessible-icon.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/accusoft.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/acquisitions-incorporated.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/adn.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/adversal.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/affiliatetheme.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/airbnb.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/algolia.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/alipay.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/amazon-pay.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/amazon.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/amilia.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/android.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/angellist.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/angrycreative.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/angular.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/app-store-ios.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/app-store.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/apper.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/apple-pay.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/apple.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/artstation.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/asymmetrik.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/atlassian.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/audible.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/autoprefixer.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/avianex.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/aviato.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/aws.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/bandcamp.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/battle-net.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/behance-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/behance.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/bimobject.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/bitbucket.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/bitcoin.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/bity.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/black-tie.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/blackberry.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/blogger-b.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/blogger.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/bluetooth-b.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/bluetooth.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/bootstrap.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/btc.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/buffer.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/buromobelexperte.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/buy-n-large.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/buysellads.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/canadian-maple-leaf.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/cc-amazon-pay.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/cc-amex.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/cc-apple-pay.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/cc-diners-club.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/cc-discover.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/cc-jcb.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/cc-mastercard.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/cc-paypal.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/cc-stripe.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/cc-visa.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/centercode.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/centos.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/chrome.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/chromecast.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/cloudflare.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/cloudscale.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/cloudsmith.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/cloudversify.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/codepen.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/codiepie.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/confluence.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/connectdevelop.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/contao.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/cotton-bureau.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/cpanel.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/creative-commons-by.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/creative-commons-nc-eu.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/creative-commons-nc-jp.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/creative-commons-nc.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/creative-commons-nd.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/creative-commons-pd-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/creative-commons-pd.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/creative-commons-remix.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/creative-commons-sa.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/creative-commons-sampling-plus.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/creative-commons-sampling.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/creative-commons-share.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/creative-commons-zero.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/creative-commons.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/critical-role.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/css3-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/css3.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/cuttlefish.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/d-and-d-beyond.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/d-and-d.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/dailymotion.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/dashcube.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/deezer.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/delicious.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/deploydog.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/deskpro.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/dev.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/deviantart.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/dhl.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/diaspora.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/digg.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/digital-ocean.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/discord.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/discourse.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/dochub.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/docker.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/draft2digital.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/dribbble-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/dribbble.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/dropbox.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/drupal.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/dyalog.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/earlybirds.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/ebay.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/edge-legacy.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/edge.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/elementor.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/ello.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/ember.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/empire.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/envira.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/erlang.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/ethereum.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/etsy.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/evernote.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/expeditedssl.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/facebook-f.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/facebook-messenger.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/facebook-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/facebook.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/fantasy-flight-games.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/fedex.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/fedora.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/figma.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/firefox-browser.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/firefox.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/first-order-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/first-order.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/firstdraft.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/flickr.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/flipboard.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/fly.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/font-awesome-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/font-awesome-flag.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/font-awesome-logo-full.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/font-awesome.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/fonticons-fi.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/fonticons.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/fort-awesome-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/fort-awesome.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/forumbee.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/foursquare.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/free-code-camp.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/freebsd.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/fulcrum.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/galactic-republic.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/galactic-senate.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/get-pocket.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/gg-circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/gg.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/git-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/git-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/git.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/github-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/github-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/github.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/gitkraken.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/gitlab.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/gitter.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/glide-g.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/glide.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/gofore.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/goodreads-g.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/goodreads.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/google-drive.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/google-pay.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/google-play.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/google-plus-g.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/google-plus-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/google-plus.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/google-wallet.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/google.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/gratipay.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/grav.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/gripfire.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/grunt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/guilded.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/gulp.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/hacker-news-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/hacker-news.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/hackerrank.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/hips.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/hire-a-helper.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/hive.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/hooli.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/hornbill.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/hotjar.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/houzz.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/html5.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/hubspot.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/ideal.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/imdb.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/innosoft.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/instagram-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/instagram.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/instalod.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/intercom.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/internet-explorer.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/invision.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/ioxhost.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/itch-io.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/itunes-note.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/itunes.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/java.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/jedi-order.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/jenkins.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/jira.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/joget.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/joomla.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/js-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/js.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/jsfiddle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/kaggle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/keybase.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/keycdn.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/kickstarter-k.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/kickstarter.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/korvue.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/laravel.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/lastfm-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/lastfm.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/leanpub.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/less.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/line.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/linkedin-in.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/linkedin.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/linode.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/linux.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/lyft.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/magento.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/mailchimp.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/mandalorian.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/markdown.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/mastodon.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/maxcdn.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/mdb.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/medapps.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/medium-m.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/medium.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/medrt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/meetup.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/megaport.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/mendeley.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/microblog.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/microsoft.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/mix.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/mixcloud.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/mixer.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/mizuni.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/modx.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/monero.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/napster.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/neos.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/nimblr.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/node-js.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/node.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/npm.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/ns8.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/nutritionix.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/octopus-deploy.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/odnoklassniki-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/odnoklassniki.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/old-republic.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/opencart.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/openid.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/opera.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/optin-monster.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/orcid.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/osi.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/page4.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/pagelines.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/palfed.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/patreon.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/paypal.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/penny-arcade.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/perbyte.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/periscope.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/phabricator.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/phoenix-framework.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/phoenix-squadron.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/php.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/pied-piper-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/pied-piper-hat.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/pied-piper-pp.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/pied-piper-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/pied-piper.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/pinterest-p.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/pinterest-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/pinterest.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/playstation.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/product-hunt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/pushed.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/python.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/qq.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/quinscape.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/quora.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/r-project.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/raspberry-pi.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/ravelry.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/react.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/reacteurope.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/readme.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/rebel.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/red-river.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/reddit-alien.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/reddit-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/reddit.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/redhat.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/renren.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/replyd.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/researchgate.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/resolving.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/rev.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/rocketchat.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/rockrms.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/rust.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/safari.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/salesforce.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/sass.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/schlix.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/scribd.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/searchengin.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/sellcast.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/sellsy.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/servicestack.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/shirtsinbulk.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/shopify.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/shopware.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/simplybuilt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/sistrix.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/sith.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/sketch.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/skyatlas.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/skype.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/slack-hash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/slack.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/slideshare.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/snapchat-ghost.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/snapchat-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/snapchat.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/soundcloud.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/sourcetree.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/speakap.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/speaker-deck.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/spotify.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/squarespace.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/stack-exchange.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/stack-overflow.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/stackpath.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/staylinked.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/steam-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/steam-symbol.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/steam.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/sticker-mule.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/strava.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/stripe-s.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/stripe.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/studiovinari.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/stumbleupon-circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/stumbleupon.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/superpowers.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/supple.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/suse.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/swift.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/symfony.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/teamspeak.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/telegram-plane.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/telegram.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/tencent-weibo.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/the-red-yeti.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/themeco.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/themeisle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/think-peaks.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/tiktok.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/trade-federation.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/trello.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/tripadvisor.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/tumblr-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/tumblr.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/twitch.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/twitter-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/twitter.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/typo3.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/uber.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/ubuntu.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/uikit.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/umbraco.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/uncharted.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/uniregistry.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/unity.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/unsplash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/untappd.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/ups.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/usb.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/usps.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/ussunnah.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/vaadin.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/viacoin.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/viadeo-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/viadeo.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/viber.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/vimeo-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/vimeo-v.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/vimeo.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/vine.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/vk.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/vnv.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/vuejs.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/watchman-monitoring.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/waze.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/weebly.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/weibo.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/weixin.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/whatsapp-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/whatsapp.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/whmcs.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/wikipedia-w.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/windows.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/wix.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/wizards-of-the-coast.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/wodu.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/wolf-pack-battalion.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/wordpress-simple.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/wordpress.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/wpbeginner.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/wpexplorer.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/wpforms.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/wpressr.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/xbox.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/xing-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/xing.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/y-combinator.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/yahoo.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/yammer.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/yandex-international.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/yandex.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/yarn.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/yelp.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/yoast.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/youtube-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/youtube.svg
create mode 100644 public/vendor/fontawesome-free/svgs/brands/zhihu.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/address-book.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/address-card.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/angry.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/arrow-alt-circle-down.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/arrow-alt-circle-left.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/arrow-alt-circle-right.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/arrow-alt-circle-up.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/bell-slash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/bell.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/bookmark.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/building.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/calendar-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/calendar-check.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/calendar-minus.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/calendar-plus.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/calendar-times.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/calendar.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/caret-square-down.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/caret-square-left.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/caret-square-right.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/caret-square-up.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/chart-bar.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/check-circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/check-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/clipboard.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/clock.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/clone.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/closed-captioning.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/comment-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/comment-dots.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/comment.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/comments.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/compass.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/copy.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/copyright.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/credit-card.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/dizzy.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/dot-circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/edit.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/envelope-open.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/envelope.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/eye-slash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/eye.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/file-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/file-archive.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/file-audio.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/file-code.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/file-excel.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/file-image.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/file-pdf.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/file-powerpoint.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/file-video.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/file-word.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/file.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/flag.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/flushed.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/folder-open.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/folder.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/font-awesome-logo-full.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/frown-open.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/frown.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/futbol.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/gem.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/grimace.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/grin-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/grin-beam-sweat.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/grin-beam.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/grin-hearts.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/grin-squint-tears.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/grin-squint.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/grin-stars.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/grin-tears.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/grin-tongue-squint.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/grin-tongue-wink.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/grin-tongue.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/grin-wink.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/grin.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/hand-lizard.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/hand-paper.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/hand-peace.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/hand-point-down.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/hand-point-left.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/hand-point-right.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/hand-point-up.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/hand-pointer.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/hand-rock.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/hand-scissors.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/hand-spock.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/handshake.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/hdd.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/heart.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/hospital.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/hourglass.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/id-badge.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/id-card.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/image.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/images.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/keyboard.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/kiss-beam.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/kiss-wink-heart.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/kiss.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/laugh-beam.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/laugh-squint.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/laugh-wink.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/laugh.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/lemon.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/life-ring.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/lightbulb.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/list-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/map.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/meh-blank.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/meh-rolling-eyes.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/meh.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/minus-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/money-bill-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/moon.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/newspaper.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/object-group.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/object-ungroup.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/paper-plane.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/pause-circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/play-circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/plus-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/question-circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/registered.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/sad-cry.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/sad-tear.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/save.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/share-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/smile-beam.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/smile-wink.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/smile.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/snowflake.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/star-half.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/star.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/sticky-note.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/stop-circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/sun.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/surprise.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/thumbs-down.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/thumbs-up.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/times-circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/tired.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/trash-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/user-circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/user.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/window-close.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/window-maximize.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/window-minimize.svg
create mode 100644 public/vendor/fontawesome-free/svgs/regular/window-restore.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/ad.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/address-book.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/address-card.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/adjust.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/air-freshener.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/align-center.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/align-justify.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/align-left.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/align-right.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/allergies.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/ambulance.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/american-sign-language-interpreting.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/anchor.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/angle-double-down.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/angle-double-left.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/angle-double-right.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/angle-double-up.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/angle-down.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/angle-left.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/angle-right.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/angle-up.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/angry.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/ankh.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/apple-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/archive.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/archway.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/arrow-alt-circle-down.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/arrow-alt-circle-left.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/arrow-alt-circle-right.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/arrow-alt-circle-up.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/arrow-circle-down.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/arrow-circle-left.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/arrow-circle-right.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/arrow-circle-up.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/arrow-down.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/arrow-left.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/arrow-right.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/arrow-up.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/arrows-alt-h.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/arrows-alt-v.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/arrows-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/assistive-listening-systems.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/asterisk.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/at.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/atlas.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/atom.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/audio-description.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/award.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/baby-carriage.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/baby.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/backspace.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/backward.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bacon.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bacteria.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bacterium.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bahai.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/balance-scale-left.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/balance-scale-right.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/balance-scale.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/ban.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/band-aid.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/barcode.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bars.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/baseball-ball.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/basketball-ball.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bath.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/battery-empty.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/battery-full.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/battery-half.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/battery-quarter.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/battery-three-quarters.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bed.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/beer.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bell-slash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bell.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bezier-curve.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bible.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bicycle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/biking.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/binoculars.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/biohazard.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/birthday-cake.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/blender-phone.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/blender.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/blind.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/blog.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bold.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bolt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bomb.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bone.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bong.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/book-dead.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/book-medical.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/book-open.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/book-reader.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/book.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bookmark.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/border-all.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/border-none.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/border-style.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bowling-ball.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/box-open.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/box-tissue.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/box.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/boxes.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/braille.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/brain.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bread-slice.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/briefcase-medical.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/briefcase.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/broadcast-tower.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/broom.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/brush.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bug.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/building.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bullhorn.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bullseye.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/burn.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bus-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/bus.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/business-time.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/calculator.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/calendar-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/calendar-check.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/calendar-day.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/calendar-minus.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/calendar-plus.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/calendar-times.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/calendar-week.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/calendar.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/camera-retro.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/camera.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/campground.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/candy-cane.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cannabis.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/capsules.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/car-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/car-battery.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/car-crash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/car-side.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/car.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/caravan.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/caret-down.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/caret-left.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/caret-right.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/caret-square-down.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/caret-square-left.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/caret-square-right.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/caret-square-up.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/caret-up.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/carrot.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cart-arrow-down.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cart-plus.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cash-register.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cat.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/certificate.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/chair.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/chalkboard-teacher.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/chalkboard.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/charging-station.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/chart-area.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/chart-bar.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/chart-line.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/chart-pie.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/check-circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/check-double.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/check-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/check.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cheese.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/chess-bishop.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/chess-board.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/chess-king.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/chess-knight.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/chess-pawn.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/chess-queen.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/chess-rook.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/chess.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/chevron-circle-down.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/chevron-circle-left.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/chevron-circle-right.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/chevron-circle-up.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/chevron-down.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/chevron-left.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/chevron-right.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/chevron-up.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/child.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/church.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/circle-notch.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/city.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/clinic-medical.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/clipboard-check.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/clipboard-list.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/clipboard.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/clock.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/clone.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/closed-captioning.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cloud-download-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cloud-meatball.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cloud-moon-rain.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cloud-moon.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cloud-rain.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cloud-showers-heavy.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cloud-sun-rain.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cloud-sun.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cloud-upload-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cloud.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cocktail.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/code-branch.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/code.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/coffee.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cog.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cogs.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/coins.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/columns.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/comment-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/comment-dollar.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/comment-dots.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/comment-medical.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/comment-slash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/comment.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/comments-dollar.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/comments.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/compact-disc.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/compass.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/compress-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/compress-arrows-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/compress.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/concierge-bell.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cookie-bite.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cookie.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/copy.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/copyright.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/couch.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/credit-card.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/crop-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/crop.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cross.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/crosshairs.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/crow.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/crown.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/crutch.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cube.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cubes.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/cut.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/database.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/deaf.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/democrat.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/desktop.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/dharmachakra.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/diagnoses.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/dice-d20.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/dice-d6.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/dice-five.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/dice-four.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/dice-one.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/dice-six.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/dice-three.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/dice-two.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/dice.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/digital-tachograph.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/directions.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/disease.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/divide.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/dizzy.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/dna.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/dog.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/dollar-sign.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/dolly-flatbed.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/dolly.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/donate.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/door-closed.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/door-open.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/dot-circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/dove.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/download.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/drafting-compass.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/dragon.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/draw-polygon.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/drum-steelpan.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/drum.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/drumstick-bite.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/dumbbell.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/dumpster-fire.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/dumpster.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/dungeon.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/edit.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/egg.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/eject.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/ellipsis-h.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/ellipsis-v.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/envelope-open-text.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/envelope-open.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/envelope-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/envelope.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/equals.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/eraser.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/ethernet.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/euro-sign.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/exchange-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/exclamation-circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/exclamation-triangle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/exclamation.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/expand-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/expand-arrows-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/expand.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/external-link-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/external-link-square-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/eye-dropper.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/eye-slash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/eye.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/fan.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/fast-backward.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/fast-forward.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/faucet.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/fax.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/feather-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/feather.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/female.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/fighter-jet.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/file-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/file-archive.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/file-audio.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/file-code.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/file-contract.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/file-csv.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/file-download.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/file-excel.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/file-export.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/file-image.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/file-import.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/file-invoice-dollar.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/file-invoice.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/file-medical-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/file-medical.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/file-pdf.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/file-powerpoint.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/file-prescription.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/file-signature.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/file-upload.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/file-video.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/file-word.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/file.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/fill-drip.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/fill.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/film.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/filter.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/fingerprint.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/fire-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/fire-extinguisher.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/fire.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/first-aid.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/fish.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/fist-raised.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/flag-checkered.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/flag-usa.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/flag.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/flask.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/flushed.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/folder-minus.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/folder-open.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/folder-plus.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/folder.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/font-awesome-logo-full.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/font.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/football-ball.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/forward.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/frog.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/frown-open.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/frown.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/funnel-dollar.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/futbol.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/gamepad.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/gas-pump.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/gavel.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/gem.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/genderless.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/ghost.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/gift.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/gifts.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/glass-cheers.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/glass-martini-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/glass-martini.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/glass-whiskey.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/glasses.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/globe-africa.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/globe-americas.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/globe-asia.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/globe-europe.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/globe.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/golf-ball.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/gopuram.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/graduation-cap.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/greater-than-equal.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/greater-than.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/grimace.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/grin-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/grin-beam-sweat.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/grin-beam.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/grin-hearts.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/grin-squint-tears.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/grin-squint.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/grin-stars.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/grin-tears.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/grin-tongue-squint.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/grin-tongue-wink.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/grin-tongue.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/grin-wink.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/grin.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/grip-horizontal.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/grip-lines-vertical.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/grip-lines.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/grip-vertical.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/guitar.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/h-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hamburger.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hammer.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hamsa.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hand-holding-heart.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hand-holding-medical.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hand-holding-usd.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hand-holding-water.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hand-holding.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hand-lizard.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hand-middle-finger.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hand-paper.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hand-peace.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hand-point-down.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hand-point-left.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hand-point-right.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hand-point-up.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hand-pointer.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hand-rock.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hand-scissors.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hand-sparkles.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hand-spock.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hands-helping.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hands-wash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hands.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/handshake-alt-slash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/handshake-slash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/handshake.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hanukiah.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hard-hat.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hashtag.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hat-cowboy-side.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hat-cowboy.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hat-wizard.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hdd.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/head-side-cough-slash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/head-side-cough.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/head-side-mask.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/head-side-virus.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/heading.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/headphones-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/headphones.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/headset.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/heart-broken.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/heart.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/heartbeat.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/helicopter.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/highlighter.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hiking.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hippo.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/history.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hockey-puck.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/holly-berry.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/home.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/horse-head.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/horse.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hospital-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hospital-symbol.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hospital-user.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hospital.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hot-tub.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hotdog.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hotel.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hourglass-end.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hourglass-half.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hourglass-start.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hourglass.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/house-damage.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/house-user.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/hryvnia.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/i-cursor.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/ice-cream.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/icicles.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/icons.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/id-badge.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/id-card-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/id-card.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/igloo.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/image.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/images.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/inbox.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/indent.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/industry.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/infinity.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/info-circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/info.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/italic.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/jedi.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/joint.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/journal-whills.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/kaaba.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/key.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/keyboard.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/khanda.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/kiss-beam.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/kiss-wink-heart.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/kiss.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/kiwi-bird.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/landmark.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/language.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/laptop-code.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/laptop-house.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/laptop-medical.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/laptop.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/laugh-beam.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/laugh-squint.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/laugh-wink.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/laugh.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/layer-group.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/leaf.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/lemon.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/less-than-equal.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/less-than.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/level-down-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/level-up-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/life-ring.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/lightbulb.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/link.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/lira-sign.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/list-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/list-ol.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/list-ul.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/list.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/location-arrow.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/lock-open.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/lock.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/long-arrow-alt-down.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/long-arrow-alt-left.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/long-arrow-alt-right.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/long-arrow-alt-up.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/low-vision.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/luggage-cart.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/lungs-virus.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/lungs.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/magic.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/magnet.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/mail-bulk.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/male.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/map-marked-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/map-marked.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/map-marker-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/map-marker.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/map-pin.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/map-signs.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/map.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/marker.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/mars-double.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/mars-stroke-h.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/mars-stroke-v.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/mars-stroke.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/mars.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/mask.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/medal.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/medkit.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/meh-blank.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/meh-rolling-eyes.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/meh.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/memory.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/menorah.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/mercury.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/meteor.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/microchip.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/microphone-alt-slash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/microphone-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/microphone-slash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/microphone.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/microscope.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/minus-circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/minus-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/minus.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/mitten.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/mobile-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/mobile.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/money-bill-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/money-bill-wave-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/money-bill-wave.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/money-bill.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/money-check-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/money-check.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/monument.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/moon.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/mortar-pestle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/mosque.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/motorcycle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/mountain.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/mouse-pointer.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/mouse.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/mug-hot.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/music.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/network-wired.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/neuter.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/newspaper.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/not-equal.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/notes-medical.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/object-group.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/object-ungroup.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/oil-can.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/om.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/otter.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/outdent.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/pager.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/paint-brush.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/paint-roller.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/palette.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/pallet.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/paper-plane.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/paperclip.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/parachute-box.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/paragraph.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/parking.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/passport.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/pastafarianism.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/paste.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/pause-circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/pause.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/paw.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/peace.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/pen-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/pen-fancy.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/pen-nib.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/pen-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/pen.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/pencil-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/pencil-ruler.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/people-arrows.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/people-carry.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/pepper-hot.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/percent.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/percentage.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/person-booth.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/phone-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/phone-slash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/phone-square-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/phone-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/phone-volume.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/phone.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/photo-video.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/piggy-bank.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/pills.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/pizza-slice.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/place-of-worship.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/plane-arrival.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/plane-departure.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/plane-slash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/plane.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/play-circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/play.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/plug.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/plus-circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/plus-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/plus.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/podcast.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/poll-h.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/poll.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/poo-storm.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/poo.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/poop.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/portrait.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/pound-sign.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/power-off.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/pray.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/praying-hands.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/prescription-bottle-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/prescription-bottle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/prescription.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/print.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/procedures.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/project-diagram.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/pump-medical.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/pump-soap.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/puzzle-piece.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/qrcode.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/question-circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/question.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/quidditch.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/quote-left.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/quote-right.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/quran.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/radiation-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/radiation.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/rainbow.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/random.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/receipt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/record-vinyl.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/recycle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/redo-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/redo.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/registered.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/remove-format.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/reply-all.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/reply.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/republican.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/restroom.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/retweet.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/ribbon.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/ring.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/road.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/robot.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/rocket.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/route.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/rss-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/rss.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/ruble-sign.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/ruler-combined.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/ruler-horizontal.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/ruler-vertical.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/ruler.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/running.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/rupee-sign.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sad-cry.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sad-tear.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/satellite-dish.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/satellite.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/save.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/school.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/screwdriver.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/scroll.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sd-card.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/search-dollar.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/search-location.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/search-minus.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/search-plus.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/search.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/seedling.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/server.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/shapes.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/share-alt-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/share-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/share-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/share.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/shekel-sign.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/shield-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/shield-virus.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/ship.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/shipping-fast.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/shoe-prints.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/shopping-bag.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/shopping-basket.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/shopping-cart.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/shower.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/shuttle-van.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sign-in-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sign-language.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sign-out-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sign.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/signal.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/signature.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sim-card.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sink.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sitemap.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/skating.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/skiing-nordic.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/skiing.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/skull-crossbones.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/skull.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/slash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sleigh.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sliders-h.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/smile-beam.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/smile-wink.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/smile.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/smog.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/smoking-ban.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/smoking.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sms.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/snowboarding.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/snowflake.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/snowman.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/snowplow.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/soap.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/socks.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/solar-panel.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sort-alpha-down-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sort-alpha-down.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sort-alpha-up-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sort-alpha-up.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sort-amount-down-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sort-amount-down.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sort-amount-up-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sort-amount-up.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sort-down.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sort-numeric-down-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sort-numeric-down.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sort-numeric-up-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sort-numeric-up.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sort-up.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sort.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/spa.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/space-shuttle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/spell-check.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/spider.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/spinner.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/splotch.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/spray-can.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/square-full.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/square-root-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/stamp.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/star-and-crescent.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/star-half-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/star-half.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/star-of-david.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/star-of-life.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/star.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/step-backward.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/step-forward.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/stethoscope.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sticky-note.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/stop-circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/stop.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/stopwatch-20.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/stopwatch.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/store-alt-slash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/store-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/store-slash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/store.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/stream.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/street-view.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/strikethrough.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/stroopwafel.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/subscript.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/subway.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/suitcase-rolling.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/suitcase.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sun.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/superscript.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/surprise.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/swatchbook.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/swimmer.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/swimming-pool.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/synagogue.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sync-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/sync.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/syringe.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/table-tennis.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/table.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/tablet-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/tablet.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/tablets.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/tachometer-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/tag.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/tags.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/tape.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/tasks.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/taxi.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/teeth-open.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/teeth.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/temperature-high.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/temperature-low.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/tenge.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/terminal.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/text-height.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/text-width.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/th-large.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/th-list.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/th.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/theater-masks.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/thermometer-empty.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/thermometer-full.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/thermometer-half.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/thermometer-quarter.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/thermometer-three-quarters.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/thermometer.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/thumbs-down.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/thumbs-up.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/thumbtack.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/ticket-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/times-circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/times.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/tint-slash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/tint.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/tired.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/toggle-off.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/toggle-on.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/toilet-paper-slash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/toilet-paper.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/toilet.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/toolbox.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/tools.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/tooth.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/torah.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/torii-gate.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/tractor.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/trademark.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/traffic-light.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/trailer.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/train.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/tram.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/transgender-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/transgender.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/trash-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/trash-restore-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/trash-restore.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/trash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/tree.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/trophy.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/truck-loading.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/truck-monster.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/truck-moving.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/truck-pickup.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/truck.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/tshirt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/tty.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/tv.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/umbrella-beach.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/umbrella.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/underline.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/undo-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/undo.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/universal-access.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/university.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/unlink.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/unlock-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/unlock.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/upload.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user-alt-slash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user-astronaut.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user-check.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user-circle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user-clock.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user-cog.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user-edit.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user-friends.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user-graduate.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user-injured.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user-lock.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user-md.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user-minus.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user-ninja.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user-nurse.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user-plus.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user-secret.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user-shield.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user-slash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user-tag.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user-tie.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user-times.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/user.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/users-cog.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/users-slash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/users.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/utensil-spoon.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/utensils.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/vector-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/venus-double.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/venus-mars.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/venus.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/vest-patches.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/vest.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/vial.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/vials.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/video-slash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/video.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/vihara.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/virus-slash.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/virus.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/viruses.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/voicemail.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/volleyball-ball.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/volume-down.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/volume-mute.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/volume-off.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/volume-up.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/vote-yea.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/vr-cardboard.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/walking.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/wallet.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/warehouse.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/water.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/wave-square.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/weight-hanging.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/weight.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/wheelchair.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/wifi.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/wind.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/window-close.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/window-maximize.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/window-minimize.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/window-restore.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/wine-bottle.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/wine-glass-alt.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/wine-glass.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/won-sign.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/wrench.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/x-ray.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/yen-sign.svg
create mode 100644 public/vendor/fontawesome-free/svgs/solid/yin-yang.svg
create mode 100644 public/vendor/fontawesome-free/webfonts/fa-brands-400.eot
create mode 100644 public/vendor/fontawesome-free/webfonts/fa-brands-400.svg
create mode 100644 public/vendor/fontawesome-free/webfonts/fa-brands-400.ttf
create mode 100644 public/vendor/fontawesome-free/webfonts/fa-brands-400.woff
create mode 100644 public/vendor/fontawesome-free/webfonts/fa-brands-400.woff2
create mode 100644 public/vendor/fontawesome-free/webfonts/fa-regular-400.eot
create mode 100644 public/vendor/fontawesome-free/webfonts/fa-regular-400.svg
create mode 100644 public/vendor/fontawesome-free/webfonts/fa-regular-400.ttf
create mode 100644 public/vendor/fontawesome-free/webfonts/fa-regular-400.woff
create mode 100644 public/vendor/fontawesome-free/webfonts/fa-regular-400.woff2
create mode 100644 public/vendor/fontawesome-free/webfonts/fa-solid-900.eot
create mode 100644 public/vendor/fontawesome-free/webfonts/fa-solid-900.svg
create mode 100644 public/vendor/fontawesome-free/webfonts/fa-solid-900.ttf
create mode 100644 public/vendor/fontawesome-free/webfonts/fa-solid-900.woff
create mode 100644 public/vendor/fontawesome-free/webfonts/fa-solid-900.woff2
create mode 100644 public/vendor/jquery-easing/jquery.easing.compatibility.js
create mode 100644 public/vendor/jquery-easing/jquery.easing.js
create mode 100644 public/vendor/jquery-easing/jquery.easing.min.js
create mode 100644 public/vendor/jquery/jquery.js
create mode 100644 public/vendor/jquery/jquery.min.js
create mode 100644 public/vendor/jquery/jquery.min.map
create mode 100644 public/vendor/jquery/jquery.slim.js
create mode 100644 public/vendor/jquery/jquery.slim.min.js
create mode 100644 public/vendor/jquery/jquery.slim.min.map
create mode 100644 resources/css/app.css
create mode 100644 resources/js/app.js
create mode 100644 resources/js/bootstrap.js
create mode 100644 resources/views/auth/login.blade.php
create mode 100644 resources/views/dashboard.blade.php
create mode 100644 resources/views/guru/index.blade.php
create mode 100644 resources/views/kelas/index.blade.php
create mode 100644 resources/views/layout/app.blade.php
create mode 100644 resources/views/mapel/index.blade.php
create mode 100644 resources/views/materi/index.blade.php
create mode 100644 resources/views/mengajar/index.blade.php
create mode 100644 resources/views/mengajar/show.blade.php
create mode 100644 resources/views/siswa/index.blade.php
create mode 100644 resources/views/siswa/show.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 storage/app/.gitignore
create mode 100644 storage/app/public/.gitignore
create mode 100644 storage/framework/.gitignore
create mode 100644 storage/framework/cache/.gitignore
create mode 100644 storage/framework/cache/data/.gitignore
create mode 100644 storage/framework/sessions/.gitignore
create mode 100644 storage/framework/testing/.gitignore
create mode 100644 storage/framework/views/.gitignore
create mode 100644 storage/logs/.gitignore
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
create mode 100644 webpack.mix.js
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..1671c9b
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,18 @@
+root = true
+
+[*]
+charset = utf-8
+end_of_line = lf
+insert_final_newline = true
+indent_style = space
+indent_size = 4
+trim_trailing_whitespace = true
+
+[*.md]
+trim_trailing_whitespace = false
+
+[*.{yml,yaml}]
+indent_size = 2
+
+[docker-compose.yml]
+indent_size = 4
diff --git a/.env.example b/.env.example
new file mode 100644
index 0000000..9bb1bd7
--- /dev/null
+++ b/.env.example
@@ -0,0 +1,52 @@
+APP_NAME=Laravel
+APP_ENV=local
+APP_KEY=
+APP_DEBUG=true
+APP_URL=http://localhost
+
+LOG_CHANNEL=stack
+LOG_DEPRECATIONS_CHANNEL=null
+LOG_LEVEL=debug
+
+DB_CONNECTION=mysql
+DB_HOST=127.0.0.1
+DB_PORT=3306
+DB_DATABASE=laravel
+DB_USERNAME=root
+DB_PASSWORD=
+
+BROADCAST_DRIVER=log
+CACHE_DRIVER=file
+FILESYSTEM_DISK=local
+QUEUE_CONNECTION=sync
+SESSION_DRIVER=file
+SESSION_LIFETIME=120
+
+MEMCACHED_HOST=127.0.0.1
+
+REDIS_HOST=127.0.0.1
+REDIS_PASSWORD=null
+REDIS_PORT=6379
+
+MAIL_MAILER=smtp
+MAIL_HOST=mailhog
+MAIL_PORT=1025
+MAIL_USERNAME=null
+MAIL_PASSWORD=null
+MAIL_ENCRYPTION=null
+MAIL_FROM_ADDRESS="hello@example.com"
+MAIL_FROM_NAME="${APP_NAME}"
+
+AWS_ACCESS_KEY_ID=
+AWS_SECRET_ACCESS_KEY=
+AWS_DEFAULT_REGION=us-east-1
+AWS_BUCKET=
+AWS_USE_PATH_STYLE_ENDPOINT=false
+
+PUSHER_APP_ID=
+PUSHER_APP_KEY=
+PUSHER_APP_SECRET=
+PUSHER_APP_CLUSTER=mt1
+
+MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
+MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..510d996
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,10 @@
+* text=auto
+
+*.blade.php diff=html
+*.css diff=css
+*.html diff=html
+*.md diff=markdown
+*.php diff=php
+
+/.github export-ignore
+CHANGELOG.md export-ignore
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..eb003b0
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,15 @@
+/node_modules
+/public/hot
+/public/storage
+/storage/*.key
+/vendor
+.env
+.env.backup
+.phpunit.result.cache
+docker-compose.override.yml
+Homestead.json
+Homestead.yaml
+npm-debug.log
+yarn-error.log
+/.idea
+/.vscode
diff --git a/.styleci.yml b/.styleci.yml
new file mode 100644
index 0000000..679a631
--- /dev/null
+++ b/.styleci.yml
@@ -0,0 +1,13 @@
+php:
+ preset: laravel
+ version: 8
+ disabled:
+ - no_unused_imports
+ finder:
+ not-name:
+ - index.php
+js:
+ finder:
+ not-name:
+ - webpack.mix.js
+css: true
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..f171eca
--- /dev/null
+++ b/README.md
@@ -0,0 +1,64 @@
+

+
+
+
+
+
+
+
+
+## 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 2000 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).
+
+### Premium Partners
+
+- **[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)**
+- **[Many](https://www.many.co.uk)**
+- **[Webdock, Fast VPS Hosting](https://www.webdock.io/en)**
+- **[DevSquad](https://devsquad.com)**
+- **[Curotec](https://www.curotec.com/services/technologies/laravel/)**
+- **[OP.GG](https://op.gg)**
+- **[WebReinvent](https://webreinvent.com/?utm_source=laravel&utm_medium=github&utm_campaign=patreon-sponsors)**
+- **[Lendio](https://lendio.com)**
+
+## 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/Console/Kernel.php b/app/Console/Kernel.php
new file mode 100644
index 0000000..d8bc1d2
--- /dev/null
+++ b/app/Console/Kernel.php
@@ -0,0 +1,32 @@
+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/Events/HelloEvent.php b/app/Events/HelloEvent.php
new file mode 100644
index 0000000..1926808
--- /dev/null
+++ b/app/Events/HelloEvent.php
@@ -0,0 +1,53 @@
+title = $title;
+ $this->message = $message;
+ }
+
+ /**
+ * Get the channels the event should broadcast on.
+ *
+ * @return \Illuminate\Broadcasting\Channel|array
+ */
+ public function broadcastOn()
+ {
+ return ['public'];
+ }
+
+ public function broadcastAs()
+ {
+ return 'chat';
+ }
+
+ public function broadcastWith()
+ {
+ return [
+ 'title' => $this->title,
+ 'message' => $this->message,
+ ];
+ }
+}
diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php
new file mode 100644
index 0000000..8e7fbd1
--- /dev/null
+++ b/app/Exceptions/Handler.php
@@ -0,0 +1,41 @@
+>
+ */
+ protected $dontReport = [
+ //
+ ];
+
+ /**
+ * A list of the inputs that are never flashed for validation exceptions.
+ *
+ * @var array
+ */
+ protected $dontFlash = [
+ 'current_password',
+ 'password',
+ 'password_confirmation',
+ ];
+
+ /**
+ * Register the exception handling callbacks for the application.
+ *
+ * @return void
+ */
+ public function register()
+ {
+ $this->reportable(function (Throwable $e) {
+ //
+ });
+ }
+}
diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php
new file mode 100644
index 0000000..098d624
--- /dev/null
+++ b/app/Http/Controllers/AuthController.php
@@ -0,0 +1,49 @@
+ 'admin',
+ // 'name' => 'admin',
+ // 'password' => 'admin123',
+ // ]);
+
+ if (Auth::check()) {
+ return redirect()->route('home');
+ }
+
+ return view('auth.login');
+ }
+
+ // Handle login submission
+ public function login(Request $request)
+ {
+ $credentials = $request->only('username', 'password');
+ if (Auth::attempt($credentials)) {
+ $request->session()->regenerate();
+ return redirect()->intended('dashboard');
+ }
+ return redirect()->back()->withInput($request->only('username'))->withErrors([
+ 'username' => 'Invalid credentials',
+ ]);
+ }
+ // Handle logout
+ public function logout(Request $request)
+ {
+ Auth::logout();
+ $request->session()->invalidate();
+ $request->session()->regenerateToken();
+
+ return redirect('/login');
+ }
+}
diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php
new file mode 100644
index 0000000..a0a2a8a
--- /dev/null
+++ b/app/Http/Controllers/Controller.php
@@ -0,0 +1,13 @@
+get();
+ $kelas = Kelas::find($classId);
+ return view('guru.show', compact('guru', 'kelas'));
+ }
+
+
+
+
+
+
+ public function store(Request $request)
+ {
+ $validator = Validator::make($request->all(), [
+ 'nip' => 'required|unique:guru',
+ 'nama_guru' => 'required',
+ 'nomor_hp' => 'required|max:13',
+ 'password' => 'required',
+ ]);
+
+ if ($validator->fails()) {
+ return redirect()->back()
+ ->withErrors($validator)
+ ->withInput();
+ }
+
+ try {
+ DB::beginTransaction();
+
+ $users = new User();
+ $users->name = $request->nama_guru;
+ $users->username = $request->nip;
+ $users->password = $request->password;
+ $users->save();
+
+ $guru = new Guru();
+ $guru->nip = $request->nip;
+ $guru->nama_guru = $request->nama_guru;
+ $guru->nomor_hp = $request->nomor_hp;
+ $guru->password = $request->password;
+ $guru->save();
+
+ DB::commit();
+
+ return redirect()->back()->with('success', 'Data guru berhasil ditambahkan.');
+ } catch (\Exception $e) {
+ DB::rollback();
+ return back()->withErrors(['error' => $e->getMessage()]);
+ }
+ }
+
+ public function update(Request $request, $nip)
+ {
+ // Find and update the Guru record
+ $guru = Guru::findOrFail($nip);
+ $guru->update($request->only(['nama_guru', 'nomor_hp']));
+
+ // Update the related User record's password if provided
+ if ($request->filled('password')) {
+ $user = User::where('username', $nip)->first();
+ if ($user) {
+ $user->password = $request->password;
+ $user->save();
+ }
+ }
+
+ return redirect()->back()->with('success', 'Data guru berhasil diperbarui.');
+ }
+
+ public function destroy($nip)
+ {
+ // Find and delete the Guru record
+ $guru = Guru::findOrFail($nip);
+ $guru->delete();
+
+ // Delete the associated User record
+ User::where('username', $nip)->delete();
+
+ return redirect()->back()->with('success', 'Data guru berhasil dihapus.');
+ }
+}
\ No newline at end of file
diff --git a/app/Http/Controllers/KelasController.php b/app/Http/Controllers/KelasController.php
new file mode 100644
index 0000000..1df1348
--- /dev/null
+++ b/app/Http/Controllers/KelasController.php
@@ -0,0 +1,48 @@
+all());
+
+ return redirect()->back()->with('success', 'Data kelas berhasil ditambahkan.');
+ }
+
+ /**
+ * Update the specified resource in storage.
+ */
+ public function update(Request $request, Kelas $kelas)
+ {
+ $kelas->update($request->all());
+
+ return redirect()->back()->with('success', 'Data kelas berhasil diperbarui.');
+ }
+
+ /**
+ * Remove the specified resource from storage.
+ */
+ public function destroy(Kelas $kelas)
+ {
+ $kelas->delete();
+
+ return redirect()->back()->with('success', 'Data kelas berhasil dihapus.');
+ }
+}
diff --git a/app/Http/Controllers/MapelController.php b/app/Http/Controllers/MapelController.php
new file mode 100644
index 0000000..f7e234f
--- /dev/null
+++ b/app/Http/Controllers/MapelController.php
@@ -0,0 +1,48 @@
+all());
+
+ return redirect()->back()->with('success', 'Data mapel berhasil ditambahkan.');
+ }
+
+ /**
+ * Update the specified resource in storage.
+ */
+ public function update(Request $request, Mapel $mapel)
+ {
+ $mapel->update($request->all());
+
+ return redirect()->back()->with('success', 'Data mapel berhasil diperbarui.');
+ }
+
+ /**
+ * Remove the specified resource from storage.
+ */
+ public function destroy(Mapel $mapel)
+ {
+ $mapel->delete();
+
+ return redirect()->back()->with('success', 'Data mapel berhasil dihapus.');
+ }
+}
diff --git a/app/Http/Controllers/MateriController.php b/app/Http/Controllers/MateriController.php
new file mode 100644
index 0000000..b926525
--- /dev/null
+++ b/app/Http/Controllers/MateriController.php
@@ -0,0 +1,159 @@
+get();
+ $mapel = Mapel::all();
+
+ return view('materi.index', ['materi' => $materi, 'mapel' => $mapel]);
+ }
+
+ /**
+ * Show the form for creating a new resource.
+ */
+ public function create()
+ {
+ //
+ }
+
+ /**
+ * Store a newly created resource in storage.
+ */
+ public function store(Request $request)
+ {
+ $validator = Validator::make($request->all(), [
+ 'lampiran_materi' => 'required|mimes:pdf',
+ 'judul_materi' => 'required|unique:materi',
+ 'mata_pelajaran' => 'required',
+ 'keterangan' => 'required',
+ ]);
+
+ if ($validator->fails()) {
+ return redirect()->back()
+ ->withErrors($validator)
+ ->withInput();
+ }
+
+ try {
+ DB::beginTransaction();
+
+ $lampiran_path = null;
+ $file_path_lampiran = 'materi';
+
+ if ($request->file('lampiran_materi')) {
+ $file = $request->file('lampiran_materi');
+ $filename = time() . '_' . $file->getClientOriginalName();
+ $lampiran_path = $file->storeAs($file_path_lampiran, $filename, 'public');
+ }
+
+ $materi = new Materi();
+ $materi->judul_materi = $request->judul_materi;
+ $materi->keterangan = $request->keterangan;
+ $materi->lampiran_materi = $lampiran_path;
+ $materi->id_mapel = $request->mata_pelajaran;
+ $materi->save();
+
+ DB::commit();
+
+ return redirect()->back()->with('success', 'Data materi berhasil ditambahkan.');
+ } catch (\Exception $e) {
+ DB::rollback();
+ return back()->withErrors(['error' => $e->getMessage()]);
+ }
+ }
+
+ /**
+ * Display the specified resource.
+ */
+ public function show(string $id)
+ {
+ //
+ }
+
+ /**
+ * Show the form for editing the specified resource.
+ */
+ public function edit(string $id)
+ {
+ //
+ }
+
+ /**
+ * Update the specified resource in storage.
+ */
+ public function update(Request $request, string $id)
+ {
+ $validator = Validator::make($request->all(), [
+ 'lampiran_materi' => 'mimes:pdf',
+ 'judul_materi' => 'required|unique:materi,judul_materi,' . $id . ',id_materi',
+ 'mata_pelajaran' => 'required',
+ 'keterangan' => 'required',
+ ]);
+
+ if ($validator->fails()) {
+ return redirect()->back()
+ ->withErrors($validator)
+ ->withInput();
+ }
+
+ try {
+ $materi = Materi::find($id);
+
+ if (!$materi) {
+ throw new \Exception('Materi tidak ditemukan. Silahkan coba kembali.');
+ }
+
+ DB::beginTransaction();
+
+ $lampiran_path = null;
+ $file_path_lampiran = 'uploads/lampiran';
+
+ if ($request->file('lampiran_materi')) {
+ if ($lampiran_path) {
+ Storage::disk('public')->delete($lampiran_path);
+ }
+
+ $foto = $request->file('lampiran_materi');
+ $lampiran_path = $foto->store($file_path_lampiran, 'public');
+ }
+
+ $materi->judul_materi = $request->judul_materi;
+ $materi->keterangan = $request->keterangan;
+ $materi->lampiran_materi = $lampiran_path;
+ $materi->id_mapel = $request->mata_pelajaran;
+ $materi->save();
+
+ DB::commit();
+
+ return redirect()->back()->with('success', 'Data materi berhasil diperbarui.');
+ } catch (\Exception $e) {
+ DB::rollback();
+ return back()->withErrors(['error' => $e->getMessage()]);
+ }
+ }
+
+ /**
+ * Remove the specified resource from storage.
+ */
+ public function destroy(string $id)
+ {
+ $materi = Materi::findOrFail($id);
+ $materi->delete();
+
+ return redirect()->back()->with('success', 'Data materi berhasil dihapus.');
+ }
+}
diff --git a/app/Http/Controllers/MengajarController.php b/app/Http/Controllers/MengajarController.php
new file mode 100644
index 0000000..f421b6b
--- /dev/null
+++ b/app/Http/Controllers/MengajarController.php
@@ -0,0 +1,165 @@
+get();
+ $mapel = Mapel::all();
+ $guru = Guru::all();
+ $kelas = Kelas::all();
+
+ return view('mengajar.index', ['mengajar' => $mengajar, 'mapel' => $mapel, 'guru' => $guru, 'kelas' => $kelas]);
+ }
+
+ public function show($classId)
+ {
+ $mengajar = Mengajar::where('id_kelas', $classId)->get();
+ $kelas = Kelas::find($classId);
+ return view('mengajar.show', compact('mengajar', 'kelas'));
+ }
+
+ /**
+ * Show the form for creating a new resource.
+ *
+ * @return \Illuminate\Http\Response
+ */
+ public function create()
+ {
+ //
+ }
+
+ /**
+ * Store a newly created resource in storage.
+ *
+ * @param \Illuminate\Http\Request $request
+ * @return \Illuminate\Http\Response
+ */
+ public function store(Request $request)
+ {
+ $validator = Validator::make($request->all(), [
+ 'kelas' => 'required',
+ 'guru' => 'required',
+ 'mata_pelajaran' => 'required',
+ ]);
+
+ if ($validator->fails()) {
+ return redirect()->back()
+ ->withErrors($validator)
+ ->withInput();
+ }
+
+ try {
+ DB::beginTransaction();
+
+ $mengajar = new Mengajar();
+ $mengajar->id_kelas = $request->kelas;
+ $mengajar->id_guru = $request->guru;
+ $mengajar->id_mapel = $request->mata_pelajaran;
+ $mengajar->save();
+
+ DB::commit();
+
+ return redirect()->back()->with('success', 'Data mengajar berhasil ditambahkan.');
+ } catch (\Exception $e) {
+ DB::rollback();
+ return back()->withErrors(['error' => $e->getMessage()]);
+ }
+ }
+
+ /**
+ * Display the specified resource.
+ *
+ * @param int $id
+ * @return \Illuminate\Http\Response
+ */
+ // public function show($id)
+ // {
+ // //
+ // }
+
+ /**
+ * Show the form for editing the specified resource.
+ *
+ * @param int $id
+ * @return \Illuminate\Http\Response
+ */
+ public function edit($id)
+ {
+ //
+ }
+
+ /**
+ * Update the specified resource in storage.
+ *
+ * @param \Illuminate\Http\Request $request
+ * @param int $id
+ * @return \Illuminate\Http\Response
+ */
+ public function update(Request $request, $id)
+ {
+ $validator = Validator::make($request->all(), [
+ 'kelas' => 'required',
+ 'guru' => 'required',
+ 'mata_pelajaran' => 'required',
+ ]);
+
+ if ($validator->fails()) {
+ return redirect()->back()
+ ->withErrors($validator)
+ ->withInput();
+ }
+
+ try {
+ $mengajar = Mengajar::find($id);
+
+ if (!$mengajar) {
+ throw new \Exception('Mengajar tidak ditemukan. Silahkan coba kembali.');
+ }
+
+ DB::beginTransaction();
+
+ $mengajar->id_kelas = $request->kelas;
+ $mengajar->id_guru = $request->guru;
+ $mengajar->id_mapel = $request->mata_pelajaran;
+ $mengajar->save();
+
+ DB::commit();
+
+ return redirect()->back()->with('success', 'Data mengajar berhasil ditambahkan.');
+ } catch (\Exception $e) {
+ DB::rollback();
+ return back()->withErrors(['error' => $e->getMessage()]);
+ }
+ }
+
+ /**
+ * Remove the specified resource from storage.
+ *
+ * @param int $id
+ * @return \Illuminate\Http\Response
+ */
+ public function destroy($id)
+ {
+ $mengajar = Mengajar::findOrFail($id);
+ $mengajar->delete();
+
+ return redirect()->back()->with('success', 'Data mengajar berhasil dihapus.');
+ }
+}
diff --git a/app/Http/Controllers/SiswaController.php b/app/Http/Controllers/SiswaController.php
new file mode 100644
index 0000000..e6e8932
--- /dev/null
+++ b/app/Http/Controllers/SiswaController.php
@@ -0,0 +1,105 @@
+get();
+ $kelas = Kelas::find($classId);
+ return view('siswa.show', compact('siswa', 'kelas'));
+ }
+
+ public function store(Request $request)
+ {
+ $validator = Validator::make($request->all(), [
+ 'nisn' => 'required|unique:siswa',
+ 'nama_siswa' => 'required',
+ 'tempat_lahir' => 'required',
+ 'tanggal_lahir' => 'required',
+ 'nomor_hp' => 'required|max:13',
+ 'alamat' => 'required',
+ 'id_kelas' => 'required',
+ 'password' => 'required',
+ ]);
+
+ if ($validator->fails()) {
+ return redirect()->back()
+ ->withErrors($validator)
+ ->withInput();
+ }
+
+ try {
+ DB::beginTransaction();
+
+ $users = new User();
+ $users->name = $request->nama_siswa;
+ $users->username = $request->nisn;
+ $users->password = $request->password;
+ $users->save();
+
+ $siswa = new Siswa();
+ $siswa->nisn = $request->nisn;
+ $siswa->nama_siswa = $request->nama_siswa;
+ $siswa->tempat_lahir = $request->tempat_lahir;
+ $siswa->tanggal_lahir = $request->tanggal_lahir;
+ $siswa->nomor_hp = $request->nomor_hp;
+ $siswa->alamat = $request->alamat;
+ $siswa->password = $request->password;
+ $siswa->id_kelas = $request->id_kelas;
+ $siswa->save();
+
+ DB::commit();
+
+ return redirect()->back()->with('success', 'Data siswa berhasil ditambahkan.');
+ } catch (\Exception $e) {
+ DB::rollback();
+ return back()->withErrors(['error' => $e->getMessage()]);
+ }
+ }
+
+
+ public function update(Request $request, $nisn)
+ {
+ $siswa = Siswa::findOrFail($nisn);
+ $siswa->update($request->except('password'));
+
+ if ($request->filled('password')) {
+ $user = User::where('username', $nisn)->first();
+ if ($user) {
+ $user->password = $request->password;
+ $user->save();
+ }
+ }
+
+ return redirect()->back()->with('success', 'Data siswa berhasil diperbarui.');
+ }
+
+ public function destroy($nisn)
+ {
+ $siswa = Siswa::findOrFail($nisn);
+ $siswa->delete();
+
+ // Optionally, delete the related User
+ User::where('username', $nisn)->delete();
+ // $users->delete();
+
+ return redirect()->back()->with('success', 'Data siswa berhasil dihapus.');
+ }
+}
\ No newline at end of file
diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php
new file mode 100644
index 0000000..05abd32
--- /dev/null
+++ b/app/Http/Controllers/UserController.php
@@ -0,0 +1,36 @@
+all());
+ return redirect()->route('pengguna.index');
+ }
+
+ public function update(Request $request, $id)
+ {
+ $pengguna = User::findOrFail($id);
+ $pengguna->update($request->all());
+ return redirect()->route('pengguna.index');
+ }
+
+ public function destroy($id)
+ {
+ $pengguna = User::findOrFail($id);
+ $pengguna->delete();
+ return redirect()->route('pengguna.index');
+ }
+}
\ No newline at end of file
diff --git a/app/Http/Controllers/api/DashboardMobileController.php b/app/Http/Controllers/api/DashboardMobileController.php
new file mode 100644
index 0000000..7f28624
--- /dev/null
+++ b/app/Http/Controllers/api/DashboardMobileController.php
@@ -0,0 +1,82 @@
+input('id_kelas');
+
+ $mataPelajaran = DB::table('mata_pelajaran')
+ ->select('mata_pelajaran.id_mapel', 'mata_pelajaran.nama_mapel', 'kelas.nama_kelas')
+ ->join('mengajar as mengajar_mapel', 'mengajar_mapel.id_mapel', '=', 'mata_pelajaran.id_mapel')
+ ->join('kelas', 'kelas.id_kelas', '=', 'mengajar_mapel.id_kelas')
+ ->where('kelas.id_kelas', $id_kelas)
+ ->get();
+
+ return response()->json($mataPelajaran);
+}
+
+public function tampilTugas(Request $request)
+{
+ $id_kelas = $request->input('id_kelas');
+
+ $tugas = DB::table('tugas')
+ ->select('tugas.id_tugas', 'materi.judul_materi', 'tugas.tenggat_waktu', 'tugas.keterangan')
+ ->join('materi', 'materi.id_materi', '=', 'tugas.id_materi')
+ ->join('mata_pelajaran', 'mata_pelajaran.id_mapel', '=', 'materi.id_mapel')
+ ->join('mengajar', 'mengajar.id_mapel', '=', 'mata_pelajaran.id_mapel')
+ ->join('kelas', 'kelas.id_kelas', '=', 'mengajar.id_kelas')
+ ->where('kelas.id_kelas', $id_kelas)
+ ->get();
+
+ return response()->json($tugas);
+}
+
+
+ public function tampilMateri(Request $request)
+ {
+ $id_mapel = $request->input('id_mapel');
+
+ $materi = DB::table('materi')
+ ->select('materi.id_materi', 'materi.judul_materi', 'materi.keterangan')
+ ->join('mata_pelajaran', 'mata_pelajaran.id_mapel', '=', 'materi.id_mapel')
+ ->where('mata_pelajaran.id_mapel', $id_mapel)
+ ->get();
+
+ return response()->json($materi);
+
+ }
+
+
+ //tidak digunakan
+ public function downloadMateri(Request $request)
+ {
+
+ $id_materi = $request->input('id_materi');
+
+
+ $fileName = DB::table('materi')
+ ->where('id_materi', $id_materi)
+ ->value('lampiran_materi');
+
+ // Dapatkan path lengkap ke file
+ $filePath = public_path('assets/documents/materi/' . $fileName);
+
+ // Periksa apakah file ada
+ if (file_exists($filePath)) {
+ // Jika ada, kirimkan file sebagai respons
+ return response()
+ ->download($filePath, $fileName);
+ } else {
+ // Jika tidak, kirimkan respons file tidak ditemukan
+ return response()->json();
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/app/Http/Controllers/api/GuruMobileController.php b/app/Http/Controllers/api/GuruMobileController.php
new file mode 100644
index 0000000..11859ef
--- /dev/null
+++ b/app/Http/Controllers/api/GuruMobileController.php
@@ -0,0 +1,386 @@
+input('id_guru');
+
+ $kelas = DB::table('kelas')
+ ->select('kelas.*')
+ ->join('mengajar', 'mengajar.id_kelas', '=', 'kelas.id_kelas')
+ ->where('mengajar.id_guru', $id_guru)
+ ->get();
+
+ return response()->json($kelas);
+ }
+
+ public function tampilMataPelajaranGuru(Request $request)
+ {
+ $id_guru = $request->input('id_guru');
+
+ $mataPelajaranguru = DB::table('mata_pelajaran')
+ ->select('mata_pelajaran.id_mapel', 'mata_pelajaran.nama_mapel', 'kelas.nama_kelas', 'kelas.id_kelas')
+ ->join('mengajar as mengajar_mapel', 'mengajar_mapel.id_mapel', '=', 'mata_pelajaran.id_mapel')
+ ->join('kelas', 'kelas.id_kelas', '=', 'mengajar_mapel.id_kelas')
+ ->where('mengajar_mapel.id_guru', $id_guru)
+ ->get();
+
+ return response()->json($mataPelajaranguru);
+ }
+
+
+
+ public function tampilTugasDetailMateriGuru(Request $request)
+ {
+ $id_materi = $request->input('id_materi');
+
+ $tugas = DB::table('tugas')
+ ->select('tugas.id_tugas', 'materi.judul_materi', 'tugas.tenggat_waktu', 'tugas.keterangan')
+ ->join('materi', 'materi.id_materi', '=', 'tugas.id_materi')
+ ->where('tugas.id_materi', $id_materi)
+ ->orderBy('tugas.id_tugas', 'desc')
+ ->get();
+
+
+ return response()->json($tugas);
+ }
+
+ public function tambahTugasGuru(Request $request)
+ {
+ // Validasi input
+ $validated = $request->validate([
+ 'id_materi' => 'required|integer',
+ 'tenggat_waktu' => 'required|date_format:Y-m-d',
+ 'keterangan' => 'required|string',
+ 'file' => 'nullable|string', // file bisa null
+ 'message' => 'nullable|string',
+ ]);
+
+ $id_materi = $validated['id_materi'];
+ $tenggat_waktu = $validated['tenggat_waktu'];
+ $keterangan = $validated['keterangan'];
+ $fileBase64 = $validated['file'] ?? null;
+
+ try {
+ // Cek apakah sudah ada tugas dengan id_materi yang sama
+ $existingTugas = DB::table('tugas')
+ ->where('id_materi', $id_materi)
+ ->first();
+
+ if ($existingTugas) {
+ return response()->json(['message' => 'Tugas untuk materi ini sudah ada'], 400);
+ }
+
+ $fileName = null;
+
+ // Jika file disertakan, proses file
+ if ($fileBase64) {
+ // Decode base64 file
+ $fileData = base64_decode($fileBase64);
+
+ // Generate nama file dengan format idMateri_tanggalWaktu.pdf
+ $fileName = $id_materi . '_' . now()->format('YmdHis') . '.pdf';
+ $targetPath = public_path('storage/tugas/') . $fileName;
+
+ // Simpan file ke storage
+ file_put_contents($targetPath, $fileData);
+ }
+
+ // Tambah tugas baru
+ DB::table('tugas')->insert([
+ 'id_materi' => $id_materi,
+ 'tenggat_waktu' => $tenggat_waktu,
+ 'keterangan' => $keterangan,
+ 'file_path' => $fileName, // bisa bernilai null jika file tidak disertakan
+ ]);
+
+ $title = "Tugas Baru";
+ $message = "Tugas baru telah ditambahkan ";
+
+ broadcast(new HelloEvent($title, $message))->toOthers();
+
+ return response()->json(['message' => 'Tugas berhasil ditambahkan'], 200);
+ } catch (\Exception $e) {
+ return response()->json(['message' => 'Terjadi kesalahan: ' . $e->getMessage()], 500);
+ }
+ }
+
+
+public function editTugasGuru(Request $request)
+{
+ // Validasi input
+ $validated = $request->validate([
+ 'id_tugas' => 'required|integer',
+ 'tenggat_waktu' => 'required|date_format:Y-m-d',
+ 'keterangan' => 'required|string',
+ 'file' => 'nullable|string' // Tambahkan validasi untuk file (Base64 encoded string)
+ ]);
+
+ $id_tugas = $validated['id_tugas'];
+ $tenggat_waktu = $validated['tenggat_waktu'];
+ $keterangan = $validated['keterangan'];
+ $fileBase64 = $validated['file'] ?? null; // Ambil file jika ada
+
+ try {
+ // Update tugas berdasarkan id_tugas
+ $updateData = [
+ 'tenggat_waktu' => $tenggat_waktu,
+ 'keterangan' => $keterangan,
+ ];
+
+ if ($fileBase64) {
+ // Decode file dari Base64 ke binary
+ $binaryFile = base64_decode($fileBase64);
+
+ // Generate nama file dengan format idTugas_tanggalWaktu.pdf
+ $filename = $id_tugas . '_' . now()->format('YmdHis') . '.pdf';
+ $targetPath = public_path('storage/tugas/') . $filename;
+ file_put_contents($targetPath, $binaryFile);
+
+ // Tambahkan nama file ke data yang akan diupdate
+ $updateData['file_path'] = 'storage/tugas/' . $filename;
+ }
+
+ $updated = DB::table('tugas')
+ ->where('id_tugas', $id_tugas)
+ ->update($updateData);
+
+ if ($updated) {
+ return response()->json(['message' => 'Tugas berhasil diupdate']);
+ } else {
+ return response()->json(['message' => 'Tidak ada perubahan yang dilakukan'], 200);
+ }
+ } catch (\Exception $e) {
+ return response()->json(['message' => 'Terjadi kesalahan: ' . $e->getMessage()], 500);
+ }
+}
+
+
+
+ public function tampilPengumpulanTugasGuru(Request $request)
+ {
+ // Validasi input
+ $validated = $request->validate([
+ 'id_guru' => 'required|integer',
+ ]);
+
+ $id_guru = $validated['id_guru'];
+
+ try {
+ $pengumpulanTugas = DB::table('pengumpulan_tugas')
+ ->join('tugas', 'pengumpulan_tugas.id_tugas', '=', 'tugas.id_tugas')
+ ->join('materi', 'tugas.id_materi', '=', 'materi.id_materi')
+ ->join('mata_pelajaran', 'materi.id_mapel', '=', 'mata_pelajaran.id_mapel')
+ ->join('mengajar', function ($join) use ($id_guru) {
+ $join->on('mengajar.id_mapel', '=', 'mata_pelajaran.id_mapel')
+ ->where('mengajar.id_guru', '=', $id_guru);
+ })
+ ->join('siswa', 'pengumpulan_tugas.id_siswa', '=', 'siswa.nisn') // Join ke tabel siswa
+ ->select(
+ 'pengumpulan_tugas.*',
+ 'siswa.nama_siswa', // Menambahkan nama_siswa ke dalam hasil query
+ 'materi.judul_materi'
+ )
+ ->get();
+
+ return response()->json($pengumpulanTugas);
+ } catch (\Exception $e) {
+ return response()->json(['message' => 'Terjadi kesalahan: ' . $e->getMessage()], 500);
+ }
+ }
+
+ public function editNilaiTugasGuru(Request $request)
+ {
+ // Validasi input
+ $validated = $request->validate([
+ 'id_pengumpulan' => 'required|integer|exists:pengumpulan_tugas,id_pengumpulan',
+ 'nilai' => 'required|integer|min:0|max:100', // asumsi nilai antara 0 dan 100
+ ]);
+
+ $id_pengumpulan = $validated['id_pengumpulan'];
+ $nilai = $validated['nilai'];
+
+ try {
+ // Cari pengumpulan tugas berdasarkan id_pengumpulan
+ $pengumpulanTugas = DB::table('pengumpulan_tugas')
+ ->where('id_pengumpulan', $id_pengumpulan)
+ ->first();
+
+ // Cek apakah pengumpulan tugas ditemukan
+ if (!$pengumpulanTugas) {
+ return response()->json(['message' => 'Pengumpulan tugas tidak ditemukan.'], 404);
+ }
+
+ // Update nilai
+ DB::table('pengumpulan_tugas')
+ ->where('id_pengumpulan', $id_pengumpulan)
+ ->update(['nilai' => $nilai]);
+
+ return response()->json(['message' => 'Nilai berhasil diperbarui.']);
+ } catch (\Exception $e) {
+ return response()->json(['message' => 'Terjadi kesalahan: ' . $e->getMessage()], 500);
+ }
+ }
+
+ // public function downloadTugas(Request $request)
+ // {
+
+
+ // // Validasi request
+ // $request->validate([
+ // 'id_pengumpulan' => 'required|string', // Pastikan 'file_name' sesuai dengan nama field yang digunakan di Android
+ // ]);
+
+ // $id_pengumpulan = $request->input('id_pengumpulan');
+
+
+ // $fileName = DB::table('pengumpulan_tugas')
+ // ->where('id_pengumpulan', $id_pengumpulan)
+ // ->value('lampiran_tugas');
+
+ // // Dapatkan path lengkap ke file
+ // $filePath = public_path('documents/' . $fileName);
+
+ // // Periksa apakah file ada
+ // if (file_exists($filePath)) {
+ // // Jika ada, kirimkan file sebagai respons
+ // return response()->download($filePath, $fileName);
+ // } else {
+ // // Jika tidak, kirimkan respons file tidak ditemukan
+ // return response()->json(['message' => 'File tidak ditemukan'], 404);
+ // }
+ // }
+
+
+ public function downloadTugas(Request $request)
+ {
+ // Validasi request
+ $request->validate([
+ 'id_pengumpulan' => 'required|string', // Pastikan 'file_name' sesuai dengan nama field yang digunakan di Android
+ ]);
+
+ $id_pengumpulan = $request->input('id_pengumpulan');
+
+ // Dapatkan nama file dari database
+ $fileName = DB::table('pengumpulan_tugas')
+ ->where('id_pengumpulan', $id_pengumpulan)
+ ->value('lampiran_tugas');
+
+ if ($fileName) {
+ // Dapatkan URL lengkap ke file
+ $fileUrl = Storage::url($fileName);
+
+ // Tambahkan header "ngrok-skip-browser-warning"
+ return response()->json([
+ 'fileUrl' => asset($fileUrl),
+ ]);
+ } else {
+ // Jika tidak ada data materi yang ditemukan
+ return response()->json(['message' => 'Materi tidak ditemukan'], 404);
+ }
+ }
+
+
+ public function tampilTugasGuru(Request $request)
+ {
+ $id_guru = $request->input('id_guru');
+
+ $tugas = DB::table('tugas')
+ ->select('tugas.id_tugas', 'materi.judul_materi', 'tugas.tenggat_waktu', 'tugas.keterangan')
+ ->join('materi', 'materi.id_materi', '=', 'tugas.id_materi')
+ ->join('mata_pelajaran', 'mata_pelajaran.id_mapel', '=', 'materi.id_mapel')
+ ->join('kelas', 'kelas.id_kelas', '=', 'mata_pelajaran.id_kelas')
+ ->join('mengajar', 'mengajar.id_mapel', '=', 'mata_pelajaran.id_mapel')
+ ->where('mengajar.id_guru', $id_guru)
+ ->orderBy('tugas.id_tugas', 'desc')
+ ->get();
+
+ return response()->json($tugas);
+ }
+
+ public function updatePasswordGuru(Request $request)
+ {
+ $nip = $request->input('nip');
+ $oldPassword = $request->input('old_password');
+ $newPassword = $request->input('new_password');
+
+ $user = DB::table('guru')->where('nip', $nip)->first();
+
+ if ($user && $user->password === $oldPassword) {
+ // The old password matches, so update the password
+ DB::table('guru')->where('nip', $nip)->update([
+ 'password' => $newPassword,
+ ]);
+
+ $updatedUser = DB::table('guru')->where('nip', $nip)->first();
+
+ $response = array(
+ 'success' => true,
+ 'message' => 'Password telah diperbarui',
+ );
+ return response()->json($response);
+ } else {
+ return "Invalid old password";
+ }
+ }
+
+ public function tampilMateriGuru(Request $request)
+ {
+ $id_mapel = $request->input('id_mapel');
+
+ $materi = DB::table('materi')
+ ->select('materi.id_materi', 'materi.judul_materi', 'materi.keterangan')
+ ->where('materi.id_mapel', $id_mapel)
+ ->get();
+
+ return response()->json($materi);
+ }
+
+ public function TambahMateriGuru(Request $request)
+ {
+ // Ambil input dari request
+ $lampiranMateri = $request->input('lampiran_materi');
+ $judulMateri = $request->input('judul_materi');
+ $keterangan = $request->input('keterangan');
+ $idMapel = $request->input('id_mapel');
+
+ try {
+ // Decode file dari Base64 ke binary
+ $binaryFile = base64_decode($lampiranMateri);
+
+ // Generate nama file dengan format judulMateri_tanggalWaktu.pdf
+ $filename = $judulMateri . '_' . now()->format('YmdHis') . '.pdf';
+ $targetPath = public_path('storage/materi/') . $filename;
+
+ // Simpan file ke path target
+ file_put_contents($targetPath, $binaryFile);
+
+ // Tambahkan data ke database
+ DB::table('materi')->insert([
+ 'lampiran_materi' => 'materi/' . $filename,
+ 'judul_materi' => $judulMateri,
+ 'keterangan' => $keterangan,
+ 'id_mapel' => $idMapel,
+ 'created_at' => now(),
+ 'updated_at' => now(),
+ ]);
+
+ return response()->json(['message' => 'File berhasil diupload dan data tugas ditambahkan'], 200);
+ } catch (\Exception $e) {
+ // Tangani semua kesalahan yang terjadi dan kembalikan respons kesalahan
+ return response()->json(['message' => 'Gagal menambahkan materi: ' . $e->getMessage()], 500);
+ }
+ }
+
+
+}
diff --git a/app/Http/Controllers/api/LoginMobileController.php b/app/Http/Controllers/api/LoginMobileController.php
new file mode 100644
index 0000000..02b7a27
--- /dev/null
+++ b/app/Http/Controllers/api/LoginMobileController.php
@@ -0,0 +1,94 @@
+input('nisn');
+ $password = $request->input('password');
+
+ $siswa = DB::table('siswa')
+ ->join('kelas', 'siswa.id_kelas', '=', 'kelas.id_kelas')
+ ->select('siswa.*', 'kelas.nama_kelas')
+ ->where('siswa.nisn', $nisn)
+ ->first();
+
+ if (!$siswa) {
+ // Jika nisn tidak ditemukan
+ $response = array(
+ 'success' => false,
+ 'message' => 'NISN tidak ditemukan',
+ );
+ } else if ($password != $siswa->password) {
+ // Jika nisn cocok tetapi password salah
+ $response = array(
+ 'success' => false,
+ 'message' => 'Password salah',
+ );
+ } else {
+ // Jika nisn dan password cocok
+ $response = array(
+ 'success' => true,
+ 'message' => 'Login Berhasil',
+ 'siswa' => array(
+ 'nisn' => $siswa->nisn,
+ 'nama_siswa' => $siswa->nama_siswa,
+ 'tempat_lahir' => $siswa->tempat_lahir,
+ 'tanggal_lahir' => $siswa->tanggal_lahir,
+ 'password' => $siswa->password,
+ 'nomor_hp' => $siswa->nomor_hp,
+ 'id_kelas' => $siswa->id_kelas,
+ 'nama_kelas' => $siswa->nama_kelas, // Menambahkan nama_kelas
+ 'alamat' => $siswa->alamat,
+ ),
+ );
+ }
+
+ return response()->json($response);
+ }
+
+
+ public function loginGuru (Request $request){
+ $nip = $request->input('nip');
+ $password = $request->input('password');
+
+ $guru = DB::table('guru')
+ ->select('guru.*')
+ ->where('guru.nip', $nip)
+ ->first();
+
+ if (!$guru) {
+ // Jika nisn tidak ditemukan
+ $response = array(
+ 'success' => false,
+ 'message' => 'NIP tidak ditemukan',
+ );
+ } else if ($password != $guru->password) {
+ // Jika nisn cocok tetapi password salah
+ $response = array(
+ 'success' => false,
+ 'message' => 'Password salah',
+ );
+ } else {
+ // Jika nisn dan password cocok
+ $response = array(
+ 'success' => true,
+ 'message' => 'Login Berhasil',
+ 'guru' => array(
+ 'nip' => $guru->nip,
+ 'nama_guru' => $guru->nama_guru,
+ 'password' => $guru->password,
+ 'nomor_hp' => $guru->nomor_hp
+ ),
+ );
+ }
+
+ return response()->json($response);
+ }
+}
diff --git a/app/Http/Controllers/api/MateriMobileController.php b/app/Http/Controllers/api/MateriMobileController.php
new file mode 100644
index 0000000..3743548
--- /dev/null
+++ b/app/Http/Controllers/api/MateriMobileController.php
@@ -0,0 +1,72 @@
+validate([
+ 'id_materi' => 'required|string',
+ ]);
+
+ $id_materi = $request->input('id_materi');
+
+ // Dapatkan nama file dari database
+ $fileName = DB::table('materi')
+ ->where('id_materi', $id_materi)
+ ->value('lampiran_materi');
+
+ if ($fileName) {
+ // Dapatkan path lengkap ke file
+ $filePath = public_path('storage/' . $fileName);
+
+ // Periksa apakah file ada
+ if (file_exists($filePath)) {
+ // Tambahkan header "ngrok-skip-browser-warning"
+ return response()->download($filePath, basename($fileName), [], 'ngrok-skip-browser-warning: any');
+ } else {
+ // Jika tidak, kirimkan respons file tidak ditemukan
+ return response()->json(['message' => 'File tidak ditemukan'], 404);
+ }
+ } else {
+ // Jika tidak ada data materi yang ditemukan
+ return response()->json(['message' => 'Materi tidak ditemukan'], 404);
+ }
+ }
+
+ public function lihatMateri(Request $request)
+ {
+ // Validasi request
+ $request->validate([
+ 'id_materi' => 'required|string',
+ ]);
+
+ $id_materi = $request->input('id_materi');
+
+ // Dapatkan nama file dari database
+ $fileName = DB::table('materi')
+ ->where('id_materi', $id_materi)
+ ->value('lampiran_materi');
+
+ if ($fileName) {
+ // Dapatkan URL lengkap ke file
+ $fileUrl = Storage::url($fileName);
+
+ // Tambahkan header "ngrok-skip-browser-warning"
+ return response()->json([
+ 'fileUrl' => asset($fileUrl),
+ ]);
+ } else {
+ // Jika tidak ada data materi yang ditemukan
+ return response()->json(['message' => 'Materi tidak ditemukan'], 404);
+ }
+ }
+}
diff --git a/app/Http/Controllers/api/TugasMobileController.php b/app/Http/Controllers/api/TugasMobileController.php
new file mode 100644
index 0000000..bf5a393
--- /dev/null
+++ b/app/Http/Controllers/api/TugasMobileController.php
@@ -0,0 +1,130 @@
+all(), [
+ // 'id_tugas' => 'required|integer',
+ // 'id_siswa' => 'required|integer',
+ // 'essay_answer' => 'required|string',
+ // 'file_tugas' => 'nullable|string', // Validasi untuk file tugas base64 string, bisa nullable
+ // ]);
+
+ // if ($validator->fails()) {
+ // return response()->json(['message' => 'Validation error', 'errors' => $validator->errors()], 400);
+ // }
+
+ $idTugas = $request->input('id_tugas');
+ $idSiswa = $request->input('id_siswa');
+ $essayAnswer = $request->input('essay_answer');
+ $fileTugas = $request->input('file_tugas'); // Base64 encoded string
+
+ try {
+ // Cek apakah siswa sudah pernah meng-upload tugas dengan idTugas dan idSiswa yang sama sebelumnya
+ $existingSubmission = DB::table('pengumpulan_tugas')
+ ->where('id_tugas', $idTugas)
+ ->where('id_siswa', $idSiswa)
+ ->exists();
+
+ if ($existingSubmission) {
+ return response()->json(['message' => 'Siswa sudah meng-upload tugas ini sebelumnya'], 400);
+ }
+
+ $filename = null;
+ // Proses file jika ada
+ if (!empty($fileTugas)) {
+ // Decode file dari Base64 ke binary
+ $binaryFile = base64_decode($fileTugas);
+
+ // Generate nama file dengan format idSiswa_idTugas_tanggalWaktu.pdf
+ $filename = $idSiswa . '_' . $idTugas . '_' . now()->format('YmdHis') . '.pdf';
+ $filePath = 'documents/' . $filename;
+
+ // Simpan file ke storage/app/public/documents
+ Storage::put('public/' . $filePath, $binaryFile);
+ }
+
+ // Tambahkan data ke database
+ DB::table('pengumpulan_tugas')->insert([
+ 'lampiran_tugas' => $filePath,
+ 'essay_answer' => $essayAnswer,
+ 'id_tugas' => $idTugas,
+ 'id_siswa' => $idSiswa,
+ 'nilai' => 0,
+ 'created_at' => now(),
+ 'updated_at' => now(),
+ ]);
+
+ return response()->json(['message' => 'Data tugas berhasil ditambahkan'], 200);
+ } catch (\Exception $e) {
+ // Tangani jika terjadi kesalahan
+ return response()->json(['message' => 'Terjadi kesalahan saat mengupload file atau menambahkan data tugas', 'error' => $e->getMessage()], 500);
+ }
+ }
+
+public function lihatTugas(Request $request)
+{
+ // Validasi request
+ $request->validate([
+ 'id_tugas' => 'required|integer',
+ ]);
+
+ $id_tugas = $request->input('id_tugas');
+
+ // Dapatkan nama file dari database
+ $fileName = DB::table('tugas')
+ ->where('id_tugas', $id_tugas)
+ ->value('file_path');
+
+ if ($fileName) {
+ // Dapatkan URL lengkap ke file
+ $fileUrl = Storage::url($fileName);
+
+ // Tambahkan header "ngrok-skip-browser-warning"
+ return response()->json([
+ 'fileUrl' => asset($fileUrl),
+ ]);
+ } else {
+ // Jika tidak ada data tugas yang ditemukan
+ return response()->json(['message' => 'Tugas tidak ditemukan'], 404);
+ }
+}
+
+ public function tampilRiwayatPengumpulanTugas(Request $request)
+ {
+ // Validasi input
+ $validated = $request->validate([
+ 'id_tugas' => 'required|integer',
+ 'id_siswa' => 'required|integer',
+ ]);
+
+ $id_tugas = $validated['id_tugas'];
+ $id_siswa = $validated['id_siswa'];
+
+ try {
+ // Cari data pengumpulan tugas berdasarkan id_tugas dan id_siswa
+ $pengumpulanTugas = DB::table('pengumpulan_tugas')
+ ->where('id_tugas', $id_tugas)
+ ->where('id_siswa', $id_siswa)
+ ->get();
+
+ if ($pengumpulanTugas->isEmpty()) {
+ return response()->json(['message' => 'Data tidak ditemukan'], 404);
+ }
+
+ return response()->json($pengumpulanTugas);
+ } catch (\Exception $e) {
+ return response()->json(['message' => 'Terjadi kesalahan: ' . $e->getMessage()], 500);
+ }
+ }
+}
diff --git a/app/Http/Controllers/api/UpdatePasswordMobileController.php b/app/Http/Controllers/api/UpdatePasswordMobileController.php
new file mode 100644
index 0000000..e7acf2a
--- /dev/null
+++ b/app/Http/Controllers/api/UpdatePasswordMobileController.php
@@ -0,0 +1,36 @@
+input('nisn');
+ $oldPassword = $request->input('old_password');
+ $newPassword = $request->input('new_password');
+
+ $user = DB::table('siswa')->where('nisn', $nisn)->first();
+
+ if ($user && $user->password === $oldPassword) {
+ // The old password matches, so update the password
+ DB::table('siswa')->where('nisn', $nisn)->update([
+ 'password' => $newPassword,
+ ]);
+
+ $updatedUser = DB::table('siswa')->where('nisn', $nisn)->first();
+
+ $response = array(
+ 'success' => true,
+ 'message' => 'Password telah diperbarui',
+ );
+ return response()->json($response);
+ } else {
+ return "Invalid old password";
+ }
+ }
+}
diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php
new file mode 100644
index 0000000..d3722c2
--- /dev/null
+++ b/app/Http/Kernel.php
@@ -0,0 +1,67 @@
+
+ */
+ protected $middleware = [
+ // \App\Http\Middleware\TrustHosts::class,
+ \App\Http\Middleware\TrustProxies::class,
+ \Fruitcake\Cors\HandleCors::class,
+ \App\Http\Middleware\PreventRequestsDuringMaintenance::class,
+ \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
+ \App\Http\Middleware\TrimStrings::class,
+ \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
+ ];
+
+ /**
+ * The application's route middleware groups.
+ *
+ * @var array>
+ */
+ protected $middlewareGroups = [
+ 'web' => [
+ \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' => [
+ // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
+ 'throttle:api',
+ \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,
+ '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,
+ ];
+}
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/EncryptCookies.php b/app/Http/Middleware/EncryptCookies.php
new file mode 100644
index 0000000..867695b
--- /dev/null
+++ b/app/Http/Middleware/EncryptCookies.php
@@ -0,0 +1,17 @@
+
+ */
+ protected $except = [
+ //
+ ];
+}
diff --git a/app/Http/Middleware/PreventRequestsDuringMaintenance.php b/app/Http/Middleware/PreventRequestsDuringMaintenance.php
new file mode 100644
index 0000000..74cbd9a
--- /dev/null
+++ b/app/Http/Middleware/PreventRequestsDuringMaintenance.php
@@ -0,0 +1,17 @@
+
+ */
+ protected $except = [
+ //
+ ];
+}
diff --git a/app/Http/Middleware/RedirectIfAuthenticated.php b/app/Http/Middleware/RedirectIfAuthenticated.php
new file mode 100644
index 0000000..a2813a0
--- /dev/null
+++ b/app/Http/Middleware/RedirectIfAuthenticated.php
@@ -0,0 +1,32 @@
+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..88cadca
--- /dev/null
+++ b/app/Http/Middleware/TrimStrings.php
@@ -0,0 +1,19 @@
+
+ */
+ protected $except = [
+ 'current_password',
+ 'password',
+ 'password_confirmation',
+ ];
+}
diff --git a/app/Http/Middleware/TrustHosts.php b/app/Http/Middleware/TrustHosts.php
new file mode 100644
index 0000000..7186414
--- /dev/null
+++ b/app/Http/Middleware/TrustHosts.php
@@ -0,0 +1,20 @@
+
+ */
+ public function hosts()
+ {
+ return [
+ $this->allSubdomainsOfApplicationUrl(),
+ ];
+ }
+}
diff --git a/app/Http/Middleware/TrustProxies.php b/app/Http/Middleware/TrustProxies.php
new file mode 100644
index 0000000..3391630
--- /dev/null
+++ b/app/Http/Middleware/TrustProxies.php
@@ -0,0 +1,28 @@
+|string|null
+ */
+ protected $proxies;
+
+ /**
+ * The headers that should be used to detect proxies.
+ *
+ * @var int
+ */
+ protected $headers =
+ Request::HEADER_X_FORWARDED_FOR |
+ Request::HEADER_X_FORWARDED_HOST |
+ Request::HEADER_X_FORWARDED_PORT |
+ Request::HEADER_X_FORWARDED_PROTO |
+ Request::HEADER_X_FORWARDED_AWS_ELB;
+}
diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php
new file mode 100644
index 0000000..9e86521
--- /dev/null
+++ b/app/Http/Middleware/VerifyCsrfToken.php
@@ -0,0 +1,17 @@
+
+ */
+ protected $except = [
+ //
+ ];
+}
diff --git a/app/Models/Guru.php b/app/Models/Guru.php
new file mode 100644
index 0000000..0bed56e
--- /dev/null
+++ b/app/Models/Guru.php
@@ -0,0 +1,21 @@
+hasMany(Mengajar::class, 'id_guru', 'id_guru');
+ }
+
+}
+
diff --git a/app/Models/Kelas.php b/app/Models/Kelas.php
new file mode 100644
index 0000000..a6ffc76
--- /dev/null
+++ b/app/Models/Kelas.php
@@ -0,0 +1,22 @@
+hasMany(Mengajar::class, 'id_kelas', 'id_kelas');
+ }
+}
diff --git a/app/Models/Mapel.php b/app/Models/Mapel.php
new file mode 100644
index 0000000..b60f245
--- /dev/null
+++ b/app/Models/Mapel.php
@@ -0,0 +1,25 @@
+hasMany(Materi::class, 'id_mapel', 'id_mapel');
+ }
+
+ public function mengajar()
+ {
+ return $this->hasMany(Mengajar::class, 'id_mapel', 'id_mapel');
+ }
+}
\ No newline at end of file
diff --git a/app/Models/Materi.php b/app/Models/Materi.php
new file mode 100644
index 0000000..4994f5d
--- /dev/null
+++ b/app/Models/Materi.php
@@ -0,0 +1,23 @@
+ 'datetime',
+ 'updated_at' => 'datetime',
+ ];
+
+ public function mata_pelajaran()
+ {
+ return $this->belongsTo(Mapel::class, 'id_mapel', 'id_mapel');
+ }
+}
diff --git a/app/Models/Mengajar.php b/app/Models/Mengajar.php
new file mode 100644
index 0000000..15cb4e6
--- /dev/null
+++ b/app/Models/Mengajar.php
@@ -0,0 +1,33 @@
+ 'datetime',
+ 'updated_at' => 'datetime',
+ ];
+
+ public function mata_pelajaran()
+ {
+ return $this->belongsTo(Mapel::class, 'id_mapel', 'id_mapel');
+ }
+
+ public function guru()
+ {
+ return $this->belongsTo(Guru::class, 'id_guru', 'nip');
+ }
+
+ public function kelas()
+ {
+ return $this->belongsTo(Kelas::class, 'id_kelas', 'id_kelas');
+ }
+}
diff --git a/app/Models/Siswa.php b/app/Models/Siswa.php
new file mode 100644
index 0000000..fe9e827
--- /dev/null
+++ b/app/Models/Siswa.php
@@ -0,0 +1,19 @@
+belongsTo(Kelas::class, 'id_kelas', 'id_kelas');
+ }
+}
\ No newline at end of file
diff --git a/app/Models/User.php b/app/Models/User.php
new file mode 100644
index 0000000..8996368
--- /dev/null
+++ b/app/Models/User.php
@@ -0,0 +1,44 @@
+
+ */
+ protected $fillable = [
+ 'name',
+ 'email',
+ 'password',
+ ];
+
+ /**
+ * The attributes that should be hidden for serialization.
+ *
+ * @var array
+ */
+ protected $hidden = [
+ 'password',
+ 'remember_token',
+ ];
+
+ /**
+ * The attributes that should be cast.
+ *
+ * @var array
+ */
+ protected $casts = [
+ 'email_verified_at' => 'datetime',
+ ];
+}
diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
new file mode 100644
index 0000000..ee8ca5b
--- /dev/null
+++ b/app/Providers/AppServiceProvider.php
@@ -0,0 +1,28 @@
+
+ */
+ protected $policies = [
+ // 'App\Models\Model' => '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 @@
+>
+ */
+ protected $listen = [
+ Registered::class => [
+ SendEmailVerificationNotification::class,
+ ],
+ ];
+
+ /**
+ * Register any events for your application.
+ *
+ * @return void
+ */
+ public function boot()
+ {
+ //
+ }
+
+ /**
+ * Determine if events and listeners should be automatically discovered.
+ *
+ * @return bool
+ */
+ public function shouldDiscoverEvents()
+ {
+ return false;
+ }
+}
diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php
new file mode 100644
index 0000000..457cb22
--- /dev/null
+++ b/app/Providers/RouteServiceProvider.php
@@ -0,0 +1,54 @@
+configureRateLimiting();
+
+ $this->routes(function () {
+ Route::prefix('api')
+ ->middleware('api')
+ ->namespace($this->namespace)
+ ->group(base_path('routes/api.php'));
+
+ Route::middleware('web')
+ ->namespace($this->namespace)
+ ->group(base_path('routes/web.php'));
+ });
+ }
+
+ /**
+ * Configure the rate limiters for the application.
+ *
+ * @return void
+ */
+ protected function configureRateLimiting()
+ {
+ RateLimiter::for('api', function (Request $request) {
+ return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
+ });
+ }
+}
diff --git a/artisan b/artisan
new file mode 100644
index 0000000..67a3329
--- /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..4bfa9e3
--- /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": "^8.0.2",
+ "beyondcode/laravel-websockets": "^2.0@beta",
+ "fruitcake/laravel-cors": "^2.0.5",
+ "guzzlehttp/guzzle": "^7.2",
+ "laravel/framework": "^9.0",
+ "laravel/sanctum": "^2.14",
+ "laravel/tinker": "^2.7",
+ "pusher/pusher-php-server": "^7.2"
+ },
+ "require-dev": {
+ "fakerphp/faker": "^1.9.1",
+ "laravel/sail": "^1.0.1",
+ "mockery/mockery": "^1.4.4",
+ "nunomaduro/collision": "^6.1",
+ "phpunit/phpunit": "^9.5.10",
+ "spatie/laravel-ignition": "^1.0"
+ },
+ "autoload": {
+ "psr-4": {
+ "App\\": "app/",
+ "Database\\Factories\\": "database/factories/",
+ "Database\\Seeders\\": "database/seeders/"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "Tests\\": "tests/"
+ }
+ },
+ "scripts": {
+ "post-autoload-dump": [
+ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
+ "@php artisan package:discover --ansi"
+ ],
+ "post-update-cmd": [
+ "@php artisan vendor:publish --tag=laravel-assets --ansi --force"
+ ],
+ "post-root-package-install": [
+ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
+ ],
+ "post-create-project-cmd": [
+ "@php artisan key:generate --ansi"
+ ]
+ },
+ "extra": {
+ "laravel": {
+ "dont-discover": []
+ }
+ },
+ "config": {
+ "optimize-autoloader": true,
+ "preferred-install": "dist",
+ "sort-packages": true
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true
+}
diff --git a/composer.lock b/composer.lock
new file mode 100644
index 0000000..a4d0279
--- /dev/null
+++ b/composer.lock
@@ -0,0 +1,9498 @@
+{
+ "_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": "b25a548a252a906b44af7e7bb1c58ab7",
+ "packages": [
+ {
+ "name": "asm89/stack-cors",
+ "version": "v2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/asm89/stack-cors.git",
+ "reference": "50f57105bad3d97a43ec4a485eb57daf347eafea"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/asm89/stack-cors/zipball/50f57105bad3d97a43ec4a485eb57daf347eafea",
+ "reference": "50f57105bad3d97a43ec4a485eb57daf347eafea",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.3|^8.0",
+ "symfony/http-foundation": "^5.3|^6|^7",
+ "symfony/http-kernel": "^5.3|^6|^7"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9",
+ "squizlabs/php_codesniffer": "^3.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.2-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Asm89\\Stack\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Alexander",
+ "email": "iam.asm89@gmail.com"
+ }
+ ],
+ "description": "Cross-origin resource sharing library and stack middleware",
+ "homepage": "https://github.com/asm89/stack-cors",
+ "keywords": [
+ "cors",
+ "stack"
+ ],
+ "support": {
+ "issues": "https://github.com/asm89/stack-cors/issues",
+ "source": "https://github.com/asm89/stack-cors/tree/v2.2.0"
+ },
+ "time": "2023-11-14T13:51:46+00:00"
+ },
+ {
+ "name": "beyondcode/laravel-websockets",
+ "version": "2.0.0-beta.37",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/beyondcode/laravel-websockets.git",
+ "reference": "605a7fa71ddabfffe381b079acc21403c7547ea2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/beyondcode/laravel-websockets/zipball/605a7fa71ddabfffe381b079acc21403c7547ea2",
+ "reference": "605a7fa71ddabfffe381b079acc21403c7547ea2",
+ "shasum": ""
+ },
+ "require": {
+ "cboden/ratchet": "^0.4.1",
+ "clue/redis-react": "^2.5",
+ "evenement/evenement": "^2.0|^3.0",
+ "facade/ignition-contracts": "^1.0",
+ "guzzlehttp/psr7": "^1.7|^2.0",
+ "illuminate/broadcasting": "^6.3|^7.0|^8.0|^9.0",
+ "illuminate/console": "^6.3|^7.0|^8.0|^9.0",
+ "illuminate/http": "^6.3|^7.0|^8.0|^9.0",
+ "illuminate/queue": "^6.3|^7.0|^8.0|^9.0",
+ "illuminate/routing": "^6.3|^7.0|^8.0|^9.0",
+ "illuminate/support": "^6.3|^7.0|^8.0|^9.0",
+ "pusher/pusher-php-server": "^3.0|^4.0|^5.0|^6.0|^7.0",
+ "react/promise": "^2.8",
+ "symfony/http-kernel": "^4.4|^5.4|^6.0",
+ "symfony/psr-http-message-bridge": "^1.1|^2.0"
+ },
+ "require-dev": {
+ "clue/block-react": "^1.4",
+ "laravel/legacy-factories": "^1.1",
+ "orchestra/testbench-browser-kit": "^4.0|^5.0|^6.0",
+ "phpunit/phpunit": "^8.5.8|^9.3.3"
+ },
+ "suggest": {
+ "doctrine/dbal": "Required to run database migrations (^2.9|^3.0).",
+ "ext-pcntl": "Running the server needs pcntl to listen to command signals and soft-shutdown."
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "BeyondCode\\LaravelWebSockets\\WebSocketsServiceProvider"
+ ],
+ "aliases": {
+ "WebSocketRouter": "BeyondCode\\LaravelWebSockets\\Facades\\WebSocketRouter"
+ }
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "BeyondCode\\LaravelWebSockets\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marcel Pociot",
+ "email": "marcel@beyondco.de",
+ "homepage": "https://beyondcode.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Freek Van der Herten",
+ "email": "freek@spatie.be",
+ "homepage": "https://spatie.be",
+ "role": "Developer"
+ },
+ {
+ "name": "Alex Renoki",
+ "homepage": "https://github.com/rennokki",
+ "role": "Developer"
+ }
+ ],
+ "description": "An easy to launch a Pusher-compatible WebSockets server for Laravel.",
+ "homepage": "https://github.com/beyondcode/laravel-websockets",
+ "keywords": [
+ "beyondcode",
+ "laravel",
+ "laravel-websockets",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/beyondcode/laravel-websockets/issues",
+ "source": "https://github.com/beyondcode/laravel-websockets/tree/2.0.0-beta.37"
+ },
+ "abandoned": true,
+ "time": "2022-02-12T11:11:42+00:00"
+ },
+ {
+ "name": "brick/math",
+ "version": "0.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/brick/math.git",
+ "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/brick/math/zipball/0ad82ce168c82ba30d1c01ec86116ab52f589478",
+ "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0"
+ },
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^2.2",
+ "phpunit/phpunit": "^9.0",
+ "vimeo/psalm": "5.0.0"
+ },
+ "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"
+ ],
+ "support": {
+ "issues": "https://github.com/brick/math/issues",
+ "source": "https://github.com/brick/math/tree/0.11.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/BenMorel",
+ "type": "github"
+ }
+ ],
+ "time": "2023-01-15T23:15:59+00:00"
+ },
+ {
+ "name": "carbonphp/carbon-doctrine-types",
+ "version": "3.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git",
+ "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
+ "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "conflict": {
+ "doctrine/dbal": "<4.0.0 || >=5.0.0"
+ },
+ "require-dev": {
+ "doctrine/dbal": "^4.0.0",
+ "nesbot/carbon": "^2.71.0 || ^3.0.0",
+ "phpunit/phpunit": "^10.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Carbon\\Doctrine\\": "src/Carbon/Doctrine/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "KyleKatarn",
+ "email": "kylekatarnls@gmail.com"
+ }
+ ],
+ "description": "Types to use Carbon in Doctrine",
+ "keywords": [
+ "carbon",
+ "date",
+ "datetime",
+ "doctrine",
+ "time"
+ ],
+ "support": {
+ "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues",
+ "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/kylekatarnls",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/Carbon",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-02-09T16:56:22+00:00"
+ },
+ {
+ "name": "cboden/ratchet",
+ "version": "v0.4.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ratchetphp/Ratchet.git",
+ "reference": "5012dc954541b40c5599d286fd40653f5716a38f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ratchetphp/Ratchet/zipball/5012dc954541b40c5599d286fd40653f5716a38f",
+ "reference": "5012dc954541b40c5599d286fd40653f5716a38f",
+ "shasum": ""
+ },
+ "require": {
+ "guzzlehttp/psr7": "^1.7|^2.0",
+ "php": ">=5.4.2",
+ "ratchet/rfc6455": "^0.3.1",
+ "react/event-loop": ">=0.4",
+ "react/socket": "^1.0 || ^0.8 || ^0.7 || ^0.6 || ^0.5",
+ "symfony/http-foundation": "^2.6|^3.0|^4.0|^5.0|^6.0",
+ "symfony/routing": "^2.6|^3.0|^4.0|^5.0|^6.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.8"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Ratchet\\": "src/Ratchet"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "role": "Developer"
+ },
+ {
+ "name": "Matt Bonneau",
+ "role": "Developer"
+ }
+ ],
+ "description": "PHP WebSocket library",
+ "homepage": "http://socketo.me",
+ "keywords": [
+ "Ratchet",
+ "WebSockets",
+ "server",
+ "sockets",
+ "websocket"
+ ],
+ "support": {
+ "chat": "https://gitter.im/reactphp/reactphp",
+ "issues": "https://github.com/ratchetphp/Ratchet/issues",
+ "source": "https://github.com/ratchetphp/Ratchet/tree/v0.4.4"
+ },
+ "time": "2021-12-14T00:20:41+00:00"
+ },
+ {
+ "name": "clue/redis-protocol",
+ "version": "v0.3.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/clue/php-redis-protocol.git",
+ "reference": "271b8009887209d930f613ad3b9518f94bd6b51c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/clue/php-redis-protocol/zipball/271b8009887209d930f613ad3b9518f94bd6b51c",
+ "reference": "271b8009887209d930f613ad3b9518f94bd6b51c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-0": {
+ "Clue\\Redis\\Protocol": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@lueck.tv"
+ }
+ ],
+ "description": "A streaming redis wire protocol parser and serializer implementation in PHP",
+ "homepage": "https://github.com/clue/php-redis-protocol",
+ "keywords": [
+ "parser",
+ "protocol",
+ "redis",
+ "serializer",
+ "streaming"
+ ],
+ "support": {
+ "issues": "https://github.com/clue/php-redis-protocol/issues",
+ "source": "https://github.com/clue/php-redis-protocol/tree/v0.3.1"
+ },
+ "time": "2017-06-06T16:07:10+00:00"
+ },
+ {
+ "name": "clue/redis-react",
+ "version": "v2.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/clue/reactphp-redis.git",
+ "reference": "2283690f249e8d93342dd63b5285732d2654e077"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/clue/reactphp-redis/zipball/2283690f249e8d93342dd63b5285732d2654e077",
+ "reference": "2283690f249e8d93342dd63b5285732d2654e077",
+ "shasum": ""
+ },
+ "require": {
+ "clue/redis-protocol": "0.3.*",
+ "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
+ "php": ">=5.3",
+ "react/event-loop": "^1.2",
+ "react/promise": "^3 || ^2.0 || ^1.1",
+ "react/promise-timer": "^1.9",
+ "react/socket": "^1.12"
+ },
+ "require-dev": {
+ "clue/block-react": "^1.5",
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Clue\\React\\Redis\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering"
+ }
+ ],
+ "description": "Async Redis client implementation, built on top of ReactPHP.",
+ "homepage": "https://github.com/clue/reactphp-redis",
+ "keywords": [
+ "async",
+ "client",
+ "database",
+ "reactphp",
+ "redis"
+ ],
+ "support": {
+ "issues": "https://github.com/clue/reactphp-redis/issues",
+ "source": "https://github.com/clue/reactphp-redis/tree/v2.7.0"
+ },
+ "funding": [
+ {
+ "url": "https://clue.engineering/support",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/clue",
+ "type": "github"
+ }
+ ],
+ "time": "2024-01-05T15:54:20+00:00"
+ },
+ {
+ "name": "dflydev/dot-access-data",
+ "version": "v3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dflydev/dflydev-dot-access-data.git",
+ "reference": "f41715465d65213d644d3141a6a93081be5d3549"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549",
+ "reference": "f41715465d65213d644d3141a6a93081be5d3549",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^0.12.42",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3",
+ "scrutinizer/ocular": "1.6.0",
+ "squizlabs/php_codesniffer": "^3.5",
+ "vimeo/psalm": "^4.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Dflydev\\DotAccessData\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Dragonfly Development Inc.",
+ "email": "info@dflydev.com",
+ "homepage": "http://dflydev.com"
+ },
+ {
+ "name": "Beau Simensen",
+ "email": "beau@dflydev.com",
+ "homepage": "http://beausimensen.com"
+ },
+ {
+ "name": "Carlos Frutos",
+ "email": "carlos@kiwing.it",
+ "homepage": "https://github.com/cfrutos"
+ },
+ {
+ "name": "Colin O'Dell",
+ "email": "colinodell@gmail.com",
+ "homepage": "https://www.colinodell.com"
+ }
+ ],
+ "description": "Given a deep data structure, access data by dot notation.",
+ "homepage": "https://github.com/dflydev/dflydev-dot-access-data",
+ "keywords": [
+ "access",
+ "data",
+ "dot",
+ "notation"
+ ],
+ "support": {
+ "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues",
+ "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2"
+ },
+ "time": "2022-10-27T11:44:00+00:00"
+ },
+ {
+ "name": "doctrine/inflector",
+ "version": "2.0.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/inflector.git",
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^11.0",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpstan/phpstan-strict-rules": "^1.3",
+ "phpunit/phpunit": "^8.5 || ^9.5",
+ "vimeo/psalm": "^4.25 || ^5.4"
+ },
+ "type": "library",
+ "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"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/inflector/issues",
+ "source": "https://github.com/doctrine/inflector/tree/2.0.10"
+ },
+ "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": "2024-02-18T20:23:39+00:00"
+ },
+ {
+ "name": "doctrine/lexer",
+ "version": "3.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/lexer.git",
+ "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
+ "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^12",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^10.5",
+ "psalm/plugin-phpunit": "^0.18.3",
+ "vimeo/psalm": "^5.21"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Lexer\\": "src"
+ }
+ },
+ "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"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/lexer/issues",
+ "source": "https://github.com/doctrine/lexer/tree/3.0.1"
+ },
+ "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": "2024-02-05T11:56:58+00:00"
+ },
+ {
+ "name": "dragonmantank/cron-expression",
+ "version": "v3.3.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dragonmantank/cron-expression.git",
+ "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/adfb1f505deb6384dc8b39804c5065dd3c8c8c0a",
+ "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2|^8.0",
+ "webmozart/assert": "^1.0"
+ },
+ "replace": {
+ "mtdowling/cron-expression": "^1.0"
+ },
+ "require-dev": {
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^1.0",
+ "phpstan/phpstan-webmozart-assert": "^1.0",
+ "phpunit/phpunit": "^7.0|^8.0|^9.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Cron\\": "src/Cron/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "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"
+ ],
+ "support": {
+ "issues": "https://github.com/dragonmantank/cron-expression/issues",
+ "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/dragonmantank",
+ "type": "github"
+ }
+ ],
+ "time": "2023-08-10T19:36:49+00:00"
+ },
+ {
+ "name": "egulias/email-validator",
+ "version": "4.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/egulias/EmailValidator.git",
+ "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e",
+ "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/lexer": "^2.0 || ^3.0",
+ "php": ">=8.1",
+ "symfony/polyfill-intl-idn": "^1.26"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.2",
+ "vimeo/psalm": "^5.12"
+ },
+ "suggest": {
+ "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Egulias\\EmailValidator\\": "src"
+ }
+ },
+ "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"
+ ],
+ "support": {
+ "issues": "https://github.com/egulias/EmailValidator/issues",
+ "source": "https://github.com/egulias/EmailValidator/tree/4.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/egulias",
+ "type": "github"
+ }
+ ],
+ "time": "2023-10-06T06:47:41+00:00"
+ },
+ {
+ "name": "evenement/evenement",
+ "version": "v3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/igorw/evenement.git",
+ "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/igorw/evenement/zipball/0a16b0d71ab13284339abb99d9d2bd813640efbc",
+ "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9 || ^6"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Evenement\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Igor Wiedler",
+ "email": "igor@wiedler.ch"
+ }
+ ],
+ "description": "Événement is a very simple event dispatching library for PHP",
+ "keywords": [
+ "event-dispatcher",
+ "event-emitter"
+ ],
+ "support": {
+ "issues": "https://github.com/igorw/evenement/issues",
+ "source": "https://github.com/igorw/evenement/tree/v3.0.2"
+ },
+ "time": "2023-08-08T05:53:35+00:00"
+ },
+ {
+ "name": "facade/ignition-contracts",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/facade/ignition-contracts.git",
+ "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/facade/ignition-contracts/zipball/3c921a1cdba35b68a7f0ccffc6dffc1995b18267",
+ "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.3|^8.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^v2.15.8",
+ "phpunit/phpunit": "^9.3.11",
+ "vimeo/psalm": "^3.17.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"
+ ],
+ "support": {
+ "issues": "https://github.com/facade/ignition-contracts/issues",
+ "source": "https://github.com/facade/ignition-contracts/tree/1.0.2"
+ },
+ "time": "2020-10-16T08:27:54+00:00"
+ },
+ {
+ "name": "fruitcake/laravel-cors",
+ "version": "v2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/fruitcake/laravel-cors.git",
+ "reference": "783a74f5e3431d7b9805be8afb60fd0a8f743534"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/fruitcake/laravel-cors/zipball/783a74f5e3431d7b9805be8afb60fd0a8f743534",
+ "reference": "783a74f5e3431d7b9805be8afb60fd0a8f743534",
+ "shasum": ""
+ },
+ "require": {
+ "asm89/stack-cors": "^2.0.1",
+ "illuminate/contracts": "^6|^7|^8|^9",
+ "illuminate/support": "^6|^7|^8|^9",
+ "php": ">=7.2"
+ },
+ "require-dev": {
+ "laravel/framework": "^6|^7.24|^8",
+ "orchestra/testbench-dusk": "^4|^5|^6|^7",
+ "phpunit/phpunit": "^6|^7|^8|^9",
+ "squizlabs/php_codesniffer": "^3.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.1-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Fruitcake\\Cors\\CorsServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Fruitcake\\Cors\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fruitcake",
+ "homepage": "https://fruitcake.nl"
+ },
+ {
+ "name": "Barry vd. Heuvel",
+ "email": "barryvdh@gmail.com"
+ }
+ ],
+ "description": "Adds CORS (Cross-Origin Resource Sharing) headers support in your Laravel application",
+ "keywords": [
+ "api",
+ "cors",
+ "crossdomain",
+ "laravel"
+ ],
+ "support": {
+ "issues": "https://github.com/fruitcake/laravel-cors/issues",
+ "source": "https://github.com/fruitcake/laravel-cors/tree/v2.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://fruitcake.nl",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/barryvdh",
+ "type": "github"
+ }
+ ],
+ "abandoned": true,
+ "time": "2022-02-23T14:25:13+00:00"
+ },
+ {
+ "name": "fruitcake/php-cors",
+ "version": "v1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/fruitcake/php-cors.git",
+ "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/3d158f36e7875e2f040f37bc0573956240a5a38b",
+ "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0",
+ "symfony/http-foundation": "^4.4|^5.4|^6|^7"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.4",
+ "phpunit/phpunit": "^9",
+ "squizlabs/php_codesniffer": "^3.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Fruitcake\\Cors\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fruitcake",
+ "homepage": "https://fruitcake.nl"
+ },
+ {
+ "name": "Barryvdh",
+ "email": "barryvdh@gmail.com"
+ }
+ ],
+ "description": "Cross-origin resource sharing library for the Symfony HttpFoundation",
+ "homepage": "https://github.com/fruitcake/php-cors",
+ "keywords": [
+ "cors",
+ "laravel",
+ "symfony"
+ ],
+ "support": {
+ "issues": "https://github.com/fruitcake/php-cors/issues",
+ "source": "https://github.com/fruitcake/php-cors/tree/v1.3.0"
+ },
+ "funding": [
+ {
+ "url": "https://fruitcake.nl",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/barryvdh",
+ "type": "github"
+ }
+ ],
+ "time": "2023-10-12T05:21:21+00:00"
+ },
+ {
+ "name": "graham-campbell/result-type",
+ "version": "v1.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/GrahamCampbell/Result-Type.git",
+ "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/fbd48bce38f73f8a4ec8583362e732e4095e5862",
+ "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0",
+ "phpoption/phpoption": "^1.9.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "GrahamCampbell\\ResultType\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ }
+ ],
+ "description": "An Implementation Of The Result Type",
+ "keywords": [
+ "Graham Campbell",
+ "GrahamCampbell",
+ "Result Type",
+ "Result-Type",
+ "result"
+ ],
+ "support": {
+ "issues": "https://github.com/GrahamCampbell/Result-Type/issues",
+ "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-12T22:16:48+00:00"
+ },
+ {
+ "name": "guzzlehttp/guzzle",
+ "version": "7.8.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/guzzle.git",
+ "reference": "41042bc7ab002487b876a0683fc8dce04ddce104"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104",
+ "reference": "41042bc7ab002487b876a0683fc8dce04ddce104",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "guzzlehttp/promises": "^1.5.3 || ^2.0.1",
+ "guzzlehttp/psr7": "^1.9.1 || ^2.5.1",
+ "php": "^7.2.5 || ^8.0",
+ "psr/http-client": "^1.0",
+ "symfony/deprecation-contracts": "^2.2 || ^3.0"
+ },
+ "provide": {
+ "psr/http-client-implementation": "1.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "ext-curl": "*",
+ "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999",
+ "php-http/message-factory": "^1.1",
+ "phpunit/phpunit": "^8.5.36 || ^9.6.15",
+ "psr/log": "^1.1 || ^2.0 || ^3.0"
+ },
+ "suggest": {
+ "ext-curl": "Required for CURL handler support",
+ "ext-intl": "Required for Internationalized Domain Name (IDN) support",
+ "psr/log": "Required for using the Log middleware"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "GuzzleHttp\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "Jeremy Lindblom",
+ "email": "jeremeamia@gmail.com",
+ "homepage": "https://github.com/jeremeamia"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://github.com/sagikazarmark"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ }
+ ],
+ "description": "Guzzle is a PHP HTTP client library",
+ "keywords": [
+ "client",
+ "curl",
+ "framework",
+ "http",
+ "http client",
+ "psr-18",
+ "psr-7",
+ "rest",
+ "web service"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/guzzle/issues",
+ "source": "https://github.com/guzzle/guzzle/tree/7.8.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-03T20:35:24+00:00"
+ },
+ {
+ "name": "guzzlehttp/promises",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/promises.git",
+ "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223",
+ "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.36 || ^9.6.15"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\Promise\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ }
+ ],
+ "description": "Guzzle promises library",
+ "keywords": [
+ "promise"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/promises/issues",
+ "source": "https://github.com/guzzle/promises/tree/2.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-03T20:19:20+00:00"
+ },
+ {
+ "name": "guzzlehttp/psr7",
+ "version": "2.6.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/psr7.git",
+ "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221",
+ "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.1 || ^2.0",
+ "ralouphie/getallheaders": "^3.0"
+ },
+ "provide": {
+ "psr/http-factory-implementation": "1.0",
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "http-interop/http-factory-tests": "^0.9",
+ "phpunit/phpunit": "^8.5.36 || ^9.6.15"
+ },
+ "suggest": {
+ "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\Psr7\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://github.com/sagikazarmark"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://sagikazarmark.hu"
+ }
+ ],
+ "description": "PSR-7 message implementation that also provides common utility methods",
+ "keywords": [
+ "http",
+ "message",
+ "psr-7",
+ "request",
+ "response",
+ "stream",
+ "uri",
+ "url"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/psr7/issues",
+ "source": "https://github.com/guzzle/psr7/tree/2.6.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-03T20:05:35+00:00"
+ },
+ {
+ "name": "guzzlehttp/uri-template",
+ "version": "v1.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/uri-template.git",
+ "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/uri-template/zipball/ecea8feef63bd4fef1f037ecb288386999ecc11c",
+ "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0",
+ "symfony/polyfill-php80": "^1.24"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.36 || ^9.6.15",
+ "uri-template/tests": "1.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\UriTemplate\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ }
+ ],
+ "description": "A polyfill class for uri_template of PHP",
+ "keywords": [
+ "guzzlehttp",
+ "uri-template"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/uri-template/issues",
+ "source": "https://github.com/guzzle/uri-template/tree/v1.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/uri-template",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-03T19:50:20+00:00"
+ },
+ {
+ "name": "laravel/framework",
+ "version": "v9.52.16",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/framework.git",
+ "reference": "082345d76fc6a55b649572efe10b11b03e279d24"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/082345d76fc6a55b649572efe10b11b03e279d24",
+ "reference": "082345d76fc6a55b649572efe10b11b03e279d24",
+ "shasum": ""
+ },
+ "require": {
+ "brick/math": "^0.9.3|^0.10.2|^0.11",
+ "doctrine/inflector": "^2.0.5",
+ "dragonmantank/cron-expression": "^3.3.2",
+ "egulias/email-validator": "^3.2.1|^4.0",
+ "ext-ctype": "*",
+ "ext-filter": "*",
+ "ext-hash": "*",
+ "ext-mbstring": "*",
+ "ext-openssl": "*",
+ "ext-session": "*",
+ "ext-tokenizer": "*",
+ "fruitcake/php-cors": "^1.2",
+ "guzzlehttp/uri-template": "^1.0",
+ "laravel/serializable-closure": "^1.2.2",
+ "league/commonmark": "^2.2.1",
+ "league/flysystem": "^3.8.0",
+ "monolog/monolog": "^2.0",
+ "nesbot/carbon": "^2.62.1",
+ "nunomaduro/termwind": "^1.13",
+ "php": "^8.0.2",
+ "psr/container": "^1.1.1|^2.0.1",
+ "psr/log": "^1.0|^2.0|^3.0",
+ "psr/simple-cache": "^1.0|^2.0|^3.0",
+ "ramsey/uuid": "^4.7",
+ "symfony/console": "^6.0.9",
+ "symfony/error-handler": "^6.0",
+ "symfony/finder": "^6.0",
+ "symfony/http-foundation": "^6.0",
+ "symfony/http-kernel": "^6.0",
+ "symfony/mailer": "^6.0",
+ "symfony/mime": "^6.0",
+ "symfony/process": "^6.0",
+ "symfony/routing": "^6.0",
+ "symfony/uid": "^6.0",
+ "symfony/var-dumper": "^6.0",
+ "tijsverkoyen/css-to-inline-styles": "^2.2.5",
+ "vlucas/phpdotenv": "^5.4.1",
+ "voku/portable-ascii": "^2.0"
+ },
+ "conflict": {
+ "tightenco/collect": "<5.5.33"
+ },
+ "provide": {
+ "psr/container-implementation": "1.1|2.0",
+ "psr/simple-cache-implementation": "1.0|2.0|3.0"
+ },
+ "replace": {
+ "illuminate/auth": "self.version",
+ "illuminate/broadcasting": "self.version",
+ "illuminate/bus": "self.version",
+ "illuminate/cache": "self.version",
+ "illuminate/collections": "self.version",
+ "illuminate/conditionable": "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/macroable": "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": {
+ "ably/ably-php": "^1.0",
+ "aws/aws-sdk-php": "^3.235.5",
+ "doctrine/dbal": "^2.13.3|^3.1.4",
+ "ext-gmp": "*",
+ "fakerphp/faker": "^1.21",
+ "guzzlehttp/guzzle": "^7.5",
+ "league/flysystem-aws-s3-v3": "^3.0",
+ "league/flysystem-ftp": "^3.0",
+ "league/flysystem-path-prefixing": "^3.3",
+ "league/flysystem-read-only": "^3.3",
+ "league/flysystem-sftp-v3": "^3.0",
+ "mockery/mockery": "^1.5.1",
+ "orchestra/testbench-core": "^7.24",
+ "pda/pheanstalk": "^4.0",
+ "phpstan/phpdoc-parser": "^1.15",
+ "phpstan/phpstan": "^1.4.7",
+ "phpunit/phpunit": "^9.5.8",
+ "predis/predis": "^1.1.9|^2.0.2",
+ "symfony/cache": "^6.0",
+ "symfony/http-client": "^6.0"
+ },
+ "suggest": {
+ "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).",
+ "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.235.5).",
+ "brianium/paratest": "Required to run tests in parallel (^6.0).",
+ "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.4).",
+ "ext-apcu": "Required to use the APC cache driver.",
+ "ext-fileinfo": "Required to use the Filesystem class.",
+ "ext-ftp": "Required to use the Flysystem FTP driver.",
+ "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 and console signal trapping.",
+ "ext-pdo": "Required to use all database features.",
+ "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).",
+ "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).",
+ "filp/whoops": "Required for friendly error pages in development (^2.14.3).",
+ "guzzlehttp/guzzle": "Required to use the HTTP Client and the ping methods on schedules (^7.5).",
+ "laravel/tinker": "Required to use the tinker console command (^2.0).",
+ "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).",
+ "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).",
+ "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.3).",
+ "league/flysystem-read-only": "Required to use read-only disks (^3.3)",
+ "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).",
+ "mockery/mockery": "Required to use mocking (^1.5.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 (^9.5.8).",
+ "predis/predis": "Required to use the predis connector (^1.1.9|^2.0.2).",
+ "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 (^6.0|^7.0).",
+ "symfony/cache": "Required to PSR-6 cache bridge (^6.0).",
+ "symfony/filesystem": "Required to enable support for relative symbolic links (^6.0).",
+ "symfony/http-client": "Required to enable support for the Symfony API mail transports (^6.0).",
+ "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^6.0).",
+ "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^6.0).",
+ "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0)."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "9.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Illuminate/Collections/helpers.php",
+ "src/Illuminate/Events/functions.php",
+ "src/Illuminate/Foundation/helpers.php",
+ "src/Illuminate/Support/helpers.php"
+ ],
+ "psr-4": {
+ "Illuminate\\": "src/Illuminate/",
+ "Illuminate\\Support\\": [
+ "src/Illuminate/Macroable/",
+ "src/Illuminate/Collections/",
+ "src/Illuminate/Conditionable/"
+ ]
+ }
+ },
+ "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"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/framework/issues",
+ "source": "https://github.com/laravel/framework"
+ },
+ "time": "2023-10-03T13:02:30+00:00"
+ },
+ {
+ "name": "laravel/sanctum",
+ "version": "v2.15.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/sanctum.git",
+ "reference": "31fbe6f85aee080c4dc2f9b03dc6dd5d0ee72473"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/sanctum/zipball/31fbe6f85aee080c4dc2f9b03dc6dd5d0ee72473",
+ "reference": "31fbe6f85aee080c4dc2f9b03dc6dd5d0ee72473",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "illuminate/console": "^6.9|^7.0|^8.0|^9.0",
+ "illuminate/contracts": "^6.9|^7.0|^8.0|^9.0",
+ "illuminate/database": "^6.9|^7.0|^8.0|^9.0",
+ "illuminate/support": "^6.9|^7.0|^8.0|^9.0",
+ "php": "^7.2|^8.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.0",
+ "orchestra/testbench": "^4.0|^5.0|^6.0|^7.0",
+ "phpunit/phpunit": "^8.0|^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Laravel\\Sanctum\\SanctumServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Laravel\\Sanctum\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "Laravel Sanctum provides a featherweight authentication system for SPAs and simple APIs.",
+ "keywords": [
+ "auth",
+ "laravel",
+ "sanctum"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/sanctum/issues",
+ "source": "https://github.com/laravel/sanctum"
+ },
+ "time": "2022-04-08T13:39:49+00:00"
+ },
+ {
+ "name": "laravel/serializable-closure",
+ "version": "v1.3.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/serializable-closure.git",
+ "reference": "3dbf8a8e914634c48d389c1234552666b3d43754"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/3dbf8a8e914634c48d389c1234552666b3d43754",
+ "reference": "3dbf8a8e914634c48d389c1234552666b3d43754",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.3|^8.0"
+ },
+ "require-dev": {
+ "nesbot/carbon": "^2.61",
+ "pestphp/pest": "^1.21.3",
+ "phpstan/phpstan": "^1.8.2",
+ "symfony/var-dumper": "^5.4.11"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Laravel\\SerializableClosure\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ },
+ {
+ "name": "Nuno Maduro",
+ "email": "nuno@laravel.com"
+ }
+ ],
+ "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.",
+ "keywords": [
+ "closure",
+ "laravel",
+ "serializable"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/serializable-closure/issues",
+ "source": "https://github.com/laravel/serializable-closure"
+ },
+ "time": "2023-11-08T14:08:06+00:00"
+ },
+ {
+ "name": "laravel/tinker",
+ "version": "v2.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/tinker.git",
+ "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/tinker/zipball/502e0fe3f0415d06d5db1f83a472f0f3b754bafe",
+ "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0",
+ "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0",
+ "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0",
+ "php": "^7.2.5|^8.0",
+ "psy/psysh": "^0.11.1|^0.12.0",
+ "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "~1.3.3|^1.4.2",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^8.5.8|^9.3.3"
+ },
+ "suggest": {
+ "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0)."
+ },
+ "type": "library",
+ "extra": {
+ "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"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/tinker/issues",
+ "source": "https://github.com/laravel/tinker/tree/v2.9.0"
+ },
+ "time": "2024-01-04T16:10:04+00:00"
+ },
+ {
+ "name": "league/commonmark",
+ "version": "2.4.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/commonmark.git",
+ "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/91c24291965bd6d7c46c46a12ba7492f83b1cadf",
+ "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "league/config": "^1.1.1",
+ "php": "^7.4 || ^8.0",
+ "psr/event-dispatcher": "^1.0",
+ "symfony/deprecation-contracts": "^2.1 || ^3.0",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "require-dev": {
+ "cebe/markdown": "^1.0",
+ "commonmark/cmark": "0.30.3",
+ "commonmark/commonmark.js": "0.30.0",
+ "composer/package-versions-deprecated": "^1.8",
+ "embed/embed": "^4.4",
+ "erusev/parsedown": "^1.0",
+ "ext-json": "*",
+ "github/gfm": "0.29.0",
+ "michelf/php-markdown": "^1.4 || ^2.0",
+ "nyholm/psr7": "^1.5",
+ "phpstan/phpstan": "^1.8.2",
+ "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0",
+ "scrutinizer/ocular": "^1.8.1",
+ "symfony/finder": "^5.3 | ^6.0 || ^7.0",
+ "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 || ^7.0",
+ "unleashedtech/php-coding-standard": "^3.1.1",
+ "vimeo/psalm": "^4.24.0 || ^5.0.0"
+ },
+ "suggest": {
+ "symfony/yaml": "v2.3+ required if using the Front Matter extension"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.5-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"
+ ],
+ "support": {
+ "docs": "https://commonmark.thephpleague.com/",
+ "forum": "https://github.com/thephpleague/commonmark/discussions",
+ "issues": "https://github.com/thephpleague/commonmark/issues",
+ "rss": "https://github.com/thephpleague/commonmark/releases.atom",
+ "source": "https://github.com/thephpleague/commonmark"
+ },
+ "funding": [
+ {
+ "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://tidelift.com/funding/github/packagist/league/commonmark",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-02-02T11:59:32+00:00"
+ },
+ {
+ "name": "league/config",
+ "version": "v1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/config.git",
+ "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/config/zipball/754b3604fb2984c71f4af4a9cbe7b57f346ec1f3",
+ "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3",
+ "shasum": ""
+ },
+ "require": {
+ "dflydev/dot-access-data": "^3.0.1",
+ "nette/schema": "^1.2",
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.8.2",
+ "phpunit/phpunit": "^9.5.5",
+ "scrutinizer/ocular": "^1.8.1",
+ "unleashedtech/php-coding-standard": "^3.1",
+ "vimeo/psalm": "^4.7.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.2-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "League\\Config\\": "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": "Define configuration arrays with strict schemas and access values with dot notation",
+ "homepage": "https://config.thephpleague.com",
+ "keywords": [
+ "array",
+ "config",
+ "configuration",
+ "dot",
+ "dot-access",
+ "nested",
+ "schema"
+ ],
+ "support": {
+ "docs": "https://config.thephpleague.com/",
+ "issues": "https://github.com/thephpleague/config/issues",
+ "rss": "https://github.com/thephpleague/config/releases.atom",
+ "source": "https://github.com/thephpleague/config"
+ },
+ "funding": [
+ {
+ "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"
+ }
+ ],
+ "time": "2022-12-11T20:36:23+00:00"
+ },
+ {
+ "name": "league/flysystem",
+ "version": "3.27.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/flysystem.git",
+ "reference": "4729745b1ab737908c7d055148c9a6b3e959832f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/4729745b1ab737908c7d055148c9a6b3e959832f",
+ "reference": "4729745b1ab737908c7d055148c9a6b3e959832f",
+ "shasum": ""
+ },
+ "require": {
+ "league/flysystem-local": "^3.0.0",
+ "league/mime-type-detection": "^1.0.0",
+ "php": "^8.0.2"
+ },
+ "conflict": {
+ "async-aws/core": "<1.19.0",
+ "async-aws/s3": "<1.14.0",
+ "aws/aws-sdk-php": "3.209.31 || 3.210.0",
+ "guzzlehttp/guzzle": "<7.0",
+ "guzzlehttp/ringphp": "<1.1.1",
+ "phpseclib/phpseclib": "3.0.15",
+ "symfony/http-client": "<5.2"
+ },
+ "require-dev": {
+ "async-aws/s3": "^1.5 || ^2.0",
+ "async-aws/simple-s3": "^1.1 || ^2.0",
+ "aws/aws-sdk-php": "^3.295.10",
+ "composer/semver": "^3.0",
+ "ext-fileinfo": "*",
+ "ext-ftp": "*",
+ "ext-zip": "*",
+ "friendsofphp/php-cs-fixer": "^3.5",
+ "google/cloud-storage": "^1.23",
+ "microsoft/azure-storage-blob": "^1.1",
+ "phpseclib/phpseclib": "^3.0.36",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^9.5.11|^10.0",
+ "sabre/dav": "^4.6.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "League\\Flysystem\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frankdejonge.nl"
+ }
+ ],
+ "description": "File storage abstraction for PHP",
+ "keywords": [
+ "WebDAV",
+ "aws",
+ "cloud",
+ "file",
+ "files",
+ "filesystem",
+ "filesystems",
+ "ftp",
+ "s3",
+ "sftp",
+ "storage"
+ ],
+ "support": {
+ "issues": "https://github.com/thephpleague/flysystem/issues",
+ "source": "https://github.com/thephpleague/flysystem/tree/3.27.0"
+ },
+ "funding": [
+ {
+ "url": "https://ecologi.com/frankdejonge",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/frankdejonge",
+ "type": "github"
+ }
+ ],
+ "time": "2024-04-07T19:17:50+00:00"
+ },
+ {
+ "name": "league/flysystem-local",
+ "version": "3.25.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/flysystem-local.git",
+ "reference": "61a6a90d6e999e4ddd9ce5adb356de0939060b92"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/61a6a90d6e999e4ddd9ce5adb356de0939060b92",
+ "reference": "61a6a90d6e999e4ddd9ce5adb356de0939060b92",
+ "shasum": ""
+ },
+ "require": {
+ "ext-fileinfo": "*",
+ "league/flysystem": "^3.0.0",
+ "league/mime-type-detection": "^1.0.0",
+ "php": "^8.0.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "League\\Flysystem\\Local\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frankdejonge.nl"
+ }
+ ],
+ "description": "Local filesystem adapter for Flysystem.",
+ "keywords": [
+ "Flysystem",
+ "file",
+ "files",
+ "filesystem",
+ "local"
+ ],
+ "support": {
+ "source": "https://github.com/thephpleague/flysystem-local/tree/3.25.1"
+ },
+ "funding": [
+ {
+ "url": "https://ecologi.com/frankdejonge",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/frankdejonge",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-15T19:58:44+00:00"
+ },
+ {
+ "name": "league/mime-type-detection",
+ "version": "1.15.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/mime-type-detection.git",
+ "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301",
+ "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301",
+ "shasum": ""
+ },
+ "require": {
+ "ext-fileinfo": "*",
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^3.2",
+ "phpstan/phpstan": "^0.12.68",
+ "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "League\\MimeTypeDetection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frankdejonge.nl"
+ }
+ ],
+ "description": "Mime-type detection for Flysystem",
+ "support": {
+ "issues": "https://github.com/thephpleague/mime-type-detection/issues",
+ "source": "https://github.com/thephpleague/mime-type-detection/tree/1.15.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/frankdejonge",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/league/flysystem",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-01-28T23:22:08+00:00"
+ },
+ {
+ "name": "monolog/monolog",
+ "version": "2.9.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/monolog.git",
+ "reference": "a30bfe2e142720dfa990d0a7e573997f5d884215"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/a30bfe2e142720dfa990d0a7e573997f5d884215",
+ "reference": "a30bfe2e142720dfa990d0a7e573997f5d884215",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2",
+ "psr/log": "^1.0.1 || ^2.0 || ^3.0"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0"
+ },
+ "require-dev": {
+ "aws/aws-sdk-php": "^2.4.9 || ^3.0",
+ "doctrine/couchdb": "~1.0@dev",
+ "elasticsearch/elasticsearch": "^7 || ^8",
+ "ext-json": "*",
+ "graylog2/gelf-php": "^1.4.2 || ^2@dev",
+ "guzzlehttp/guzzle": "^7.4",
+ "guzzlehttp/psr7": "^2.2",
+ "mongodb/mongodb": "^1.8",
+ "php-amqplib/php-amqplib": "~2.4 || ^3",
+ "phpspec/prophecy": "^1.15",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^8.5.38 || ^9.6.19",
+ "predis/predis": "^1.1 || ^2.0",
+ "rollbar/rollbar": "^1.3 || ^2 || ^3",
+ "ruflin/elastica": "^7",
+ "swiftmailer/swiftmailer": "^5.3|^6.0",
+ "symfony/mailer": "^5.4 || ^6",
+ "symfony/mime": "^5.4 || ^6"
+ },
+ "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-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler",
+ "ext-mbstring": "Allow to work properly with unicode symbols",
+ "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)",
+ "ext-openssl": "Required to send log messages using SSL",
+ "ext-sockets": "Allow sending log messages to a Syslog server (via UDP 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",
+ "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-main": "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": "https://seld.be"
+ }
+ ],
+ "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
+ "homepage": "https://github.com/Seldaek/monolog",
+ "keywords": [
+ "log",
+ "logging",
+ "psr-3"
+ ],
+ "support": {
+ "issues": "https://github.com/Seldaek/monolog/issues",
+ "source": "https://github.com/Seldaek/monolog/tree/2.9.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Seldaek",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/monolog/monolog",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-04-12T20:52:51+00:00"
+ },
+ {
+ "name": "nesbot/carbon",
+ "version": "2.72.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/briannesbitt/Carbon.git",
+ "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/0c6fd108360c562f6e4fd1dedb8233b423e91c83",
+ "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83",
+ "shasum": ""
+ },
+ "require": {
+ "carbonphp/carbon-doctrine-types": "*",
+ "ext-json": "*",
+ "php": "^7.1.8 || ^8.0",
+ "psr/clock": "^1.0",
+ "symfony/polyfill-mbstring": "^1.0",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0"
+ },
+ "provide": {
+ "psr/clock-implementation": "1.0"
+ },
+ "require-dev": {
+ "doctrine/dbal": "^2.0 || ^3.1.4 || ^4.0",
+ "doctrine/orm": "^2.7 || ^3.0",
+ "friendsofphp/php-cs-fixer": "^3.0",
+ "kylekatarnls/multi-tester": "^2.0",
+ "ondrejmirtes/better-reflection": "*",
+ "phpmd/phpmd": "^2.9",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^0.12.99 || ^1.7.14",
+ "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20",
+ "squizlabs/php_codesniffer": "^3.4"
+ },
+ "bin": [
+ "bin/carbon"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-3.x": "3.x-dev",
+ "dev-master": "2.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Carbon\\Laravel\\ServiceProvider"
+ ]
+ },
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Carbon\\": "src/Carbon/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Brian Nesbitt",
+ "email": "brian@nesbot.com",
+ "homepage": "https://markido.com"
+ },
+ {
+ "name": "kylekatarnls",
+ "homepage": "https://github.com/kylekatarnls"
+ }
+ ],
+ "description": "An API extension for DateTime that supports 281 different languages.",
+ "homepage": "https://carbon.nesbot.com",
+ "keywords": [
+ "date",
+ "datetime",
+ "time"
+ ],
+ "support": {
+ "docs": "https://carbon.nesbot.com/docs",
+ "issues": "https://github.com/briannesbitt/Carbon/issues",
+ "source": "https://github.com/briannesbitt/Carbon"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/kylekatarnls",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/Carbon#sponsor",
+ "type": "opencollective"
+ },
+ {
+ "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-01-25T10:35:09+00:00"
+ },
+ {
+ "name": "nette/schema",
+ "version": "v1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/schema.git",
+ "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/schema/zipball/a6d3a6d1f545f01ef38e60f375d1cf1f4de98188",
+ "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188",
+ "shasum": ""
+ },
+ "require": {
+ "nette/utils": "^4.0",
+ "php": "8.1 - 8.3"
+ },
+ "require-dev": {
+ "nette/tester": "^2.4",
+ "phpstan/phpstan-nette": "^1.0",
+ "tracy/tracy": "^2.8"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.3-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0-only",
+ "GPL-3.0-only"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "📐 Nette Schema: validating data structures against a given Schema.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "config",
+ "nette"
+ ],
+ "support": {
+ "issues": "https://github.com/nette/schema/issues",
+ "source": "https://github.com/nette/schema/tree/v1.3.0"
+ },
+ "time": "2023-12-11T11:54:22+00:00"
+ },
+ {
+ "name": "nette/utils",
+ "version": "v4.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/utils.git",
+ "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/utils/zipball/d3ad0aa3b9f934602cb3e3902ebccf10be34d218",
+ "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0 <8.4"
+ },
+ "conflict": {
+ "nette/finder": "<3",
+ "nette/schema": "<1.2.2"
+ },
+ "require-dev": {
+ "jetbrains/phpstorm-attributes": "dev-master",
+ "nette/tester": "^2.5",
+ "phpstan/phpstan": "^1.0",
+ "tracy/tracy": "^2.9"
+ },
+ "suggest": {
+ "ext-gd": "to use Image",
+ "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()",
+ "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()",
+ "ext-json": "to use Nette\\Utils\\Json",
+ "ext-mbstring": "to use Strings::lower() etc...",
+ "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0-only",
+ "GPL-3.0-only"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "array",
+ "core",
+ "datetime",
+ "images",
+ "json",
+ "nette",
+ "paginator",
+ "password",
+ "slugify",
+ "string",
+ "unicode",
+ "utf-8",
+ "utility",
+ "validation"
+ ],
+ "support": {
+ "issues": "https://github.com/nette/utils/issues",
+ "source": "https://github.com/nette/utils/tree/v4.0.4"
+ },
+ "time": "2024-01-17T16:50:36+00:00"
+ },
+ {
+ "name": "nikic/php-parser",
+ "version": "v5.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/PHP-Parser.git",
+ "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/139676794dc1e9231bf7bcd123cfc0c99182cb13",
+ "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "ext-json": "*",
+ "ext-tokenizer": "*",
+ "php": ">=7.4"
+ },
+ "require-dev": {
+ "ircmaxell/php-yacc": "^0.0.7",
+ "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
+ },
+ "bin": [
+ "bin/php-parse"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-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"
+ ],
+ "support": {
+ "issues": "https://github.com/nikic/PHP-Parser/issues",
+ "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.2"
+ },
+ "time": "2024-03-05T20:51:40+00:00"
+ },
+ {
+ "name": "nunomaduro/termwind",
+ "version": "v1.15.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nunomaduro/termwind.git",
+ "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/8ab0b32c8caa4a2e09700ea32925441385e4a5dc",
+ "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": "^8.0",
+ "symfony/console": "^5.3.0|^6.0.0"
+ },
+ "require-dev": {
+ "ergebnis/phpstan-rules": "^1.0.",
+ "illuminate/console": "^8.0|^9.0",
+ "illuminate/support": "^8.0|^9.0",
+ "laravel/pint": "^1.0.0",
+ "pestphp/pest": "^1.21.0",
+ "pestphp/pest-plugin-mock": "^1.0",
+ "phpstan/phpstan": "^1.4.6",
+ "phpstan/phpstan-strict-rules": "^1.1.0",
+ "symfony/var-dumper": "^5.2.7|^6.0.0",
+ "thecodingmachine/phpstan-strict-rules": "^1.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Termwind\\Laravel\\TermwindServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Functions.php"
+ ],
+ "psr-4": {
+ "Termwind\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nuno Maduro",
+ "email": "enunomaduro@gmail.com"
+ }
+ ],
+ "description": "Its like Tailwind CSS, but for the console.",
+ "keywords": [
+ "cli",
+ "console",
+ "css",
+ "package",
+ "php",
+ "style"
+ ],
+ "support": {
+ "issues": "https://github.com/nunomaduro/termwind/issues",
+ "source": "https://github.com/nunomaduro/termwind/tree/v1.15.1"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.com/paypalme/enunomaduro",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/nunomaduro",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/xiCO2k",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-08T01:06:31+00:00"
+ },
+ {
+ "name": "paragonie/random_compat",
+ "version": "v9.99.100",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/paragonie/random_compat.git",
+ "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a",
+ "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">= 7"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "4.*|5.*",
+ "vimeo/psalm": "^1"
+ },
+ "suggest": {
+ "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
+ },
+ "type": "library",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Paragon Initiative Enterprises",
+ "email": "security@paragonie.com",
+ "homepage": "https://paragonie.com"
+ }
+ ],
+ "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
+ "keywords": [
+ "csprng",
+ "polyfill",
+ "pseudorandom",
+ "random"
+ ],
+ "support": {
+ "email": "info@paragonie.com",
+ "issues": "https://github.com/paragonie/random_compat/issues",
+ "source": "https://github.com/paragonie/random_compat"
+ },
+ "time": "2020-10-15T08:29:30+00:00"
+ },
+ {
+ "name": "paragonie/sodium_compat",
+ "version": "v1.21.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/paragonie/sodium_compat.git",
+ "reference": "bb312875dcdd20680419564fe42ba1d9564b9e37"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/bb312875dcdd20680419564fe42ba1d9564b9e37",
+ "reference": "bb312875dcdd20680419564fe42ba1d9564b9e37",
+ "shasum": ""
+ },
+ "require": {
+ "paragonie/random_compat": ">=1",
+ "php": "^5.2.4|^5.3|^5.4|^5.5|^5.6|^7|^8"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^3|^4|^5|^6|^7|^8|^9"
+ },
+ "suggest": {
+ "ext-libsodium": "PHP < 7.0: Better performance, password hashing (Argon2i), secure memory management (memzero), and better security.",
+ "ext-sodium": "PHP >= 7.0: Better performance, password hashing (Argon2i), secure memory management (memzero), and better security."
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "autoload.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "ISC"
+ ],
+ "authors": [
+ {
+ "name": "Paragon Initiative Enterprises",
+ "email": "security@paragonie.com"
+ },
+ {
+ "name": "Frank Denis",
+ "email": "jedisct1@pureftpd.org"
+ }
+ ],
+ "description": "Pure PHP implementation of libsodium; uses the PHP extension if it exists",
+ "keywords": [
+ "Authentication",
+ "BLAKE2b",
+ "ChaCha20",
+ "ChaCha20-Poly1305",
+ "Chapoly",
+ "Curve25519",
+ "Ed25519",
+ "EdDSA",
+ "Edwards-curve Digital Signature Algorithm",
+ "Elliptic Curve Diffie-Hellman",
+ "Poly1305",
+ "Pure-PHP cryptography",
+ "RFC 7748",
+ "RFC 8032",
+ "Salpoly",
+ "Salsa20",
+ "X25519",
+ "XChaCha20-Poly1305",
+ "XSalsa20-Poly1305",
+ "Xchacha20",
+ "Xsalsa20",
+ "aead",
+ "cryptography",
+ "ecdh",
+ "elliptic curve",
+ "elliptic curve cryptography",
+ "encryption",
+ "libsodium",
+ "php",
+ "public-key cryptography",
+ "secret-key cryptography",
+ "side-channel resistant"
+ ],
+ "support": {
+ "issues": "https://github.com/paragonie/sodium_compat/issues",
+ "source": "https://github.com/paragonie/sodium_compat/tree/v1.21.1"
+ },
+ "time": "2024-04-22T22:05:04+00:00"
+ },
+ {
+ "name": "phpoption/phpoption",
+ "version": "1.9.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/schmittjoh/php-option.git",
+ "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/80735db690fe4fc5c76dfa7f9b770634285fa820",
+ "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": true
+ },
+ "branch-alias": {
+ "dev-master": "1.9-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",
+ "homepage": "https://github.com/schmittjoh"
+ },
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ }
+ ],
+ "description": "Option Type for PHP",
+ "keywords": [
+ "language",
+ "option",
+ "php",
+ "type"
+ ],
+ "support": {
+ "issues": "https://github.com/schmittjoh/php-option/issues",
+ "source": "https://github.com/schmittjoh/php-option/tree/1.9.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-12T21:59:55+00:00"
+ },
+ {
+ "name": "psr/clock",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/clock.git",
+ "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+ "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Psr\\Clock\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for reading the clock.",
+ "homepage": "https://github.com/php-fig/clock",
+ "keywords": [
+ "clock",
+ "now",
+ "psr",
+ "psr-20",
+ "time"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/clock/issues",
+ "source": "https://github.com/php-fig/clock/tree/1.0.0"
+ },
+ "time": "2022-11-25T14:36:26+00:00"
+ },
+ {
+ "name": "psr/container",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.4.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Container\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://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"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/container/issues",
+ "source": "https://github.com/php-fig/container/tree/2.0.2"
+ },
+ "time": "2021-11-05T16:47:00+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": ""
+ },
+ "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"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/event-dispatcher/issues",
+ "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
+ },
+ "time": "2019-01-08T18:20:26+00:00"
+ },
+ {
+ "name": "psr/http-client",
+ "version": "1.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-client.git",
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90",
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0 || ^8.0",
+ "psr/http-message": "^1.0 || ^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Client\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP clients",
+ "homepage": "https://github.com/php-fig/http-client",
+ "keywords": [
+ "http",
+ "http-client",
+ "psr",
+ "psr-18"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-client"
+ },
+ "time": "2023-09-23T14:17:50+00:00"
+ },
+ {
+ "name": "psr/http-factory",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-factory.git",
+ "reference": "e616d01114759c4c489f93b099585439f795fe35"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
+ "reference": "e616d01114759c4c489f93b099585439f795fe35",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.0.0",
+ "psr/http-message": "^1.0 || ^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interfaces for PSR-7 HTTP message factories",
+ "keywords": [
+ "factory",
+ "http",
+ "message",
+ "psr",
+ "psr-17",
+ "psr-7",
+ "request",
+ "response"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-factory/tree/1.0.2"
+ },
+ "time": "2023-04-10T20:10:41+00:00"
+ },
+ {
+ "name": "psr/http-message",
+ "version": "2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-message.git",
+ "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71",
+ "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP messages",
+ "homepage": "https://github.com/php-fig/http-message",
+ "keywords": [
+ "http",
+ "http-message",
+ "psr",
+ "psr-7",
+ "request",
+ "response"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-message/tree/2.0"
+ },
+ "time": "2023-04-04T09:54:51+00:00"
+ },
+ {
+ "name": "psr/log",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
+ "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Log\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for logging libraries",
+ "homepage": "https://github.com/php-fig/log",
+ "keywords": [
+ "log",
+ "psr",
+ "psr-3"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/log/tree/3.0.0"
+ },
+ "time": "2021-07-14T16:46:02+00:00"
+ },
+ {
+ "name": "psr/simple-cache",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/simple-cache.git",
+ "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865",
+ "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\SimpleCache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interfaces for simple caching",
+ "keywords": [
+ "cache",
+ "caching",
+ "psr",
+ "psr-16",
+ "simple-cache"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/simple-cache/tree/3.0.0"
+ },
+ "time": "2021-10-29T13:26:27+00:00"
+ },
+ {
+ "name": "psy/psysh",
+ "version": "v0.12.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/bobthecow/psysh.git",
+ "reference": "b6b6cce7d3ee8fbf31843edce5e8f5a72eff4a73"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/b6b6cce7d3ee8fbf31843edce5e8f5a72eff4a73",
+ "reference": "b6b6cce7d3ee8fbf31843edce5e8f5a72eff4a73",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-tokenizer": "*",
+ "nikic/php-parser": "^5.0 || ^4.0",
+ "php": "^8.0 || ^7.4",
+ "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4",
+ "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4"
+ },
+ "conflict": {
+ "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.2"
+ },
+ "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."
+ },
+ "bin": [
+ "bin/psysh"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "0.12.x-dev"
+ },
+ "bamarni-bin": {
+ "bin-links": false,
+ "forward-command": false
+ }
+ },
+ "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"
+ ],
+ "support": {
+ "issues": "https://github.com/bobthecow/psysh/issues",
+ "source": "https://github.com/bobthecow/psysh/tree/v0.12.3"
+ },
+ "time": "2024-04-02T15:57:53+00:00"
+ },
+ {
+ "name": "pusher/pusher-php-server",
+ "version": "7.2.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/pusher/pusher-http-php.git",
+ "reference": "de2f72296808f9cafa6a4462b15a768ff130cddb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/pusher/pusher-http-php/zipball/de2f72296808f9cafa6a4462b15a768ff130cddb",
+ "reference": "de2f72296808f9cafa6a4462b15a768ff130cddb",
+ "shasum": ""
+ },
+ "require": {
+ "ext-curl": "*",
+ "ext-json": "*",
+ "guzzlehttp/guzzle": "^7.2",
+ "paragonie/sodium_compat": "^1.6",
+ "php": "^7.3|^8.0",
+ "psr/log": "^1.0|^2.0|^3.0"
+ },
+ "require-dev": {
+ "overtrue/phplint": "^2.3",
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Pusher\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Library for interacting with the Pusher REST API",
+ "keywords": [
+ "events",
+ "messaging",
+ "php-pusher-server",
+ "publish",
+ "push",
+ "pusher",
+ "real time",
+ "real-time",
+ "realtime",
+ "rest",
+ "trigger"
+ ],
+ "support": {
+ "issues": "https://github.com/pusher/pusher-http-php/issues",
+ "source": "https://github.com/pusher/pusher-http-php/tree/7.2.4"
+ },
+ "time": "2023-12-15T10:58:53+00:00"
+ },
+ {
+ "name": "ralouphie/getallheaders",
+ "version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ralouphie/getallheaders.git",
+ "reference": "120b605dfeb996808c31b6477290a714d356e822"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
+ "reference": "120b605dfeb996808c31b6477290a714d356e822",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6"
+ },
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^2.1",
+ "phpunit/phpunit": "^5 || ^6.5"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/getallheaders.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ralph Khattar",
+ "email": "ralph.khattar@gmail.com"
+ }
+ ],
+ "description": "A polyfill for getallheaders.",
+ "support": {
+ "issues": "https://github.com/ralouphie/getallheaders/issues",
+ "source": "https://github.com/ralouphie/getallheaders/tree/develop"
+ },
+ "time": "2019-03-08T08:55:37+00:00"
+ },
+ {
+ "name": "ramsey/collection",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ramsey/collection.git",
+ "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5",
+ "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "require-dev": {
+ "captainhook/plugin-composer": "^5.3",
+ "ergebnis/composer-normalize": "^2.28.3",
+ "fakerphp/faker": "^1.21",
+ "hamcrest/hamcrest-php": "^2.0",
+ "jangregor/phpstan-prophecy": "^1.0",
+ "mockery/mockery": "^1.5",
+ "php-parallel-lint/php-console-highlighter": "^1.0",
+ "php-parallel-lint/php-parallel-lint": "^1.3",
+ "phpcsstandards/phpcsutils": "^1.0.0-rc1",
+ "phpspec/prophecy-phpunit": "^2.0",
+ "phpstan/extension-installer": "^1.2",
+ "phpstan/phpstan": "^1.9",
+ "phpstan/phpstan-mockery": "^1.1",
+ "phpstan/phpstan-phpunit": "^1.3",
+ "phpunit/phpunit": "^9.5",
+ "psalm/plugin-mockery": "^1.1",
+ "psalm/plugin-phpunit": "^0.18.4",
+ "ramsey/coding-standard": "^2.0.3",
+ "ramsey/conventional-commits": "^1.3",
+ "vimeo/psalm": "^5.4"
+ },
+ "type": "library",
+ "extra": {
+ "captainhook": {
+ "force-install": true
+ },
+ "ramsey/conventional-commits": {
+ "configFile": "conventional-commits.json"
+ }
+ },
+ "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 library for representing and manipulating collections.",
+ "keywords": [
+ "array",
+ "collection",
+ "hash",
+ "map",
+ "queue",
+ "set"
+ ],
+ "support": {
+ "issues": "https://github.com/ramsey/collection/issues",
+ "source": "https://github.com/ramsey/collection/tree/2.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/ramsey",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/ramsey/collection",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-12-31T21:50:55+00:00"
+ },
+ {
+ "name": "ramsey/uuid",
+ "version": "4.7.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ramsey/uuid.git",
+ "reference": "91039bc1faa45ba123c4328958e620d382ec7088"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/91039bc1faa45ba123c4328958e620d382ec7088",
+ "reference": "91039bc1faa45ba123c4328958e620d382ec7088",
+ "shasum": ""
+ },
+ "require": {
+ "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12",
+ "ext-json": "*",
+ "php": "^8.0",
+ "ramsey/collection": "^1.2 || ^2.0"
+ },
+ "replace": {
+ "rhumsaa/uuid": "self.version"
+ },
+ "require-dev": {
+ "captainhook/captainhook": "^5.10",
+ "captainhook/plugin-composer": "^5.3",
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
+ "doctrine/annotations": "^1.8",
+ "ergebnis/composer-normalize": "^2.15",
+ "mockery/mockery": "^1.3",
+ "paragonie/random-lib": "^2",
+ "php-mock/php-mock": "^2.2",
+ "php-mock/php-mock-mockery": "^1.3",
+ "php-parallel-lint/php-parallel-lint": "^1.1",
+ "phpbench/phpbench": "^1.0",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-mockery": "^1.1",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpunit/phpunit": "^8.5 || ^9",
+ "ramsey/composer-repl": "^1.4",
+ "slevomat/coding-standard": "^8.4",
+ "squizlabs/php_codesniffer": "^3.5",
+ "vimeo/psalm": "^4.9"
+ },
+ "suggest": {
+ "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
+ "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": {
+ "captainhook": {
+ "force-install": true
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Ramsey\\Uuid\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).",
+ "keywords": [
+ "guid",
+ "identifier",
+ "uuid"
+ ],
+ "support": {
+ "issues": "https://github.com/ramsey/uuid/issues",
+ "source": "https://github.com/ramsey/uuid/tree/4.7.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/ramsey",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-04-27T21:32:50+00:00"
+ },
+ {
+ "name": "ratchet/rfc6455",
+ "version": "v0.3.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ratchetphp/RFC6455.git",
+ "reference": "7c964514e93456a52a99a20fcfa0de242a43ccdb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ratchetphp/RFC6455/zipball/7c964514e93456a52a99a20fcfa0de242a43ccdb",
+ "reference": "7c964514e93456a52a99a20fcfa0de242a43ccdb",
+ "shasum": ""
+ },
+ "require": {
+ "guzzlehttp/psr7": "^2 || ^1.7",
+ "php": ">=5.4.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^5.7",
+ "react/socket": "^1.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Ratchet\\RFC6455\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "role": "Developer"
+ },
+ {
+ "name": "Matt Bonneau",
+ "role": "Developer"
+ }
+ ],
+ "description": "RFC6455 WebSocket protocol handler",
+ "homepage": "http://socketo.me",
+ "keywords": [
+ "WebSockets",
+ "rfc6455",
+ "websocket"
+ ],
+ "support": {
+ "chat": "https://gitter.im/reactphp/reactphp",
+ "issues": "https://github.com/ratchetphp/RFC6455/issues",
+ "source": "https://github.com/ratchetphp/RFC6455/tree/v0.3.1"
+ },
+ "time": "2021-12-09T23:20:49+00:00"
+ },
+ {
+ "name": "react/cache",
+ "version": "v1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/cache.git",
+ "reference": "d47c472b64aa5608225f47965a484b75c7817d5b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/cache/zipball/d47c472b64aa5608225f47965a484b75c7817d5b",
+ "reference": "d47c472b64aa5608225f47965a484b75c7817d5b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0",
+ "react/promise": "^3.0 || ^2.0 || ^1.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\Cache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "Async, Promise-based cache interface for ReactPHP",
+ "keywords": [
+ "cache",
+ "caching",
+ "promise",
+ "reactphp"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/cache/issues",
+ "source": "https://github.com/reactphp/cache/tree/v1.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2022-11-30T15:59:55+00:00"
+ },
+ {
+ "name": "react/dns",
+ "version": "v1.13.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/dns.git",
+ "reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/dns/zipball/eb8ae001b5a455665c89c1df97f6fb682f8fb0f5",
+ "reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0",
+ "react/cache": "^1.0 || ^0.6 || ^0.5",
+ "react/event-loop": "^1.2",
+ "react/promise": "^3.2 || ^2.7 || ^1.2.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36",
+ "react/async": "^4.3 || ^3 || ^2",
+ "react/promise-timer": "^1.11"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\Dns\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "Async DNS resolver for ReactPHP",
+ "keywords": [
+ "async",
+ "dns",
+ "dns-resolver",
+ "reactphp"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/dns/issues",
+ "source": "https://github.com/reactphp/dns/tree/v1.13.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-06-13T14:18:03+00:00"
+ },
+ {
+ "name": "react/event-loop",
+ "version": "v1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/event-loop.git",
+ "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/event-loop/zipball/bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354",
+ "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
+ },
+ "suggest": {
+ "ext-pcntl": "For signal handling support when using the StreamSelectLoop"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\EventLoop\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.",
+ "keywords": [
+ "asynchronous",
+ "event-loop"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/event-loop/issues",
+ "source": "https://github.com/reactphp/event-loop/tree/v1.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-11-13T13:48:05+00:00"
+ },
+ {
+ "name": "react/promise",
+ "version": "v2.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/promise.git",
+ "reference": "1a8460931ea36dc5c76838fec5734d55c88c6831"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/promise/zipball/1a8460931ea36dc5c76838fec5734d55c88c6831",
+ "reference": "1a8460931ea36dc5c76838fec5734d55c88c6831",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "React\\Promise\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "A lightweight implementation of CommonJS Promises/A for PHP",
+ "keywords": [
+ "promise",
+ "promises"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/promise/issues",
+ "source": "https://github.com/reactphp/promise/tree/v2.11.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-11-16T16:16:50+00:00"
+ },
+ {
+ "name": "react/promise-timer",
+ "version": "v1.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/promise-timer.git",
+ "reference": "4f70306ed66b8b44768941ca7f142092600fafc1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/promise-timer/zipball/4f70306ed66b8b44768941ca7f142092600fafc1",
+ "reference": "4f70306ed66b8b44768941ca7f142092600fafc1",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3",
+ "react/event-loop": "^1.2",
+ "react/promise": "^3.2 || ^2.7.0 || ^1.2.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "React\\Promise\\Timer\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "A trivial implementation of timeouts for Promises, built on top of ReactPHP.",
+ "homepage": "https://github.com/reactphp/promise-timer",
+ "keywords": [
+ "async",
+ "event-loop",
+ "promise",
+ "reactphp",
+ "timeout",
+ "timer"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/promise-timer/issues",
+ "source": "https://github.com/reactphp/promise-timer/tree/v1.11.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-06-04T14:27:45+00:00"
+ },
+ {
+ "name": "react/socket",
+ "version": "v1.15.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/socket.git",
+ "reference": "216d3aec0b87f04a40ca04f481e6af01bdd1d038"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/socket/zipball/216d3aec0b87f04a40ca04f481e6af01bdd1d038",
+ "reference": "216d3aec0b87f04a40ca04f481e6af01bdd1d038",
+ "shasum": ""
+ },
+ "require": {
+ "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
+ "php": ">=5.3.0",
+ "react/dns": "^1.11",
+ "react/event-loop": "^1.2",
+ "react/promise": "^3 || ^2.6 || ^1.2.1",
+ "react/stream": "^1.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36",
+ "react/async": "^4 || ^3 || ^2",
+ "react/promise-stream": "^1.4",
+ "react/promise-timer": "^1.10"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\Socket\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP",
+ "keywords": [
+ "Connection",
+ "Socket",
+ "async",
+ "reactphp",
+ "stream"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/socket/issues",
+ "source": "https://github.com/reactphp/socket/tree/v1.15.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-12-15T11:02:10+00:00"
+ },
+ {
+ "name": "react/stream",
+ "version": "v1.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/stream.git",
+ "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/stream/zipball/1e5b0acb8fe55143b5b426817155190eb6f5b18d",
+ "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d",
+ "shasum": ""
+ },
+ "require": {
+ "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
+ "php": ">=5.3.8",
+ "react/event-loop": "^1.2"
+ },
+ "require-dev": {
+ "clue/stream-filter": "~1.2",
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\Stream\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "Event-driven readable and writable streams for non-blocking I/O in ReactPHP",
+ "keywords": [
+ "event-driven",
+ "io",
+ "non-blocking",
+ "pipe",
+ "reactphp",
+ "readable",
+ "stream",
+ "writable"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/stream/issues",
+ "source": "https://github.com/reactphp/stream/tree/v1.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-06-11T12:45:25+00:00"
+ },
+ {
+ "name": "symfony/console",
+ "version": "v6.4.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/console.git",
+ "reference": "a170e64ae10d00ba89e2acbb590dc2e54da8ad8f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/console/zipball/a170e64ae10d00ba89e2acbb590dc2e54da8ad8f",
+ "reference": "a170e64ae10d00ba89e2acbb590dc2e54da8ad8f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/string": "^5.4|^6.0|^7.0"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<5.4",
+ "symfony/dotenv": "<5.4",
+ "symfony/event-dispatcher": "<5.4",
+ "symfony/lock": "<5.4",
+ "symfony/process": "<5.4"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0|2.0|3.0"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/lock": "^5.4|^6.0|^7.0",
+ "symfony/messenger": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/stopwatch": "^5.4|^6.0|^7.0",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "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": "Eases the creation of beautiful and testable command line interfaces",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "cli",
+ "command-line",
+ "console",
+ "terminal"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/console/tree/v6.4.7"
+ },
+ "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": "2024-04-18T09:22:46+00:00"
+ },
+ {
+ "name": "symfony/css-selector",
+ "version": "v7.0.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/css-selector.git",
+ "reference": "b08a4ad89e84b29cec285b7b1f781a7ae51cf4bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/b08a4ad89e84b29cec285b7b1f781a7ae51cf4bc",
+ "reference": "b08a4ad89e84b29cec285b7b1f781a7ae51cf4bc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2"
+ },
+ "type": "library",
+ "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": "Converts CSS selectors to XPath expressions",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/css-selector/tree/v7.0.7"
+ },
+ "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": "2024-04-18T09:29:19+00:00"
+ },
+ {
+ "name": "symfony/deprecation-contracts",
+ "version": "v3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/deprecation-contracts.git",
+ "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+ "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "files": [
+ "function.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": "A generic function and convention to trigger deprecation notices",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
+ },
+ "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": "2024-04-18T09:32:20+00:00"
+ },
+ {
+ "name": "symfony/error-handler",
+ "version": "v6.4.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/error-handler.git",
+ "reference": "667a072466c6a53827ed7b119af93806b884cbb3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/667a072466c6a53827ed7b119af93806b884cbb3",
+ "reference": "667a072466c6a53827ed7b119af93806b884cbb3",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/log": "^1|^2|^3",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ },
+ "conflict": {
+ "symfony/deprecation-contracts": "<2.5",
+ "symfony/http-kernel": "<6.4"
+ },
+ "require-dev": {
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/serializer": "^5.4|^6.0|^7.0"
+ },
+ "bin": [
+ "Resources/bin/patch-type-declarations"
+ ],
+ "type": "library",
+ "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": "Provides tools to manage errors and ease debugging PHP code",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/error-handler/tree/v6.4.7"
+ },
+ "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": "2024-04-18T09:22:46+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher",
+ "version": "v7.0.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher.git",
+ "reference": "db2a7fab994d67d92356bb39c367db115d9d30f9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/db2a7fab994d67d92356bb39c367db115d9d30f9",
+ "reference": "db2a7fab994d67d92356bb39c367db115d9d30f9",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/event-dispatcher-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<6.4",
+ "symfony/service-contracts": "<2.5"
+ },
+ "provide": {
+ "psr/event-dispatcher-implementation": "1.0",
+ "symfony/event-dispatcher-implementation": "2.0|3.0"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/stopwatch": "^6.4|^7.0"
+ },
+ "type": "library",
+ "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": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.7"
+ },
+ "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": "2024-04-18T09:29:19+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher-contracts",
+ "version": "v3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher-contracts.git",
+ "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50",
+ "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/event-dispatcher": "^1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "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"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0"
+ },
+ "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": "2024-04-18T09:32:20+00:00"
+ },
+ {
+ "name": "symfony/finder",
+ "version": "v6.4.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/finder.git",
+ "reference": "511c48990be17358c23bf45c5d71ab85d40fb764"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/511c48990be17358c23bf45c5d71ab85d40fb764",
+ "reference": "511c48990be17358c23bf45c5d71ab85d40fb764",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "symfony/filesystem": "^6.0|^7.0"
+ },
+ "type": "library",
+ "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": "Finds files and directories via an intuitive fluent interface",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/finder/tree/v6.4.7"
+ },
+ "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": "2024-04-23T10:36:43+00:00"
+ },
+ {
+ "name": "symfony/http-foundation",
+ "version": "v6.4.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-foundation.git",
+ "reference": "b4db6b833035477cb70e18d0ae33cb7c2b521759"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/b4db6b833035477cb70e18d0ae33cb7c2b521759",
+ "reference": "b4db6b833035477cb70e18d0ae33cb7c2b521759",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-mbstring": "~1.1",
+ "symfony/polyfill-php83": "^1.27"
+ },
+ "conflict": {
+ "symfony/cache": "<6.3"
+ },
+ "require-dev": {
+ "doctrine/dbal": "^2.13.1|^3|^4",
+ "predis/predis": "^1.1|^2.0",
+ "symfony/cache": "^6.3|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0",
+ "symfony/mime": "^5.4|^6.0|^7.0",
+ "symfony/rate-limiter": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "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": "Defines an object-oriented layer for the HTTP specification",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/http-foundation/tree/v6.4.7"
+ },
+ "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": "2024-04-18T09:22:46+00:00"
+ },
+ {
+ "name": "symfony/http-kernel",
+ "version": "v6.4.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-kernel.git",
+ "reference": "b7b5e6cdef670a0c82d015a966ffc7e855861a98"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/b7b5e6cdef670a0c82d015a966ffc7e855861a98",
+ "reference": "b7b5e6cdef670a0c82d015a966ffc7e855861a98",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/log": "^1|^2|^3",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "conflict": {
+ "symfony/browser-kit": "<5.4",
+ "symfony/cache": "<5.4",
+ "symfony/config": "<6.1",
+ "symfony/console": "<5.4",
+ "symfony/dependency-injection": "<6.4",
+ "symfony/doctrine-bridge": "<5.4",
+ "symfony/form": "<5.4",
+ "symfony/http-client": "<5.4",
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/mailer": "<5.4",
+ "symfony/messenger": "<5.4",
+ "symfony/translation": "<5.4",
+ "symfony/translation-contracts": "<2.5",
+ "symfony/twig-bridge": "<5.4",
+ "symfony/validator": "<6.4",
+ "symfony/var-dumper": "<6.3",
+ "twig/twig": "<2.13"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0|2.0|3.0"
+ },
+ "require-dev": {
+ "psr/cache": "^1.0|^2.0|^3.0",
+ "symfony/browser-kit": "^5.4|^6.0|^7.0",
+ "symfony/clock": "^6.2|^7.0",
+ "symfony/config": "^6.1|^7.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/css-selector": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/dom-crawler": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/finder": "^5.4|^6.0|^7.0",
+ "symfony/http-client-contracts": "^2.5|^3",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/property-access": "^5.4.5|^6.0.5|^7.0",
+ "symfony/routing": "^5.4|^6.0|^7.0",
+ "symfony/serializer": "^6.4.4|^7.0.4",
+ "symfony/stopwatch": "^5.4|^6.0|^7.0",
+ "symfony/translation": "^5.4|^6.0|^7.0",
+ "symfony/translation-contracts": "^2.5|^3",
+ "symfony/uid": "^5.4|^6.0|^7.0",
+ "symfony/validator": "^6.4|^7.0",
+ "symfony/var-dumper": "^5.4|^6.4|^7.0",
+ "symfony/var-exporter": "^6.2|^7.0",
+ "twig/twig": "^2.13|^3.0.4"
+ },
+ "type": "library",
+ "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": "Provides a structured process for converting a Request into a Response",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/http-kernel/tree/v6.4.7"
+ },
+ "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": "2024-04-29T11:24:44+00:00"
+ },
+ {
+ "name": "symfony/mailer",
+ "version": "v6.4.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/mailer.git",
+ "reference": "2c446d4e446995bed983c0b5bb9ff837e8de7dbd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/mailer/zipball/2c446d4e446995bed983c0b5bb9ff837e8de7dbd",
+ "reference": "2c446d4e446995bed983c0b5bb9ff837e8de7dbd",
+ "shasum": ""
+ },
+ "require": {
+ "egulias/email-validator": "^2.1.10|^3|^4",
+ "php": ">=8.1",
+ "psr/event-dispatcher": "^1",
+ "psr/log": "^1|^2|^3",
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/mime": "^6.2|^7.0",
+ "symfony/service-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/http-kernel": "<5.4",
+ "symfony/messenger": "<6.2",
+ "symfony/mime": "<6.2",
+ "symfony/twig-bridge": "<6.2.1"
+ },
+ "require-dev": {
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/http-client": "^5.4|^6.0|^7.0",
+ "symfony/messenger": "^6.2|^7.0",
+ "symfony/twig-bridge": "^6.2|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Mailer\\": ""
+ },
+ "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": "Helps sending emails",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/mailer/tree/v6.4.7"
+ },
+ "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": "2024-04-18T09:22:46+00:00"
+ },
+ {
+ "name": "symfony/mime",
+ "version": "v6.4.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/mime.git",
+ "reference": "decadcf3865918ecfcbfa90968553994ce935a5e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/decadcf3865918ecfcbfa90968553994ce935a5e",
+ "reference": "decadcf3865918ecfcbfa90968553994ce935a5e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-intl-idn": "^1.10",
+ "symfony/polyfill-mbstring": "^1.0"
+ },
+ "conflict": {
+ "egulias/email-validator": "~3.0.0",
+ "phpdocumentor/reflection-docblock": "<3.2.2",
+ "phpdocumentor/type-resolver": "<1.4.0",
+ "symfony/mailer": "<5.4",
+ "symfony/serializer": "<6.3.2"
+ },
+ "require-dev": {
+ "egulias/email-validator": "^2.1.10|^3.1|^4",
+ "league/html-to-markdown": "^5.0",
+ "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.4|^7.0",
+ "symfony/property-access": "^5.4|^6.0|^7.0",
+ "symfony/property-info": "^5.4|^6.0|^7.0",
+ "symfony/serializer": "^6.3.2|^7.0"
+ },
+ "type": "library",
+ "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": "Allows manipulating MIME messages",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "mime",
+ "mime-type"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/mime/tree/v6.4.7"
+ },
+ "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": "2024-04-18T09:22:46+00:00"
+ },
+ {
+ "name": "symfony/polyfill-ctype",
+ "version": "v1.29.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4",
+ "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "provide": {
+ "ext-ctype": "*"
+ },
+ "suggest": {
+ "ext-ctype": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Ctype\\": ""
+ }
+ },
+ "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"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0"
+ },
+ "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": "2024-01-29T20:11:03+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-grapheme",
+ "version": "v1.29.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
+ "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f",
+ "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
+ }
+ },
+ "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 intl's grapheme_* functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "grapheme",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0"
+ },
+ "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": "2024-01-29T20:11:03+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-idn",
+ "version": "v1.29.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-idn.git",
+ "reference": "a287ed7475f85bf6f61890146edbc932c0fff919"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a287ed7475f85bf6f61890146edbc932c0fff919",
+ "reference": "a287ed7475f85bf6f61890146edbc932c0fff919",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1",
+ "symfony/polyfill-intl-normalizer": "^1.10",
+ "symfony/polyfill-php72": "^1.10"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Idn\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Laurent Bassin",
+ "email": "laurent@bassin.info"
+ },
+ {
+ "name": "Trevor Rowbotham",
+ "email": "trevor.rowbotham@pm.me"
+ },
+ {
+ "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"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.29.0"
+ },
+ "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": "2024-01-29T20:11:03+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-normalizer",
+ "version": "v1.29.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
+ "reference": "bc45c394692b948b4d383a08d7753968bed9a83d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d",
+ "reference": "bc45c394692b948b4d383a08d7753968bed9a83d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
+ },
+ "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 for intl's Normalizer class and related functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "intl",
+ "normalizer",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0"
+ },
+ "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": "2024-01-29T20:11:03+00:00"
+ },
+ {
+ "name": "symfony/polyfill-mbstring",
+ "version": "v1.29.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
+ "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "provide": {
+ "ext-mbstring": "*"
+ },
+ "suggest": {
+ "ext-mbstring": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Mbstring\\": ""
+ }
+ },
+ "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"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0"
+ },
+ "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": "2024-01-29T20:11:03+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php72",
+ "version": "v1.29.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php72.git",
+ "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/861391a8da9a04cbad2d232ddd9e4893220d6e25",
+ "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php72\\": ""
+ }
+ },
+ "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"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php72/tree/v1.29.0"
+ },
+ "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": "2024-01-29T20:11:03+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php80",
+ "version": "v1.29.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php80.git",
+ "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
+ "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php80\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ion Bazan",
+ "email": "ion.bazan@gmail.com"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0"
+ },
+ "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": "2024-01-29T20:11:03+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php83",
+ "version": "v1.29.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php83.git",
+ "reference": "86fcae159633351e5fd145d1c47de6c528f8caff"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff",
+ "reference": "86fcae159633351e5fd145d1c47de6c528f8caff",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1",
+ "symfony/polyfill-php80": "^1.14"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php83\\": ""
+ },
+ "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 8.3+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php83/tree/v1.29.0"
+ },
+ "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": "2024-01-29T20:11:03+00:00"
+ },
+ {
+ "name": "symfony/polyfill-uuid",
+ "version": "v1.29.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-uuid.git",
+ "reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/3abdd21b0ceaa3000ee950097bc3cf9efc137853",
+ "reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "provide": {
+ "ext-uuid": "*"
+ },
+ "suggest": {
+ "ext-uuid": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Uuid\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Grégoire Pineau",
+ "email": "lyrixx@lyrixx.info"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for uuid functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "uuid"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-uuid/tree/v1.29.0"
+ },
+ "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": "2024-01-29T20:11:03+00:00"
+ },
+ {
+ "name": "symfony/process",
+ "version": "v6.4.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/process.git",
+ "reference": "cdb1c81c145fd5aa9b0038bab694035020943381"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/process/zipball/cdb1c81c145fd5aa9b0038bab694035020943381",
+ "reference": "cdb1c81c145fd5aa9b0038bab694035020943381",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "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": "Executes commands in sub-processes",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/process/tree/v6.4.7"
+ },
+ "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": "2024-04-18T09:22:46+00:00"
+ },
+ {
+ "name": "symfony/psr-http-message-bridge",
+ "version": "v2.3.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/psr-http-message-bridge.git",
+ "reference": "581ca6067eb62640de5ff08ee1ba6850a0ee472e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/581ca6067eb62640de5ff08ee1ba6850a0ee472e",
+ "reference": "581ca6067eb62640de5ff08ee1ba6850a0ee472e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/http-message": "^1.0 || ^2.0",
+ "symfony/deprecation-contracts": "^2.5 || ^3.0",
+ "symfony/http-foundation": "^5.4 || ^6.0"
+ },
+ "require-dev": {
+ "nyholm/psr7": "^1.1",
+ "psr/log": "^1.1 || ^2 || ^3",
+ "symfony/browser-kit": "^5.4 || ^6.0",
+ "symfony/config": "^5.4 || ^6.0",
+ "symfony/event-dispatcher": "^5.4 || ^6.0",
+ "symfony/framework-bundle": "^5.4 || ^6.0",
+ "symfony/http-kernel": "^5.4 || ^6.0",
+ "symfony/phpunit-bridge": "^6.2"
+ },
+ "suggest": {
+ "nyholm/psr7": "For a super lightweight PSR-7/17 implementation"
+ },
+ "type": "symfony-bridge",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bridge\\PsrHttpMessage\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "http://symfony.com/contributors"
+ }
+ ],
+ "description": "PSR HTTP message bridge",
+ "homepage": "http://symfony.com",
+ "keywords": [
+ "http",
+ "http-message",
+ "psr-17",
+ "psr-7"
+ ],
+ "support": {
+ "issues": "https://github.com/symfony/psr-http-message-bridge/issues",
+ "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.3.1"
+ },
+ "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": "2023-07-26T11:53:26+00:00"
+ },
+ {
+ "name": "symfony/routing",
+ "version": "v6.4.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/routing.git",
+ "reference": "276e06398f71fa2a973264d94f28150f93cfb907"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/276e06398f71fa2a973264d94f28150f93cfb907",
+ "reference": "276e06398f71fa2a973264d94f28150f93cfb907",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "doctrine/annotations": "<1.12",
+ "symfony/config": "<6.2",
+ "symfony/dependency-injection": "<5.4",
+ "symfony/yaml": "<5.4"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.12|^2",
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^6.2|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^5.4|^6.0|^7.0",
+ "symfony/yaml": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "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": "Maps an HTTP request to a set of configuration variables",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "router",
+ "routing",
+ "uri",
+ "url"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/routing/tree/v6.4.7"
+ },
+ "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": "2024-04-18T09:22:46+00:00"
+ },
+ {
+ "name": "symfony/service-contracts",
+ "version": "v3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/service-contracts.git",
+ "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+ "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/container": "^1.1|^2.0",
+ "symfony/deprecation-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "ext-psr": "<1.1|>=2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Service\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
+ },
+ "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"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/service-contracts/tree/v3.5.0"
+ },
+ "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": "2024-04-18T09:32:20+00:00"
+ },
+ {
+ "name": "symfony/string",
+ "version": "v7.0.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/string.git",
+ "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/string/zipball/e405b5424dc2528e02e31ba26b83a79fd4eb8f63",
+ "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-intl-grapheme": "~1.0",
+ "symfony/polyfill-intl-normalizer": "~1.0",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "conflict": {
+ "symfony/translation-contracts": "<2.5"
+ },
+ "require-dev": {
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/intl": "^6.4|^7.0",
+ "symfony/translation-contracts": "^2.5|^3.0",
+ "symfony/var-exporter": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\String\\": ""
+ },
+ "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": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "grapheme",
+ "i18n",
+ "string",
+ "unicode",
+ "utf-8",
+ "utf8"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/string/tree/v7.0.7"
+ },
+ "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": "2024-04-18T09:29:19+00:00"
+ },
+ {
+ "name": "symfony/translation",
+ "version": "v6.4.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/translation.git",
+ "reference": "7495687c58bfd88b7883823747b0656d90679123"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/7495687c58bfd88b7883823747b0656d90679123",
+ "reference": "7495687c58bfd88b7883823747b0656d90679123",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/translation-contracts": "^2.5|^3.0"
+ },
+ "conflict": {
+ "symfony/config": "<5.4",
+ "symfony/console": "<5.4",
+ "symfony/dependency-injection": "<5.4",
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/http-kernel": "<5.4",
+ "symfony/service-contracts": "<2.5",
+ "symfony/twig-bundle": "<5.4",
+ "symfony/yaml": "<5.4"
+ },
+ "provide": {
+ "symfony/translation-implementation": "2.3|3.0"
+ },
+ "require-dev": {
+ "nikic/php-parser": "^4.18|^5.0",
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/finder": "^5.4|^6.0|^7.0",
+ "symfony/http-client-contracts": "^2.5|^3.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "symfony/intl": "^5.4|^6.0|^7.0",
+ "symfony/polyfill-intl-icu": "^1.21",
+ "symfony/routing": "^5.4|^6.0|^7.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/yaml": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions.php"
+ ],
+ "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": "Provides tools to internationalize your application",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/translation/tree/v6.4.7"
+ },
+ "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": "2024-04-18T09:22:46+00:00"
+ },
+ {
+ "name": "symfony/translation-contracts",
+ "version": "v3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/translation-contracts.git",
+ "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
+ "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Translation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
+ },
+ "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"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0"
+ },
+ "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": "2024-04-18T09:32:20+00:00"
+ },
+ {
+ "name": "symfony/uid",
+ "version": "v6.4.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/uid.git",
+ "reference": "a66efcb71d8bc3a207d9d78e0bd67f3321510355"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/uid/zipball/a66efcb71d8bc3a207d9d78e0bd67f3321510355",
+ "reference": "a66efcb71d8bc3a207d9d78e0bd67f3321510355",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/polyfill-uuid": "^1.15"
+ },
+ "require-dev": {
+ "symfony/console": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Uid\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Grégoire Pineau",
+ "email": "lyrixx@lyrixx.info"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an object-oriented API to generate and represent UIDs",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "UID",
+ "ulid",
+ "uuid"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/uid/tree/v6.4.7"
+ },
+ "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": "2024-04-18T09:22:46+00:00"
+ },
+ {
+ "name": "symfony/var-dumper",
+ "version": "v6.4.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/var-dumper.git",
+ "reference": "7a9cd977cd1c5fed3694bee52990866432af07d7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/7a9cd977cd1c5fed3694bee52990866432af07d7",
+ "reference": "7a9cd977cd1c5fed3694bee52990866432af07d7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "conflict": {
+ "symfony/console": "<5.4"
+ },
+ "require-dev": {
+ "ext-iconv": "*",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/error-handler": "^6.3|^7.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/uid": "^5.4|^6.0|^7.0",
+ "twig/twig": "^2.13|^3.0.4"
+ },
+ "bin": [
+ "Resources/bin/var-dump-server"
+ ],
+ "type": "library",
+ "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": "Provides mechanisms for walking through any arbitrary PHP variable",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "debug",
+ "dump"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/var-dumper/tree/v6.4.7"
+ },
+ "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": "2024-04-18T09:22:46+00:00"
+ },
+ {
+ "name": "tijsverkoyen/css-to-inline-styles",
+ "version": "v2.2.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git",
+ "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/83ee6f38df0a63106a9e4536e3060458b74ccedb",
+ "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "php": "^5.5 || ^7.0 || ^8.0",
+ "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10"
+ },
+ "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",
+ "support": {
+ "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues",
+ "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.2.7"
+ },
+ "time": "2023-12-08T13:03:43+00:00"
+ },
+ {
+ "name": "vlucas/phpdotenv",
+ "version": "v5.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/vlucas/phpdotenv.git",
+ "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4",
+ "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4",
+ "shasum": ""
+ },
+ "require": {
+ "ext-pcre": "*",
+ "graham-campbell/result-type": "^1.1.2",
+ "php": "^7.2.5 || ^8.0",
+ "phpoption/phpoption": "^1.9.2",
+ "symfony/polyfill-ctype": "^1.24",
+ "symfony/polyfill-mbstring": "^1.24",
+ "symfony/polyfill-php80": "^1.24"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "ext-filter": "*",
+ "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
+ },
+ "suggest": {
+ "ext-filter": "Required to use the boolean validator."
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": true
+ },
+ "branch-alias": {
+ "dev-master": "5.6-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Dotenv\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Vance Lucas",
+ "email": "vance@vancelucas.com",
+ "homepage": "https://github.com/vlucas"
+ }
+ ],
+ "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.",
+ "keywords": [
+ "dotenv",
+ "env",
+ "environment"
+ ],
+ "support": {
+ "issues": "https://github.com/vlucas/phpdotenv/issues",
+ "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-12T22:43:29+00:00"
+ },
+ {
+ "name": "voku/portable-ascii",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/voku/portable-ascii.git",
+ "reference": "b56450eed252f6801410d810c8e1727224ae0743"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743",
+ "reference": "b56450eed252f6801410d810c8e1727224ae0743",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.0.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~6.0 || ~7.0 || ~9.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"
+ ],
+ "support": {
+ "issues": "https://github.com/voku/portable-ascii/issues",
+ "source": "https://github.com/voku/portable-ascii/tree/2.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.me/moelleken",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/voku",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/portable-ascii",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://www.patreon.com/voku",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-03-08T17:03:00+00:00"
+ },
+ {
+ "name": "webmozart/assert",
+ "version": "1.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozarts/assert.git",
+ "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991",
+ "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "conflict": {
+ "phpstan/phpstan": "<0.12.20",
+ "vimeo/psalm": "<4.6.1 || 4.6.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5.13"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.10-dev"
+ }
+ },
+ "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"
+ ],
+ "support": {
+ "issues": "https://github.com/webmozarts/assert/issues",
+ "source": "https://github.com/webmozarts/assert/tree/1.11.0"
+ },
+ "time": "2022-06-03T18:03:27+00:00"
+ }
+ ],
+ "packages-dev": [
+ {
+ "name": "doctrine/instantiator",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/instantiator.git",
+ "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
+ "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^11",
+ "ext-pdo": "*",
+ "ext-phar": "*",
+ "phpbench/phpbench": "^1.2",
+ "phpstan/phpstan": "^1.9.4",
+ "phpstan/phpstan-phpunit": "^1.3",
+ "phpunit/phpunit": "^9.5.27",
+ "vimeo/psalm": "^5.4"
+ },
+ "type": "library",
+ "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": "https://ocramius.github.io/"
+ }
+ ],
+ "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"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/instantiator/issues",
+ "source": "https://github.com/doctrine/instantiator/tree/2.0.0"
+ },
+ "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%2Finstantiator",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-12-30T00:23:10+00:00"
+ },
+ {
+ "name": "fakerphp/faker",
+ "version": "v1.23.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/FakerPHP/Faker.git",
+ "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b",
+ "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0",
+ "psr/container": "^1.0 || ^2.0",
+ "symfony/deprecation-contracts": "^2.2 || ^3.0"
+ },
+ "conflict": {
+ "fzaninotto/faker": "*"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.4.1",
+ "doctrine/persistence": "^1.3 || ^2.0",
+ "ext-intl": "*",
+ "phpunit/phpunit": "^9.5.26",
+ "symfony/phpunit-bridge": "^5.4.16"
+ },
+ "suggest": {
+ "doctrine/orm": "Required to use Faker\\ORM\\Doctrine",
+ "ext-curl": "Required by Faker\\Provider\\Image to download images.",
+ "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.",
+ "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.",
+ "ext-mbstring": "Required for multibyte Unicode string functionality."
+ },
+ "type": "library",
+ "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"
+ ],
+ "support": {
+ "issues": "https://github.com/FakerPHP/Faker/issues",
+ "source": "https://github.com/FakerPHP/Faker/tree/v1.23.1"
+ },
+ "time": "2024-01-02T13:46:09+00:00"
+ },
+ {
+ "name": "filp/whoops",
+ "version": "2.15.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/filp/whoops.git",
+ "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/filp/whoops/zipball/a139776fa3f5985a50b509f2a02ff0f709d2a546",
+ "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.5.9 || ^7.0 || ^8.0",
+ "psr/log": "^1.0.1 || ^2.0 || ^3.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^0.9 || ^1.0",
+ "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3",
+ "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.7-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"
+ ],
+ "support": {
+ "issues": "https://github.com/filp/whoops/issues",
+ "source": "https://github.com/filp/whoops/tree/2.15.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/denis-sokolov",
+ "type": "github"
+ }
+ ],
+ "time": "2023-11-03T12:00:00+00:00"
+ },
+ {
+ "name": "hamcrest/hamcrest-php",
+ "version": "v2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hamcrest/hamcrest-php.git",
+ "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
+ "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3|^7.0|^8.0"
+ },
+ "replace": {
+ "cordoval/hamcrest-php": "*",
+ "davedevelopment/hamcrest-php": "*",
+ "kodova/hamcrest-php": "*"
+ },
+ "require-dev": {
+ "phpunit/php-file-iterator": "^1.4 || ^2.0",
+ "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "hamcrest"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "This is the PHP port of Hamcrest Matchers",
+ "keywords": [
+ "test"
+ ],
+ "support": {
+ "issues": "https://github.com/hamcrest/hamcrest-php/issues",
+ "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1"
+ },
+ "time": "2020-07-09T08:09:16+00:00"
+ },
+ {
+ "name": "laravel/sail",
+ "version": "v1.29.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/sail.git",
+ "reference": "8be4a31150eab3b46af11a2e7b2c4632eefaad7e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/sail/zipball/8be4a31150eab3b46af11a2e7b2c4632eefaad7e",
+ "reference": "8be4a31150eab3b46af11a2e7b2c4632eefaad7e",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/console": "^9.52.16|^10.0|^11.0",
+ "illuminate/contracts": "^9.52.16|^10.0|^11.0",
+ "illuminate/support": "^9.52.16|^10.0|^11.0",
+ "php": "^8.0",
+ "symfony/console": "^6.0|^7.0",
+ "symfony/yaml": "^6.0|^7.0"
+ },
+ "require-dev": {
+ "orchestra/testbench": "^7.0|^8.0|^9.0",
+ "phpstan/phpstan": "^1.10"
+ },
+ "bin": [
+ "bin/sail"
+ ],
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Laravel\\Sail\\SailServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Laravel\\Sail\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "Docker files for running a basic Laravel application.",
+ "keywords": [
+ "docker",
+ "laravel"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/sail/issues",
+ "source": "https://github.com/laravel/sail"
+ },
+ "time": "2024-03-20T20:09:31+00:00"
+ },
+ {
+ "name": "mockery/mockery",
+ "version": "1.6.11",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/mockery/mockery.git",
+ "reference": "81a161d0b135df89951abd52296adf97deb0723d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/mockery/mockery/zipball/81a161d0b135df89951abd52296adf97deb0723d",
+ "reference": "81a161d0b135df89951abd52296adf97deb0723d",
+ "shasum": ""
+ },
+ "require": {
+ "hamcrest/hamcrest-php": "^2.0.1",
+ "lib-pcre": ">=7.0",
+ "php": ">=7.3"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5 || ^9.6.17",
+ "symplify/easy-coding-standard": "^12.1.14"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "library/helpers.php",
+ "library/Mockery.php"
+ ],
+ "psr-4": {
+ "Mockery\\": "library/Mockery"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Pádraic Brady",
+ "email": "padraic.brady@gmail.com",
+ "homepage": "https://github.com/padraic",
+ "role": "Author"
+ },
+ {
+ "name": "Dave Marshall",
+ "email": "dave.marshall@atstsolutions.co.uk",
+ "homepage": "https://davedevelopment.co.uk",
+ "role": "Developer"
+ },
+ {
+ "name": "Nathanael Esayeas",
+ "email": "nathanael.esayeas@protonmail.com",
+ "homepage": "https://github.com/ghostwriter",
+ "role": "Lead Developer"
+ }
+ ],
+ "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"
+ ],
+ "support": {
+ "docs": "https://docs.mockery.io/",
+ "issues": "https://github.com/mockery/mockery/issues",
+ "rss": "https://github.com/mockery/mockery/releases.atom",
+ "security": "https://github.com/mockery/mockery/security/advisories",
+ "source": "https://github.com/mockery/mockery"
+ },
+ "time": "2024-03-21T18:34:15+00:00"
+ },
+ {
+ "name": "myclabs/deep-copy",
+ "version": "1.11.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/myclabs/DeepCopy.git",
+ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "conflict": {
+ "doctrine/collections": "<1.6.8",
+ "doctrine/common": "<2.13.3 || >=3,<3.2.2"
+ },
+ "require-dev": {
+ "doctrine/collections": "^1.6.8",
+ "doctrine/common": "^2.13.3 || ^3.2.2",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/DeepCopy/deep_copy.php"
+ ],
+ "psr-4": {
+ "DeepCopy\\": "src/DeepCopy/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Create deep copies (clones) of your objects",
+ "keywords": [
+ "clone",
+ "copy",
+ "duplicate",
+ "object",
+ "object graph"
+ ],
+ "support": {
+ "issues": "https://github.com/myclabs/DeepCopy/issues",
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1"
+ },
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-03-08T13:26:56+00:00"
+ },
+ {
+ "name": "nunomaduro/collision",
+ "version": "v6.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nunomaduro/collision.git",
+ "reference": "f05978827b9343cba381ca05b8c7deee346b6015"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nunomaduro/collision/zipball/f05978827b9343cba381ca05b8c7deee346b6015",
+ "reference": "f05978827b9343cba381ca05b8c7deee346b6015",
+ "shasum": ""
+ },
+ "require": {
+ "filp/whoops": "^2.14.5",
+ "php": "^8.0.0",
+ "symfony/console": "^6.0.2"
+ },
+ "require-dev": {
+ "brianium/paratest": "^6.4.1",
+ "laravel/framework": "^9.26.1",
+ "laravel/pint": "^1.1.1",
+ "nunomaduro/larastan": "^1.0.3",
+ "nunomaduro/mock-final-classes": "^1.1.0",
+ "orchestra/testbench": "^7.7",
+ "phpunit/phpunit": "^9.5.23",
+ "spatie/ignition": "^1.4.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-develop": "6.x-dev"
+ },
+ "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"
+ ],
+ "support": {
+ "issues": "https://github.com/nunomaduro/collision/issues",
+ "source": "https://github.com/nunomaduro/collision"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.com/paypalme/enunomaduro",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/nunomaduro",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/nunomaduro",
+ "type": "patreon"
+ }
+ ],
+ "time": "2023-01-03T12:54:54+00:00"
+ },
+ {
+ "name": "phar-io/manifest",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/manifest.git",
+ "reference": "54750ef60c58e43759730615a392c31c80e23176"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176",
+ "reference": "54750ef60c58e43759730615a392c31c80e23176",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "ext-phar": "*",
+ "ext-xmlwriter": "*",
+ "phar-io/version": "^3.0.1",
+ "php": "^7.2 || ^8.0"
+ },
+ "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": "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)",
+ "support": {
+ "issues": "https://github.com/phar-io/manifest/issues",
+ "source": "https://github.com/phar-io/manifest/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-03T12:33:53+00:00"
+ },
+ {
+ "name": "phar-io/version",
+ "version": "3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/version.git",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.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",
+ "support": {
+ "issues": "https://github.com/phar-io/version/issues",
+ "source": "https://github.com/phar-io/version/tree/3.2.1"
+ },
+ "time": "2022-02-21T01:04:05+00:00"
+ },
+ {
+ "name": "phpunit/php-code-coverage",
+ "version": "9.2.31",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/48c34b5d8d983006bd2adc2d0de92963b9155965",
+ "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "ext-xmlwriter": "*",
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=7.3",
+ "phpunit/php-file-iterator": "^3.0.3",
+ "phpunit/php-text-template": "^2.0.2",
+ "sebastian/code-unit-reverse-lookup": "^2.0.2",
+ "sebastian/complexity": "^2.0",
+ "sebastian/environment": "^5.1.2",
+ "sebastian/lines-of-code": "^1.0.3",
+ "sebastian/version": "^3.0.1",
+ "theseer/tokenizer": "^1.2.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-pcov": "PHP extension that provides line coverage",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "9.2-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"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
+ "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.31"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T06:37:42+00:00"
+ },
+ {
+ "name": "phpunit/php-file-iterator",
+ "version": "3.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
+ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "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",
+ "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"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2021-12-02T12:48:52+00:00"
+ },
+ {
+ "name": "phpunit/php-invoker",
+ "version": "3.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-invoker.git",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "ext-pcntl": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-pcntl": "*"
+ },
+ "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",
+ "role": "lead"
+ }
+ ],
+ "description": "Invoke callables with a timeout",
+ "homepage": "https://github.com/sebastianbergmann/php-invoker/",
+ "keywords": [
+ "process"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:58:55+00:00"
+ },
+ {
+ "name": "phpunit/php-text-template",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "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",
+ "role": "lead"
+ }
+ ],
+ "description": "Simple template engine.",
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+ "keywords": [
+ "template"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T05:33:50+00:00"
+ },
+ {
+ "name": "phpunit/php-timer",
+ "version": "5.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.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": "Utility class for timing",
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "keywords": [
+ "timer"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-timer/issues",
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:16:10+00:00"
+ },
+ {
+ "name": "phpunit/phpunit",
+ "version": "9.6.19",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
+ "reference": "a1a54a473501ef4cdeaae4e06891674114d79db8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a1a54a473501ef4cdeaae4e06891674114d79db8",
+ "reference": "a1a54a473501ef4cdeaae4e06891674114d79db8",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/instantiator": "^1.3.1 || ^2",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-xml": "*",
+ "ext-xmlwriter": "*",
+ "myclabs/deep-copy": "^1.10.1",
+ "phar-io/manifest": "^2.0.3",
+ "phar-io/version": "^3.0.2",
+ "php": ">=7.3",
+ "phpunit/php-code-coverage": "^9.2.28",
+ "phpunit/php-file-iterator": "^3.0.5",
+ "phpunit/php-invoker": "^3.1.1",
+ "phpunit/php-text-template": "^2.0.3",
+ "phpunit/php-timer": "^5.0.2",
+ "sebastian/cli-parser": "^1.0.1",
+ "sebastian/code-unit": "^1.0.6",
+ "sebastian/comparator": "^4.0.8",
+ "sebastian/diff": "^4.0.3",
+ "sebastian/environment": "^5.1.3",
+ "sebastian/exporter": "^4.0.5",
+ "sebastian/global-state": "^5.0.1",
+ "sebastian/object-enumerator": "^4.0.3",
+ "sebastian/resource-operations": "^3.0.3",
+ "sebastian/type": "^3.2",
+ "sebastian/version": "^3.0.2"
+ },
+ "suggest": {
+ "ext-soap": "To be able to generate mocks based on WSDL files",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
+ },
+ "bin": [
+ "phpunit"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "9.6-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Framework/Assert/Functions.php"
+ ],
+ "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"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/phpunit/issues",
+ "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.19"
+ },
+ "funding": [
+ {
+ "url": "https://phpunit.de/sponsors.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-04-05T04:35:58+00:00"
+ },
+ {
+ "name": "sebastian/cli-parser",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/cli-parser.git",
+ "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
+ "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.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 for parsing CLI options",
+ "homepage": "https://github.com/sebastianbergmann/cli-parser",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T06:27:43+00:00"
+ },
+ {
+ "name": "sebastian/code-unit",
+ "version": "1.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit.git",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.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": "Collection of value objects that represent the PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/code-unit",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:08:54+00:00"
+ },
+ {
+ "name": "sebastian/code-unit-reverse-lookup",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
+ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "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": "Looks up which function or method a line of code belongs to",
+ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:30:19+00:00"
+ },
+ {
+ "name": "sebastian/comparator",
+ "version": "4.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/comparator.git",
+ "reference": "fa0f136dd2334583309d32b62544682ee972b51a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a",
+ "reference": "fa0f136dd2334583309d32b62544682ee972b51a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/diff": "^4.0",
+ "sebastian/exporter": "^4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-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": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ }
+ ],
+ "description": "Provides the functionality to compare PHP values for equality",
+ "homepage": "https://github.com/sebastianbergmann/comparator",
+ "keywords": [
+ "comparator",
+ "compare",
+ "equality"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/comparator/issues",
+ "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2022-09-14T12:41:17+00:00"
+ },
+ {
+ "name": "sebastian/complexity",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/complexity.git",
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a",
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "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",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for calculating the complexity of PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/complexity",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/complexity/issues",
+ "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-22T06:19:30+00:00"
+ },
+ {
+ "name": "sebastian/diff",
+ "version": "4.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/diff.git",
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc",
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3",
+ "symfony/process": "^4.2 || ^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
+ }
+ ],
+ "description": "Diff implementation",
+ "homepage": "https://github.com/sebastianbergmann/diff",
+ "keywords": [
+ "diff",
+ "udiff",
+ "unidiff",
+ "unified diff"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/diff/issues",
+ "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T06:30:58+00:00"
+ },
+ {
+ "name": "sebastian/environment",
+ "version": "5.1.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/environment.git",
+ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
+ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-posix": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.1-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"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/environment/issues",
+ "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:03:51+00:00"
+ },
+ {
+ "name": "sebastian/exporter",
+ "version": "4.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/exporter.git",
+ "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72",
+ "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "ext-mbstring": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-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": "https://www.github.com/sebastianbergmann/exporter",
+ "keywords": [
+ "export",
+ "exporter"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/exporter/issues",
+ "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T06:33:00+00:00"
+ },
+ {
+ "name": "sebastian/global-state",
+ "version": "5.0.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/global-state.git",
+ "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
+ "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "ext-dom": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-uopz": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.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"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/global-state/issues",
+ "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T06:35:11+00:00"
+ },
+ {
+ "name": "sebastian/lines-of-code",
+ "version": "1.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/lines-of-code.git",
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5",
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.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 for counting the lines of code in PHP source code",
+ "homepage": "https://github.com/sebastianbergmann/lines-of-code",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-22T06:20:34+00:00"
+ },
+ {
+ "name": "sebastian/object-enumerator",
+ "version": "4.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-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/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:12:34+00:00"
+ },
+ {
+ "name": "sebastian/object-reflector",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-reflector.git",
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "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": "Allows reflection of object attributes, including inherited and non-public ones",
+ "homepage": "https://github.com/sebastianbergmann/object-reflector/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:14:26+00:00"
+ },
+ {
+ "name": "sebastian/recursion-context",
+ "version": "4.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
+ "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
+ "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-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": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides functionality to recursively process PHP variables",
+ "homepage": "https://github.com/sebastianbergmann/recursion-context",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:07:39+00:00"
+ },
+ {
+ "name": "sebastian/resource-operations",
+ "version": "3.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/resource-operations.git",
+ "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
+ "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "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": "Provides a list of PHP built-in functions that operate on resources",
+ "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
+ "support": {
+ "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-14T16:00:52+00:00"
+ },
+ {
+ "name": "sebastian/type",
+ "version": "3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/type.git",
+ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
+ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.2-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",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/type/issues",
+ "source": "https://github.com/sebastianbergmann/type/tree/3.2.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:13:03+00:00"
+ },
+ {
+ "name": "sebastian/version",
+ "version": "3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/version.git",
+ "reference": "c6c1022351a901512170118436c764e473f6de8c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
+ "reference": "c6c1022351a901512170118436c764e473f6de8c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "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",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+ "homepage": "https://github.com/sebastianbergmann/version",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/version/issues",
+ "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T06:39:44+00:00"
+ },
+ {
+ "name": "spatie/backtrace",
+ "version": "1.6.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/backtrace.git",
+ "reference": "8373b9d51638292e3bfd736a9c19a654111b4a23"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/backtrace/zipball/8373b9d51638292e3bfd736a9c19a654111b4a23",
+ "reference": "8373b9d51638292e3bfd736a9c19a654111b4a23",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.3|^8.0"
+ },
+ "require-dev": {
+ "ext-json": "*",
+ "laravel/serializable-closure": "^1.3",
+ "phpunit/phpunit": "^9.3",
+ "spatie/phpunit-snapshot-assertions": "^4.2",
+ "symfony/var-dumper": "^5.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Spatie\\Backtrace\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Freek Van de Herten",
+ "email": "freek@spatie.be",
+ "homepage": "https://spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "A better backtrace",
+ "homepage": "https://github.com/spatie/backtrace",
+ "keywords": [
+ "Backtrace",
+ "spatie"
+ ],
+ "support": {
+ "source": "https://github.com/spatie/backtrace/tree/1.6.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/spatie",
+ "type": "github"
+ },
+ {
+ "url": "https://spatie.be/open-source/support-us",
+ "type": "other"
+ }
+ ],
+ "time": "2024-04-24T13:22:11+00:00"
+ },
+ {
+ "name": "spatie/flare-client-php",
+ "version": "1.5.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/flare-client-php.git",
+ "reference": "e27977d534eefe04c154c6fd8460217024054c05"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/e27977d534eefe04c154c6fd8460217024054c05",
+ "reference": "e27977d534eefe04c154c6fd8460217024054c05",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0",
+ "php": "^8.0",
+ "spatie/backtrace": "^1.5.2",
+ "symfony/http-foundation": "^5.2|^6.0|^7.0",
+ "symfony/mime": "^5.2|^6.0|^7.0",
+ "symfony/process": "^5.2|^6.0|^7.0",
+ "symfony/var-dumper": "^5.2|^6.0|^7.0"
+ },
+ "require-dev": {
+ "dms/phpunit-arraysubset-asserts": "^0.5.0",
+ "pestphp/pest": "^1.20|^2.0",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "spatie/phpunit-snapshot-assertions": "^4.0|^5.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.3.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/helpers.php"
+ ],
+ "psr-4": {
+ "Spatie\\FlareClient\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Send PHP errors to Flare",
+ "homepage": "https://github.com/spatie/flare-client-php",
+ "keywords": [
+ "exception",
+ "flare",
+ "reporting",
+ "spatie"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/flare-client-php/issues",
+ "source": "https://github.com/spatie/flare-client-php/tree/1.5.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2024-05-03T15:43:14+00:00"
+ },
+ {
+ "name": "spatie/ignition",
+ "version": "1.14.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/ignition.git",
+ "reference": "c23cc018c5f423d2f413b99f84655fceb6549811"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/ignition/zipball/c23cc018c5f423d2f413b99f84655fceb6549811",
+ "reference": "c23cc018c5f423d2f413b99f84655fceb6549811",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "php": "^8.0",
+ "spatie/backtrace": "^1.5.3",
+ "spatie/flare-client-php": "^1.4.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ },
+ "require-dev": {
+ "illuminate/cache": "^9.52|^10.0|^11.0",
+ "mockery/mockery": "^1.4",
+ "pestphp/pest": "^1.20|^2.0",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "psr/simple-cache-implementation": "*",
+ "symfony/cache": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "vlucas/phpdotenv": "^5.5"
+ },
+ "suggest": {
+ "openai-php/client": "Require get solutions from OpenAI",
+ "simple-cache-implementation": "To cache solutions from OpenAI"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Spatie\\Ignition\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Spatie",
+ "email": "info@spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "A beautiful error page for PHP applications.",
+ "homepage": "https://flareapp.io/ignition",
+ "keywords": [
+ "error",
+ "flare",
+ "laravel",
+ "page"
+ ],
+ "support": {
+ "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction",
+ "forum": "https://twitter.com/flareappio",
+ "issues": "https://github.com/spatie/ignition/issues",
+ "source": "https://github.com/spatie/ignition"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2024-05-03T15:56:16+00:00"
+ },
+ {
+ "name": "spatie/laravel-ignition",
+ "version": "1.6.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/laravel-ignition.git",
+ "reference": "1a2b4bd3d48c72526c0ba417687e5c56b5cf49bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/1a2b4bd3d48c72526c0ba417687e5c56b5cf49bc",
+ "reference": "1a2b4bd3d48c72526c0ba417687e5c56b5cf49bc",
+ "shasum": ""
+ },
+ "require": {
+ "ext-curl": "*",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "illuminate/support": "^8.77|^9.27",
+ "monolog/monolog": "^2.3",
+ "php": "^8.0",
+ "spatie/flare-client-php": "^1.0.1",
+ "spatie/ignition": "^1.4.1",
+ "symfony/console": "^5.0|^6.0",
+ "symfony/var-dumper": "^5.0|^6.0"
+ },
+ "require-dev": {
+ "filp/whoops": "^2.14",
+ "livewire/livewire": "^2.8|dev-develop",
+ "mockery/mockery": "^1.4",
+ "nunomaduro/larastan": "^1.0",
+ "orchestra/testbench": "^6.23|^7.0",
+ "pestphp/pest": "^1.20",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "spatie/laravel-ray": "^1.27"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Spatie\\LaravelIgnition\\IgnitionServiceProvider"
+ ],
+ "aliases": {
+ "Flare": "Spatie\\LaravelIgnition\\Facades\\Flare"
+ }
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/helpers.php"
+ ],
+ "psr-4": {
+ "Spatie\\LaravelIgnition\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Spatie",
+ "email": "info@spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "A beautiful error page for Laravel applications.",
+ "homepage": "https://flareapp.io/ignition",
+ "keywords": [
+ "error",
+ "flare",
+ "laravel",
+ "page"
+ ],
+ "support": {
+ "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction",
+ "forum": "https://twitter.com/flareappio",
+ "issues": "https://github.com/spatie/laravel-ignition/issues",
+ "source": "https://github.com/spatie/laravel-ignition"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2023-01-03T19:28:04+00:00"
+ },
+ {
+ "name": "symfony/yaml",
+ "version": "v7.0.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/yaml.git",
+ "reference": "0d3916ae69ea28b59d94b60c4f2b50f4e25adb5c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/0d3916ae69ea28b59d94b60c4f2b50f4e25adb5c",
+ "reference": "0d3916ae69ea28b59d94b60c4f2b50f4e25adb5c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "conflict": {
+ "symfony/console": "<6.4"
+ },
+ "require-dev": {
+ "symfony/console": "^6.4|^7.0"
+ },
+ "bin": [
+ "Resources/bin/yaml-lint"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Yaml\\": ""
+ },
+ "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": "Loads and dumps YAML files",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/yaml/tree/v7.0.7"
+ },
+ "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": "2024-04-28T11:44:19+00:00"
+ },
+ {
+ "name": "theseer/tokenizer",
+ "version": "1.2.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/theseer/tokenizer.git",
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
+ "php": "^7.2 || ^8.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",
+ "support": {
+ "issues": "https://github.com/theseer/tokenizer/issues",
+ "source": "https://github.com/theseer/tokenizer/tree/1.2.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-03T12:36:25+00:00"
+ }
+ ],
+ "aliases": [],
+ "minimum-stability": "dev",
+ "stability-flags": {
+ "beyondcode/laravel-websockets": 10
+ },
+ "prefer-stable": true,
+ "prefer-lowest": false,
+ "platform": {
+ "php": "^8.0.2"
+ },
+ "platform-dev": [],
+ "plugin-api-version": "2.6.0"
+}
diff --git a/config/app.php b/config/app.php
new file mode 100644
index 0000000..83dc03d
--- /dev/null
+++ b/config/app.php
@@ -0,0 +1,197 @@
+ 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'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | 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' => 'Asia/Jakarta',
+
+ /*
+ |--------------------------------------------------------------------------
+ | 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' => 'en',
+
+ /*
+ |--------------------------------------------------------------------------
+ | 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' => Facade::defaultAliases()->merge([
+ // ...
+ ])->toArray(),
+
+];
diff --git a/config/auth.php b/config/auth.php
new file mode 100644
index 0000000..d8c6cee
--- /dev/null
+++ b/config/auth.php
@@ -0,0 +1,111 @@
+ [
+ '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"
+ |
+ */
+
+ 'guards' => [
+ 'web' => [
+ 'driver' => 'session',
+ 'provider' => 'users',
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | 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\Models\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 each reset token will 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..3b35ac5
--- /dev/null
+++ b/config/broadcasting.php
@@ -0,0 +1,64 @@
+ 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',
+ ],
+
+ 'ably' => [
+ 'driver' => 'ably',
+ 'key' => env('ABLY_KEY'),
+ ],
+
+ 'log' => [
+ 'driver' => 'log',
+ ],
+
+ 'null' => [
+ 'driver' => 'null',
+ ],
+
+ ],
+
+];
diff --git a/config/cache.php b/config/cache.php
new file mode 100644
index 0000000..0ad5c74
--- /dev/null
+++ b/config/cache.php
@@ -0,0 +1,110 @@
+ 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.
+ |
+ | Supported drivers: "apc", "array", "database", "file",
+ | "memcached", "redis", "dynamodb", "octane", "null"
+ |
+ */
+
+ 'stores' => [
+
+ 'apc' => [
+ 'driver' => 'apc',
+ ],
+
+ 'array' => [
+ 'driver' => 'array',
+ 'serialize' => false,
+ ],
+
+ 'database' => [
+ 'driver' => 'database',
+ 'table' => 'cache',
+ 'connection' => null,
+ 'lock_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',
+ 'lock_connection' => 'default',
+ ],
+
+ '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'),
+ ],
+
+ 'octane' => [
+ 'driver' => 'octane',
+ ],
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | 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/cors.php b/config/cors.php
new file mode 100644
index 0000000..8a39e6d
--- /dev/null
+++ b/config/cors.php
@@ -0,0 +1,34 @@
+ ['api/*', 'sanctum/csrf-cookie'],
+
+ 'allowed_methods' => ['*'],
+
+ 'allowed_origins' => ['*'],
+
+ 'allowed_origins_patterns' => [],
+
+ 'allowed_headers' => ['*'],
+
+ 'exposed_headers' => [],
+
+ 'max_age' => 0,
+
+ 'supports_credentials' => false,
+
+];
diff --git a/config/database.php b/config/database.php
new file mode 100644
index 0000000..0faebae
--- /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,
+ 'search_path' => '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'),
+ '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'),
+ '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..cf5abce
--- /dev/null
+++ b/config/filesystems.php
@@ -0,0 +1,73 @@
+ env('FILESYSTEM_DISK', 'local'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | 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' => [
+
+ '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'),
+ 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),
+ ],
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Symbolic Links
+ |--------------------------------------------------------------------------
+ |
+ | Here you may configure the symbolic links that will be created when the
+ | `storage:link` Artisan command is executed. The array keys should be
+ | the locations of the links and the values should be their targets.
+ |
+ */
+
+ 'links' => [
+ public_path('storage') => storage_path('app/public'),
+ ],
+
+];
diff --git a/config/hashing.php b/config/hashing.php
new file mode 100644
index 0000000..bcd3be4
--- /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' => 65536,
+ 'threads' => 1,
+ 'time' => 4,
+ ],
+
+];
diff --git a/config/logging.php b/config/logging.php
new file mode 100644
index 0000000..fefe088
--- /dev/null
+++ b/config/logging.php
@@ -0,0 +1,119 @@
+ env('LOG_CHANNEL', 'stack'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Deprecations Log Channel
+ |--------------------------------------------------------------------------
+ |
+ | This option controls the log channel that should be used to log warnings
+ | regarding deprecated PHP and library features. This allows you to get
+ | your application ready for upcoming major versions of dependencies.
+ |
+ */
+
+ 'deprecations' => env('LOG_DEPRECATIONS_CHANNEL', 'null'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | 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' => env('LOG_LEVEL', 'debug'),
+ ],
+
+ 'daily' => [
+ 'driver' => 'daily',
+ 'path' => storage_path('logs/laravel.log'),
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'days' => 14,
+ ],
+
+ 'slack' => [
+ 'driver' => 'slack',
+ 'url' => env('LOG_SLACK_WEBHOOK_URL'),
+ 'username' => 'Laravel Log',
+ 'emoji' => ':boom:',
+ 'level' => env('LOG_LEVEL', 'critical'),
+ ],
+
+ 'papertrail' => [
+ 'driver' => 'monolog',
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'handler' => env('LOG_PAPERTRAIL_HANDLER', SyslogUdpHandler::class),
+ 'handler_with' => [
+ 'host' => env('PAPERTRAIL_URL'),
+ 'port' => env('PAPERTRAIL_PORT'),
+ 'connectionString' => 'tls://'.env('PAPERTRAIL_URL').':'.env('PAPERTRAIL_PORT'),
+ ],
+ ],
+
+ 'stderr' => [
+ 'driver' => 'monolog',
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'handler' => StreamHandler::class,
+ 'formatter' => env('LOG_STDERR_FORMATTER'),
+ 'with' => [
+ 'stream' => 'php://stderr',
+ ],
+ ],
+
+ 'syslog' => [
+ 'driver' => 'syslog',
+ 'level' => env('LOG_LEVEL', 'debug'),
+ ],
+
+ 'errorlog' => [
+ 'driver' => 'errorlog',
+ 'level' => env('LOG_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..87b6fe3
--- /dev/null
+++ b/config/mail.php
@@ -0,0 +1,117 @@
+ env('MAIL_MAILER', 'smtp'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Mailer Configurations
+ |--------------------------------------------------------------------------
+ |
+ | Here you may configure all of the mailers used by your application plus
+ | their respective settings. Several examples have been configured for
+ | you and you are free to add your own as your application requires.
+ |
+ | Laravel supports a variety of mail "transport" drivers to be used while
+ | sending an e-mail. You will specify which one you are using for your
+ | mailers below. You are free to add additional mailers as required.
+ |
+ | Supported: "smtp", "sendmail", "mailgun", "ses",
+ | "postmark", "log", "array", "failover"
+ |
+ */
+
+ 'mailers' => [
+ 'smtp' => [
+ 'transport' => 'smtp',
+ 'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
+ 'port' => env('MAIL_PORT', 587),
+ 'encryption' => env('MAIL_ENCRYPTION', 'tls'),
+ 'username' => env('MAIL_USERNAME'),
+ 'password' => env('MAIL_PASSWORD'),
+ 'timeout' => null,
+ ],
+
+ 'ses' => [
+ 'transport' => 'ses',
+ ],
+
+ 'mailgun' => [
+ 'transport' => 'mailgun',
+ ],
+
+ 'postmark' => [
+ 'transport' => 'postmark',
+ ],
+
+ 'sendmail' => [
+ 'transport' => 'sendmail',
+ 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -t -i'),
+ ],
+
+ 'log' => [
+ 'transport' => 'log',
+ 'channel' => env('MAIL_LOG_CHANNEL'),
+ ],
+
+ 'array' => [
+ 'transport' => 'array',
+ ],
+
+ 'failover' => [
+ 'transport' => 'failover',
+ 'mailers' => [
+ 'smtp',
+ 'log',
+ ],
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | 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'),
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | 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'),
+ ],
+ ],
+
+];
diff --git a/config/queue.php b/config/queue.php
new file mode 100644
index 0000000..25ea5a8
--- /dev/null
+++ b/config/queue.php
@@ -0,0 +1,93 @@
+ 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,
+ 'after_commit' => false,
+ ],
+
+ 'beanstalkd' => [
+ 'driver' => 'beanstalkd',
+ 'host' => 'localhost',
+ 'queue' => 'default',
+ 'retry_after' => 90,
+ 'block_for' => 0,
+ 'after_commit' => false,
+ ],
+
+ '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', 'default'),
+ 'suffix' => env('SQS_SUFFIX'),
+ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
+ 'after_commit' => false,
+ ],
+
+ 'redis' => [
+ 'driver' => 'redis',
+ 'connection' => 'default',
+ 'queue' => env('REDIS_QUEUE', 'default'),
+ 'retry_after' => 90,
+ 'block_for' => null,
+ 'after_commit' => false,
+ ],
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | 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-uuids'),
+ 'database' => env('DB_CONNECTION', 'mysql'),
+ 'table' => 'failed_jobs',
+ ],
+
+];
diff --git a/config/sanctum.php b/config/sanctum.php
new file mode 100644
index 0000000..9281c92
--- /dev/null
+++ b/config/sanctum.php
@@ -0,0 +1,65 @@
+ explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf(
+ '%s%s',
+ 'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1',
+ env('APP_URL') ? ','.parse_url(env('APP_URL'), PHP_URL_HOST) : ''
+ ))),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Sanctum Guards
+ |--------------------------------------------------------------------------
+ |
+ | This array contains the authentication guards that will be checked when
+ | Sanctum is trying to authenticate a request. If none of these guards
+ | are able to authenticate the request, Sanctum will use the bearer
+ | token that's present on an incoming request for authentication.
+ |
+ */
+
+ 'guard' => ['web'],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Expiration Minutes
+ |--------------------------------------------------------------------------
+ |
+ | This value controls the number of minutes until an issued token will be
+ | considered expired. If this value is null, personal access tokens do
+ | not expire. This won't tweak the lifetime of first-party sessions.
+ |
+ */
+
+ 'expiration' => null,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Sanctum Middleware
+ |--------------------------------------------------------------------------
+ |
+ | When authenticating your first-party SPA with Sanctum you may need to
+ | customize some of the middleware Sanctum uses while processing the
+ | request. You may change the middleware listed below as required.
+ |
+ */
+
+ 'middleware' => [
+ 'verify_csrf_token' => App\Http\Middleware\VerifyCsrfToken::class,
+ 'encrypt_cookies' => App\Http\Middleware\EncryptCookies::class,
+ ],
+
+];
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..8fed97c
--- /dev/null
+++ b/config/session.php
@@ -0,0 +1,201 @@
+ 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'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | 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
+ |--------------------------------------------------------------------------
+ |
+ | While using one of the framework's cache driven session backends 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".
+ |
+ | Affects: "apc", "dynamodb", "memcached", "redis"
+ |
+ */
+
+ 'store' => env('SESSION_STORE'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | 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'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | 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 when it can't be done securely.
+ |
+ */
+
+ 'secure' => env('SESSION_SECURE_COOKIE'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | 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
+ | will set this value to "lax" since this is a secure default value.
+ |
+ | Supported: "lax", "strict", "none", null
+ |
+ */
+
+ 'same_site' => 'lax',
+
+];
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/config/websockets.php b/config/websockets.php
new file mode 100644
index 0000000..ec1eb9c
--- /dev/null
+++ b/config/websockets.php
@@ -0,0 +1,309 @@
+ [
+
+ 'port' => env('LARAVEL_WEBSOCKETS_PORT', 6001),
+
+ 'domain' => env('LARAVEL_WEBSOCKETS_DOMAIN'),
+
+ 'path' => env('LARAVEL_WEBSOCKETS_PATH', 'laravel-websockets'),
+
+ 'middleware' => [
+ 'web',
+ \BeyondCode\LaravelWebSockets\Dashboard\Http\Middleware\Authorize::class,
+ ],
+
+ ],
+
+ 'managers' => [
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Manager
+ |--------------------------------------------------------------------------
+ |
+ | An Application manager determines how your websocket server allows
+ | the use of the TCP protocol based on, for example, a list of allowed
+ | applications.
+ | By default, it uses the defined array in the config file, but you can
+ | anytime implement the same interface as the class and add your own
+ | custom method to retrieve the apps.
+ |
+ */
+
+ 'app' => \BeyondCode\LaravelWebSockets\Apps\ConfigAppManager::class,
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Applications Repository
+ |--------------------------------------------------------------------------
+ |
+ | By default, the only allowed app is the one you define with
+ | your PUSHER_* variables from .env.
+ | You can configure to use multiple apps if you need to, or use
+ | a custom App Manager that will handle the apps from a database, per se.
+ |
+ | You can apply multiple settings, like the maximum capacity, enable
+ | client-to-client messages or statistics.
+ |
+ */
+
+ 'apps' => [
+ [
+ 'id' => env('PUSHER_APP_ID'),
+ 'name' => env('APP_NAME'),
+ 'host' => env('PUSHER_APP_HOST'),
+ 'key' => env('PUSHER_APP_KEY'),
+ 'secret' => env('PUSHER_APP_SECRET'),
+ 'path' => env('PUSHER_APP_PATH'),
+ 'capacity' => null,
+ 'enable_client_messages' => false,
+ 'enable_statistics' => true,
+ 'allowed_origins' => [
+ // env('LARAVEL_WEBSOCKETS_DOMAIN'),
+ ],
+ ],
+ ],
+
+ // 'apps' => [
+ // [
+ // 'id' => env('PUSHER_APP_ID'),
+ // 'name' => env('APP_NAME'),
+ // 'key' => env('PUSHER_APP_KEY'),
+ // 'secret' => env('PUSHER_APP_SECRET'),
+ // 'enable_client_messages' => false,
+ // 'enable_statistics' => true,
+ // ],
+ // ],
+ /*
+ |--------------------------------------------------------------------------
+ | Broadcasting Replication PubSub
+ |--------------------------------------------------------------------------
+ |
+ | You can enable replication to publish and subscribe to
+ | messages across the driver.
+ |
+ | By default, it is set to 'local', but you can configure it to use drivers
+ | like Redis to ensure connection between multiple instances of
+ | WebSocket servers. Just set the driver to 'redis' to enable the PubSub using Redis.
+ |
+ */
+
+ 'replication' => [
+
+ 'mode' => env('WEBSOCKETS_REPLICATION_MODE', 'local'),
+
+ 'modes' => [
+
+ /*
+ |--------------------------------------------------------------------------
+ | Local Replication
+ |--------------------------------------------------------------------------
+ |
+ | Local replication is actually a null replicator, meaning that it
+ | is the default behaviour of storing the connections into an array.
+ |
+ */
+
+ 'local' => [
+
+ /*
+ |--------------------------------------------------------------------------
+ | Channel Manager
+ |--------------------------------------------------------------------------
+ |
+ | The channel manager is responsible for storing, tracking and retrieving
+ | the channels as long as their members and connections.
+ |
+ */
+
+ 'channel_manager' => \BeyondCode\LaravelWebSockets\ChannelManagers\LocalChannelManager::class,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Statistics Collector
+ |--------------------------------------------------------------------------
+ |
+ | The Statistics Collector will, by default, handle the incoming statistics,
+ | storing them until they will become dumped into another database, usually
+ | a MySQL database or a time-series database.
+ |
+ */
+
+ 'collector' => \BeyondCode\LaravelWebSockets\Statistics\Collectors\MemoryCollector::class,
+
+ ],
+
+ 'redis' => [
+
+ 'connection' => env('WEBSOCKETS_REDIS_REPLICATION_CONNECTION', 'default'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Channel Manager
+ |--------------------------------------------------------------------------
+ |
+ | The channel manager is responsible for storing, tracking and retrieving
+ | the channels as long as their members and connections.
+ |
+ */
+
+ 'channel_manager' => \BeyondCode\LaravelWebSockets\ChannelManagers\RedisChannelManager::class,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Statistics Collector
+ |--------------------------------------------------------------------------
+ |
+ | The Statistics Collector will, by default, handle the incoming statistics,
+ | storing them until they will become dumped into another database, usually
+ | a MySQL database or a time-series database.
+ |
+ */
+
+ 'collector' => \BeyondCode\LaravelWebSockets\Statistics\Collectors\RedisCollector::class,
+
+ ],
+
+ ],
+
+ ],
+
+ 'statistics' => [
+
+ /*
+ |--------------------------------------------------------------------------
+ | Statistics Store
+ |--------------------------------------------------------------------------
+ |
+ | The Statistics Store is the place where all the temporary stats will
+ | be dumped. This is a much reliable store and will be used to display
+ | graphs or handle it later on your app.
+ |
+ */
+
+ 'store' => \BeyondCode\LaravelWebSockets\Statistics\Stores\DatabaseStore::class,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Statistics Interval Period
+ |--------------------------------------------------------------------------
+ |
+ | Here you can specify the interval in seconds at which
+ | statistics should be logged.
+ |
+ */
+
+ 'interval_in_seconds' => 60,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Statistics Deletion Period
+ |--------------------------------------------------------------------------
+ |
+ | When the clean-command is executed, all recorded statistics older than
+ | the number of days specified here will be deleted.
+ |
+ */
+
+ 'delete_statistics_older_than_days' => 60,
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Maximum Request Size
+ |--------------------------------------------------------------------------
+ |
+ | The maximum request size in kilobytes that is allowed for
+ | an incoming WebSocket request.
+ |
+ */
+
+ 'max_request_size_in_kb' => 250,
+
+ /*
+ |--------------------------------------------------------------------------
+ | SSL Configuration
+ |--------------------------------------------------------------------------
+ |
+ | By default, the configuration allows only on HTTP. For SSL, you need
+ | to set up the the certificate, the key, and optionally, the passphrase
+ | for the private key.
+ | You will need to restart the server for the settings to take place.
+ |
+ */
+
+ 'ssl' => [
+
+ 'local_cert' => env('LARAVEL_WEBSOCKETS_SSL_LOCAL_CERT', null),
+
+ 'capath' => env('LARAVEL_WEBSOCKETS_SSL_CA', null),
+
+ 'local_pk' => env('LARAVEL_WEBSOCKETS_SSL_LOCAL_PK', null),
+
+ 'passphrase' => env('LARAVEL_WEBSOCKETS_SSL_PASSPHRASE', null),
+
+ 'verify_peer' => env('APP_ENV') === 'production',
+
+ 'allow_self_signed' => env('APP_ENV') !== 'production',
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Route Handlers
+ |--------------------------------------------------------------------------
+ |
+ | Here you can specify the route handlers that will take over
+ | the incoming/outgoing websocket connections. You can extend the
+ | original class and implement your own logic, alongside
+ | with the existing logic.
+ |
+ */
+
+ 'handlers' => [
+
+ 'websocket' => \BeyondCode\LaravelWebSockets\Server\WebSocketHandler::class,
+
+ 'health' => \BeyondCode\LaravelWebSockets\Server\HealthHandler::class,
+
+ 'trigger_event' => \BeyondCode\LaravelWebSockets\API\TriggerEvent::class,
+
+ 'fetch_channels' => \BeyondCode\LaravelWebSockets\API\FetchChannels::class,
+
+ 'fetch_channel' => \BeyondCode\LaravelWebSockets\API\FetchChannel::class,
+
+ 'fetch_users' => \BeyondCode\LaravelWebSockets\API\FetchUsers::class,
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Promise Resolver
+ |--------------------------------------------------------------------------
+ |
+ | The promise resolver is a class that takes a input value and is
+ | able to make sure the PHP code runs async by using ->then(). You can
+ | use your own Promise Resolver. This is usually changed when you want to
+ | intercept values by the promises throughout the app, like in testing
+ | to switch from async to sync.
+ |
+ */
+
+ 'promise_resolver' => \React\Promise\FulfilledPromise::class,
+
+];
diff --git a/database/.gitignore b/database/.gitignore
new file mode 100644
index 0000000..9b19b93
--- /dev/null
+++ b/database/.gitignore
@@ -0,0 +1 @@
+*.sqlite*
diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php
new file mode 100644
index 0000000..23b61d2
--- /dev/null
+++ b/database/factories/UserFactory.php
@@ -0,0 +1,42 @@
+
+ */
+class UserFactory extends Factory
+{
+ /**
+ * Define the model's default state.
+ *
+ * @return array
+ */
+ public function definition()
+ {
+ return [
+ 'name' => $this->faker->name(),
+ 'email' => $this->faker->unique()->safeEmail(),
+ 'email_verified_at' => now(),
+ 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
+ 'remember_token' => Str::random(10),
+ ];
+ }
+
+ /**
+ * Indicate that the model's email address should be unverified.
+ *
+ * @return static
+ */
+ public function unverified()
+ {
+ return $this->state(function (array $attributes) {
+ return [
+ 'email_verified_at' => null,
+ ];
+ });
+ }
+}
diff --git a/database/migrations/0000_00_00_000000_create_websockets_statistics_entries_table.php b/database/migrations/0000_00_00_000000_create_websockets_statistics_entries_table.php
new file mode 100644
index 0000000..1b89b4a
--- /dev/null
+++ b/database/migrations/0000_00_00_000000_create_websockets_statistics_entries_table.php
@@ -0,0 +1,35 @@
+increments('id');
+ $table->string('app_id');
+ $table->integer('peak_connection_count');
+ $table->integer('websocket_message_count');
+ $table->integer('api_message_count');
+ $table->nullableTimestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('websockets_statistics_entries');
+ }
+}
diff --git a/database/migrations/0000_00_00_000000_rename_statistics_counters.php b/database/migrations/0000_00_00_000000_rename_statistics_counters.php
new file mode 100644
index 0000000..df5eeb8
--- /dev/null
+++ b/database/migrations/0000_00_00_000000_rename_statistics_counters.php
@@ -0,0 +1,36 @@
+bigIncrements('id_kelas');
+ $table->string('nama_kelas', 25)->nullable(false);
+ $table->timestamps();
+
+
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('kelas');
+ }
+};
diff --git a/database/migrations/2024_03_11_000002_admin.php b/database/migrations/2024_03_11_000002_admin.php
new file mode 100644
index 0000000..f650ed5
--- /dev/null
+++ b/database/migrations/2024_03_11_000002_admin.php
@@ -0,0 +1,26 @@
+string('username', 100)->primary();
+ $table->string('password', 100)->nullable(false);
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('admin');
+ }
+};
diff --git a/database/migrations/2024_03_11_000005_guru.php b/database/migrations/2024_03_11_000005_guru.php
new file mode 100644
index 0000000..2b25350
--- /dev/null
+++ b/database/migrations/2024_03_11_000005_guru.php
@@ -0,0 +1,30 @@
+bigIncrements('nip');
+ $table->string('nama_guru', 100)->nullable(false);
+ $table->string('nomor_hp', 13)->nullable(false);
+ $table->string('password', 8)->nullable(false);
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('guru');
+ }
+};
diff --git a/database/migrations/2024_03_11_000007_mata_pelajaran.php b/database/migrations/2024_03_11_000007_mata_pelajaran.php
new file mode 100644
index 0000000..22a72f7
--- /dev/null
+++ b/database/migrations/2024_03_11_000007_mata_pelajaran.php
@@ -0,0 +1,32 @@
+bigIncrements('id_mapel');
+ $table->string('nama_mapel', 100)->nullable(false);
+ // $table->unsignedBigInteger('id_kelas');
+ $table->timestamps();
+
+ // $table->foreign('id_kelas')->references('id_kelas')->on('kelas')->onDelete('cascade');
+
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('mata_pelajaran');
+ }
+};
diff --git a/database/migrations/2024_03_11_000008_siswa.php b/database/migrations/2024_03_11_000008_siswa.php
new file mode 100644
index 0000000..c8bc16d
--- /dev/null
+++ b/database/migrations/2024_03_11_000008_siswa.php
@@ -0,0 +1,37 @@
+bigIncrements('nisn');
+ $table->string('password', 8)->nullable(false);
+ $table->string('nama_siswa', 100)->nullable(false);
+ $table->string('tempat_lahir', 100)->nullable(false);
+ $table->timestamp('tanggal_lahir')->nullable(false);
+ $table->string('nomor_hp', 13)->nullable(false);
+ $table->text('alamat')->nullable(false);
+ $table->unsignedBigInteger('id_kelas');
+
+
+ $table->foreign('id_kelas')->references('id_kelas')->on('kelas')->onDelete('cascade');
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('siswa');
+ }
+};
diff --git a/database/migrations/2024_03_11_000009_mengajar.php b/database/migrations/2024_03_11_000009_mengajar.php
new file mode 100644
index 0000000..7e9d22b
--- /dev/null
+++ b/database/migrations/2024_03_11_000009_mengajar.php
@@ -0,0 +1,35 @@
+bigIncrements('id_mengajar');
+
+ $table->unsignedBigInteger('id_kelas');
+ $table->unsignedBigInteger('id_guru');
+ $table->unsignedBigInteger('id_mapel');
+
+ $table->foreign('id_guru')->references('nip')->on('guru')->onDelete('cascade');
+ $table->foreign('id_kelas')->references('id_kelas')->on('kelas')->onDelete('cascade');
+ $table->foreign('id_mapel')->references('id_mapel')->on('mata_pelajaran')->onDelete('cascade');
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('mengajar');
+ }
+};
diff --git a/database/migrations/2024_03_12_0000012_materi.php b/database/migrations/2024_03_12_0000012_materi.php
new file mode 100644
index 0000000..d7f3724
--- /dev/null
+++ b/database/migrations/2024_03_12_0000012_materi.php
@@ -0,0 +1,35 @@
+bigIncrements('id_materi');
+ $table->string('judul_materi', 100)->nullable(false);
+ $table->string('lampiran_materi', 100)->nullable();
+ $table->text('keterangan')->nullable();
+ $table->unsignedBigInteger('id_mapel');
+ $table->timestamps();
+
+ $table->foreign('id_mapel')->references('id_mapel')->on('mata_pelajaran')->onDelete('cascade');
+
+
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('materi');
+ }
+};
diff --git a/database/migrations/2024_03_12_0000015_tugas.php b/database/migrations/2024_03_12_0000015_tugas.php
new file mode 100644
index 0000000..d7f3282
--- /dev/null
+++ b/database/migrations/2024_03_12_0000015_tugas.php
@@ -0,0 +1,34 @@
+bigIncrements('id_tugas');
+ $table->date('tenggat_waktu')->nullable();
+ $table->text('keterangan')->nullable();
+ $table->unsignedBigInteger('id_materi');
+ $table->timestamps();
+
+ $table->foreign('id_materi')->references('id_materi')->on('materi')->onDelete('cascade');
+
+
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('tugas');
+ }
+};
diff --git a/database/migrations/2024_03_12_0000018_pengumpulan_tugas.php b/database/migrations/2024_03_12_0000018_pengumpulan_tugas.php
new file mode 100644
index 0000000..c656815
--- /dev/null
+++ b/database/migrations/2024_03_12_0000018_pengumpulan_tugas.php
@@ -0,0 +1,36 @@
+bigIncrements('id_pengumpulan');
+ $table->text('lampiran_tugas')->nullable();
+ $table->unsignedBigInteger('id_tugas');
+ $table->unsignedBigInteger('id_siswa');
+ $table->integer('nilai')->nullable();
+ $table->timestamps();
+
+ $table->foreign('id_tugas')->references('id_tugas')->on('tugas')->onDelete('cascade');
+ $table->foreign('id_siswa')->references('nisn')->on('siswa')->onDelete('cascade');
+
+
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('tugas');
+ }
+};
diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php
new file mode 100644
index 0000000..71f673f
--- /dev/null
+++ b/database/seeders/DatabaseSeeder.php
@@ -0,0 +1,19 @@
+create();
+ }
+}
diff --git a/img/logosmk.png b/img/logosmk.png
new file mode 100644
index 0000000000000000000000000000000000000000..27162386ce71ce6e214d350fed3738c612c00b46
GIT binary patch
literal 276270
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