diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..8f0de65 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,18 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +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..478972c --- /dev/null +++ b/.env.example @@ -0,0 +1,58 @@ +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=mailpit +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_HOST= +PUSHER_PORT=443 +PUSHER_SCHEME=https +PUSHER_APP_CLUSTER=mt1 + +VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}" +VITE_PUSHER_HOST="${PUSHER_HOST}" +VITE_PUSHER_PORT="${PUSHER_PORT}" +VITE_PUSHER_SCHEME="${PUSHER_SCHEME}" +VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..7dbbf41 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,11 @@ +* 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 +.styleci.yml export-ignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f0d10af --- /dev/null +++ b/.gitignore @@ -0,0 +1,18 @@ +/node_modules +/public/build +/public/hot +/public/storage +/storage/*.key +/vendor +.env +.env.backup +.env.production +.phpunit.result.cache +Homestead.json +Homestead.yaml +auth.json +npm-debug.log +yarn-error.log +/.fleet +/.idea +/.vscode diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..430f730 --- /dev/null +++ b/.htaccess @@ -0,0 +1,7 @@ + + RewriteEngine on + RewriteRule ^(.*)$ public/$1 [L] + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule ^ index.php [L] + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..3ed385a --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +

Laravel Logo

+ +

+Build Status +Total Downloads +Latest Stable Version +License +

+ +## 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. + +You may also try the [Laravel Bootcamp](https://bootcamp.laravel.com), where you will be guided through building a modern Laravel application from scratch. + +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/Exceptions/Handler.php b/app/Exceptions/Handler.php new file mode 100644 index 0000000..82a37e4 --- /dev/null +++ b/app/Exceptions/Handler.php @@ -0,0 +1,50 @@ +, \Psr\Log\LogLevel::*> + */ + protected $levels = [ + // + ]; + + /** + * A list of the exception types that are not reported. + * + * @var array> + */ + protected $dontReport = [ + // + ]; + + /** + * A list of the inputs that are never flashed to the session on 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/Admin/AdminController.php b/app/Http/Controllers/Admin/AdminController.php new file mode 100644 index 0000000..e184976 --- /dev/null +++ b/app/Http/Controllers/Admin/AdminController.php @@ -0,0 +1,327 @@ + 'required|string|max:255', + 'email' => 'required|string|email|max:255|unique:users', + 'password' => 'required|string|min:8|confirmed', + ]; + + $messages = [ + 'required' => 'Укажите обязательное поле «:attribute»', + 'confirmed' => 'Пароли не совпадают', + 'email' => 'Введите корректный email', + 'min' => [ + 'string' => 'Поле «:attribute» должно быть не меньше :min символов', + 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' + ], + 'max' => [ + 'string' => 'Поле «:attribute» должно быть не больше :max символов', + 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' + ], + ]; + + $validator = Validator::make($request->all(), $rules, $messages); + + if ($validator->fails()) { + return back()->withErrors($validator)->withInput(); //->route('admin.register') + + } else { + $params = $request->all(); + + User::create([ + 'name' => $request->name, + 'email' => $request->email, + 'password' => Hash::make($request->password), + ]); + return redirect() + ->route('admin.login') + ->with('success', 'Вы успешно зарегистрировались'); + } + } + + public function login() { + return view('admin.login'); + } + + // Аутентификация + public function autenticate(Request $request) { + //$request->validate( + $rules = [ + 'email' => 'required|string|email', + 'password' => 'required|string', + ]; + + $messages = [ + 'required' => 'Укажите обязательное поле «:attribute»', + 'email' => 'Введите корректный email', + 'min' => [ + 'string' => 'Поле «:attribute» должно быть не меньше :min символов', + 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' + ], + 'max' => [ + 'string' => 'Поле «:attribute» должно быть не больше :max символов', + 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' + ], + ]; + + + $validator = Validator::make($request->all(), $rules, $messages); + + if ($validator->fails()) { + return back()->withErrors($validator)->withInput(); + + } else { + + $credentials = $request->only('email', 'password'); + + if (Auth::attempt($credentials, $request->has('remember'))) { + + if (is_null(Auth::user()->email_verified_at)) { + Auth::logout(); + return back()->withErrors('Адрес почты не подтвержден')->withInput(); + } + + if (!Auth::user()->admin) { + Auth::logout(); + return //redirect()->route('admin.login') + back()->withErrors('Вы не являетесь админом!')->withInput();; + + } + + return redirect() + ->route('admin.index') + ->with('success', 'Вы вошли в личный кабинет.'); + } + } + + return redirect() + ->route('admin.login') + ->withErrors('Неверный логин или пароль!')->withInput(); + + } + + public function logout() { + Auth::logout(); + return redirect()->route('index') + ->with('success', 'Вы вышли из личного кабинета'); + } + + public function index() { + $all_user = User::query()->count(); + $all_employer = User::where('is_worker', '0')->count(); + $all_worker = User::where('is_worker', '1')->count(); + $all_admin = User::where('admin', '1')->count(); + return view('admin.index', compact('all_employer', 'all_user', 'all_worker', 'all_admin')); + } + + public function index_admin(Request $request) { + $title = 'Админка - Администраторы системы'; + $id_admin = Auth::user()->id; + + if ($request->ajax()) { + $user = User::find($request->id); + $request->offsetUnset('id'); + $user->update($request->all()); + } + + $users = User::where('admin', '1')->paginate(15); + + if ($request->ajax()) { + return view('admin.users.index_ajax', compact('users', 'id_admin')); + } else { + return view('admin.users.index', compact('users', 'title', 'id_admin')); + } + } + + //Страница профиль пользователя - форма + public function profile_user(User $user) { + $visible = false; + if($user->is_worker) { + $caption = "Карточка работника"; + if (isset($user->workers[0]->id)) { + $link = route('admin.worker-profile', ['worker' => $user->workers[0]->id]); + //$visible = true; + } else { + $link = ""; + } + + } else { + $caption = "Карточка работодателя"; + if (isset($user->employers[0]->id)) { + + $link = route('admin.employer-profile', ['employer' => $user->employers[0]->id]); + //$visible = true; + } else { + $link = ""; + } + } + + return view('admin.users.profile', compact('user', 'visible', 'link', 'caption')); + } + + //Страница профиль пользователя - сохранение формы + public function store_profile_user(User $user, Request $request) { + $rules = [ + 'name' => 'required|min:3', + ]; + $messages = [ + 'required' => 'Укажите обязательное поле', + 'email' => 'Это поле должно быть определено, как Email' + ]; + $validator = Validator::make($request->all(), $rules, $messages); + + if ($validator->fails()) { + return redirect()->route('admin.user-profile', ['user' => $user->id]) + ->withErrors($validator); + } else { + $user->update($request->all()); + return redirect()->route('admin.user-profile', ['user' => $user->id]) + ->with('success', 'Данные были успешно сохранены'); + } + return redirect()->route('admin.user-profile', ['user' => $user->id]); + } + + // Страница профиль админа - форма + public function profile() { + $id = Auth::user()->id; + $user = User::find($id); + + return view('admin.profile', compact('user')); + } + + // Страница профиль админа - сохранение формы + public function store_profile(Request $request) { + $id = Auth::user()->id; + $user = User::find($id); + + $rules = [ + 'name' => 'required|min:3', + 'email' => 'required|email|min:3', + ]; + $messages = [ + 'required' => 'Укажите обязательное поле', + 'email' => 'Это поле должно быть определено, как Email' + ]; + $validator = Validator::make($request->all(), $rules, $messages); + + if ($validator->fails()) { + return redirect()->route('admin.profile') + ->withErrors($validator); + } else { + $user->update($request->all()); + return redirect()->route('admin.profile') + ->with('success', 'Данные были успешно сохранены'); + } + return redirect()->route('admin.profile'); + } + + // Форма смены пароля администоратора + public function profile_password() { + $id = Auth::user()->id; + $user = User::find($id); + $username = $user->name; + + return view('admin.password', compact('username')); + } + + // Сохранение формы смены пароля администоратора + public function profile_password_new(Request $request) { + + $rules = [ + 'old_password' => 'required|min:6', //|current_password:api', + 'password' => 'required|min:6|confirmed', + ]; + $messages = [ + 'required' => 'Укажите обязательное поле', + 'confirmed' => 'Пароли не совпадают' + ]; + + $validator = Validator::make($request->all(), $rules, $messages); + + if (! Hash::check($request->old_password, $request->user()->password)) { + return back()->withErrors([ + 'old_password' => ['Неверный предыдущий пароль'] + ]); + } + + if ($validator->fails()) { + return redirect()->route('admin.password') + ->withErrors($validator); + } else { + $params = $request->all(); + // устанавливаем новый пароль для пользователя + User::where('id', Auth::id()) + ->update(['password' => Hash::make($request->password)]); + session()->flash('success', 'Успешно изменен пароль!'); + + return redirect()->route('admin.password'); + } + } + + // Страница конфигурация сайта - форма + public function config_form() { + $config = Company::find(1); + return view('admin.config', compact('config')); + } + + // Страница конфигурация сайта - сохранение формы + public function store_config(CompanyRequest $request) { + $config = Company::find(1); + + $params = $request->all(); + unset($params['logo']); + unset($params['image']); + + if ($request->has('logo')) { + Storage::delete($config->logo); + $params['logo'] = $request->file('logo')->store('config', 'public'); + } + + if ($request->has('image')) { + Storage::delete($config->image); + $params['image'] = $request->file('image')->store('config', 'public'); + } + + if (is_null($config)) { + Company::create($params); + } else { + $config->update($params); + } + + return redirect()->route('admin.config'); + } + + +} diff --git a/app/Http/Controllers/Admin/EmployersController.php b/app/Http/Controllers/Admin/EmployersController.php new file mode 100644 index 0000000..8305025 --- /dev/null +++ b/app/Http/Controllers/Admin/EmployersController.php @@ -0,0 +1,25 @@ +ajax()) { + $user = User::find($request->id); + $request->offsetUnset('id'); + $user->update($request->all()); + } + + $users = User::where('is_worker', '0')->paginate(15); + if ($request->ajax()) { + return view('admin.employer.index_ajax', compact('users')); + } else { + return view('admin.employer.index', compact('users')); + } + } +} diff --git a/app/Http/Controllers/Admin/UsersController.php b/app/Http/Controllers/Admin/UsersController.php new file mode 100644 index 0000000..6d02900 --- /dev/null +++ b/app/Http/Controllers/Admin/UsersController.php @@ -0,0 +1,27 @@ +ajax()) { + $user = User::find($request->id); + $request->offsetUnset('id'); + $user->update($request->all()); + } + + $users = User::query()->paginate(15); + + if ($request->ajax()) { + return view('admin.users.index_ajax', compact('users')); + } else { + return view('admin.users.index', compact('users')); + } + } + +} diff --git a/app/Http/Controllers/Admin/WorkersController.php b/app/Http/Controllers/Admin/WorkersController.php new file mode 100644 index 0000000..afa5294 --- /dev/null +++ b/app/Http/Controllers/Admin/WorkersController.php @@ -0,0 +1,26 @@ +ajax()) { + $user = User::find($request->id); + $request->offsetUnset('id'); + $user->update($request->all()); + } + + $users = User::where('is_worker', '1')->paginate(15); + + if ($request->ajax()) { + return view('admin.worker.index_ajax', compact('users')); + } else { + return view('admin.worker.index', compact('users')); + } + } +} diff --git a/app/Http/Controllers/Auth/ConfirmPasswordController.php b/app/Http/Controllers/Auth/ConfirmPasswordController.php new file mode 100644 index 0000000..138c1f0 --- /dev/null +++ b/app/Http/Controllers/Auth/ConfirmPasswordController.php @@ -0,0 +1,40 @@ +middleware('auth'); + } +} diff --git a/app/Http/Controllers/Auth/ForgotPasswordController.php b/app/Http/Controllers/Auth/ForgotPasswordController.php new file mode 100644 index 0000000..465c39c --- /dev/null +++ b/app/Http/Controllers/Auth/ForgotPasswordController.php @@ -0,0 +1,22 @@ +middleware('guest')->except('logout'); + } + + public function showLoginForm() + { + return view('auth.login'); + } + + public function login(Request $request) { + $request->validate([ + 'email' => 'required|string|email', + 'password' => 'required|string', + ]); + + $credentials = $request->only('email', 'password'); + + if (Auth::attempt($credentials, $request->has('remember'))) { + if (is_null(Auth::user()->email_verified_at)){ + Auth::logout(); + return redirect() + ->route('auth.vefiry') + ->withErrors('Адрес почты не подтвержден'); + } + + return redirect() + ->route('home') + ->with('success', 'Вы вошли в личный кабинет.'); + } + + return redirect() + ->route('login') + ->withErrors('Неверный логин или пароль!'); + } + + protected function authenticated(Request $request, $user) { + return redirect()->route('home') + ->with('success', 'Вы успешно вошли в кабинет'); + } + + protected function loggedOut(Request $request) { + return redirect()->route('login') + ->with('success', 'Вы успешно вышли из кабинета'); + } + + +} diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php new file mode 100644 index 0000000..b303d75 --- /dev/null +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -0,0 +1,79 @@ +middleware('guest'); + } + + /** + * Get a validator for an incoming registration request. + * + * @param array $data + * @return \Illuminate\Contracts\Validation\Validator + */ + protected function validator(array $data) + { + return Validator::make($data, [ + 'name' => ['required', 'string', 'max:255'], + 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], + 'password' => ['required', 'string', 'min:8', 'confirmed'], + ]); + } + + /** + * Create a new user instance after a valid registration. + * + * @param array $data + * @return \App\Models\User + */ + protected function create(array $data) + { + return User::create([ + 'name' => $data['name'], + 'email' => $data['email'], + 'password' => Hash::make($data['password']), + ]); + } + + protected function registered(Request $request, $user) { + return redirect()->route('home') + ->with('success', 'Регистрация прошла успешно'); + } +} diff --git a/app/Http/Controllers/Auth/ResetPasswordController.php b/app/Http/Controllers/Auth/ResetPasswordController.php new file mode 100644 index 0000000..b1726a3 --- /dev/null +++ b/app/Http/Controllers/Auth/ResetPasswordController.php @@ -0,0 +1,30 @@ +middleware('auth'); + $this->middleware('signed')->only('verify'); + $this->middleware('throttle:6,1')->only('verify', 'resend'); + } +} diff --git a/app/Http/Controllers/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 @@ +middleware('auth'); + } + + /** + * Show the application dashboard. + * + * @return \Illuminate\Contracts\Support\Renderable + */ + public function index() + { + return view('home'); + } +} diff --git a/app/Http/Controllers/MainController.php b/app/Http/Controllers/MainController.php new file mode 100644 index 0000000..c33d695 --- /dev/null +++ b/app/Http/Controllers/MainController.php @@ -0,0 +1,12 @@ + + */ + protected $middleware = [ + // \App\Http\Middleware\TrustHosts::class, + \App\Http\Middleware\TrustProxies::class, + \Illuminate\Http\Middleware\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\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, + 'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::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' => \App\Http\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/ValidateSignature.php b/app/Http/Middleware/ValidateSignature.php new file mode 100644 index 0000000..093bf64 --- /dev/null +++ b/app/Http/Middleware/ValidateSignature.php @@ -0,0 +1,22 @@ + + */ + protected $except = [ + // 'fbclid', + // 'utm_campaign', + // 'utm_content', + // 'utm_medium', + // 'utm_source', + // 'utm_term', + ]; +} 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/Ad_employer.php b/app/Models/Ad_employer.php new file mode 100644 index 0000000..3441aee --- /dev/null +++ b/app/Models/Ad_employer.php @@ -0,0 +1,11 @@ +belongsTo(User::class, 'user_id'); + } + +} diff --git a/app/Models/Group_user.php b/app/Models/Group_user.php new file mode 100644 index 0000000..46f384b --- /dev/null +++ b/app/Models/Group_user.php @@ -0,0 +1,11 @@ + + */ + protected $fillable = [ + 'name', + 'email', + 'password', + 'admin', + 'telephone', + 'surname', + 'name_man', + 'surname2', + 'is_worker', + 'is_lookin', + 'is_message', + 'is_public', + 'is_remove', + 'is_ban', + 'is_new', + ]; + + /** + * 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', + ]; + + /* + * Связь Пользователей системы с работодателями + * users - employers + */ + public function employers() { + return $this->hasMany(Employer::class); + } + + /* + * Связь Пользователей системы с работниками + * users - workers + */ + public function workers() { + return $this->hasMany(Worker::class); + } + + /* + * Связь Пользователей системы с группами юзеров + * users - group_users + */ + public function groups() { + return $this->hasMany(Group_user::class); + } + + /* + * Связь Пользователей системы с ссобщениями + * users - messages + */ + public function messages() { + return $this->hasMany(Message::class); + } + + /* + * Связь Пользователей системы с статистика + * users - static_workers + */ + public function static_user() { + return $this->hasMany(Static_worker::class); + } + + +} diff --git a/app/Models/Worker.php b/app/Models/Worker.php new file mode 100644 index 0000000..564e122 --- /dev/null +++ b/app/Models/Worker.php @@ -0,0 +1,50 @@ +belongsTo(User::class, 'user_id'); + } +} 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..ea87f2e --- /dev/null +++ b/app/Providers/RouteServiceProvider.php @@ -0,0 +1,52 @@ +configureRateLimiting(); + + $this->routes(function () { + Route::middleware('api') + ->prefix('api') + ->group(base_path('routes/api.php')); + + Route::middleware('web') + ->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..fbf6301 --- /dev/null +++ b/composer.json @@ -0,0 +1,70 @@ +{ + "name": "laravel/laravel", + "type": "project", + "description": "The Laravel Framework.", + "keywords": ["framework", "laravel"], + "license": "MIT", + "require": { + "php": "^8.0.2", + "filament/forms": "^2.17", + "filament/notifications": "^2.17", + "filament/tables": "^2.17", + "guzzlehttp/guzzle": "^7.2", + "laravel-lang/lang": "^12.17", + "laravel/framework": "^9.19", + "laravel/sanctum": "^3.0", + "laravel/tinker": "^2.7", + "laravel/ui": "^4.2" + }, + "require-dev": { + "fakerphp/faker": "^1.9.1", + "laravel/pint": "^1.0", + "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, + "allow-plugins": { + "pestphp/pest-plugin": true + } + }, + "minimum-stability": "stable", + "prefer-stable": true +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..9b2eb4f --- /dev/null +++ b/composer.lock @@ -0,0 +1,9115 @@ +{ + "_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": "8f2edd1901e6d484b1afa0894c1e2244", + "packages": [ + { + "name": "akaunting/laravel-money", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/akaunting/laravel-money.git", + "reference": "df99d0f5d415490ef7e79362c3b694e8cc8af903" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/akaunting/laravel-money/zipball/df99d0f5d415490ef7e79362c3b694e8cc8af903", + "reference": "df99d0f5d415490ef7e79362c3b694e8cc8af903", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^9.0|^10.0", + "illuminate/support": "^9.0|^10.0", + "illuminate/validation": "^9.0|^10.0", + "illuminate/view": "^9.0|^10.0", + "php": "^8.0", + "vlucas/phpdotenv": "^5.4.1" + }, + "require-dev": { + "orchestra/testbench": "^7.4|^8.0", + "phpunit/phpunit": "^9.5|^10.0", + "vimeo/psalm": "^4.23" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Akaunting\\Money\\Provider" + ] + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Akaunting\\Money\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Denis Duliçi", + "email": "info@akaunting.com", + "homepage": "https://akaunting.com", + "role": "Developer" + } + ], + "description": "Currency formatting and conversion package for Laravel", + "keywords": [ + "convert", + "currency", + "format", + "laravel", + "money" + ], + "support": { + "issues": "https://github.com/akaunting/laravel-money/issues", + "source": "https://github.com/akaunting/laravel-money/tree/4.0.1" + }, + "time": "2023-03-16T14:39:27+00:00" + }, + { + "name": "blade-ui-kit/blade-heroicons", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/blade-ui-kit/blade-heroicons.git", + "reference": "dea08e8308d9bad9ebff1bc482d5985dbaacc91b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/blade-ui-kit/blade-heroicons/zipball/dea08e8308d9bad9ebff1bc482d5985dbaacc91b", + "reference": "dea08e8308d9bad9ebff1bc482d5985dbaacc91b", + "shasum": "" + }, + "require": { + "blade-ui-kit/blade-icons": "^1.1", + "illuminate/support": "^8.0|^9.0|^10.0", + "php": "^7.4|^8.0" + }, + "require-dev": { + "orchestra/testbench": "^6.0|^7.0|^8.0", + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "BladeUI\\Heroicons\\BladeHeroiconsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "BladeUI\\Heroicons\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dries Vints", + "homepage": "https://driesvints.com" + } + ], + "description": "A package to easily make use of Heroicons in your Laravel Blade views.", + "homepage": "https://github.com/blade-ui-kit/blade-heroicons", + "keywords": [ + "Heroicons", + "blade", + "laravel" + ], + "support": { + "issues": "https://github.com/blade-ui-kit/blade-heroicons/issues", + "source": "https://github.com/blade-ui-kit/blade-heroicons/tree/1.4.0" + }, + "funding": [ + { + "url": "https://github.com/caneco", + "type": "github" + }, + { + "url": "https://github.com/driesvints", + "type": "github" + } + ], + "time": "2023-01-25T17:57:58+00:00" + }, + { + "name": "blade-ui-kit/blade-icons", + "version": "1.5.1", + "source": { + "type": "git", + "url": "https://github.com/blade-ui-kit/blade-icons.git", + "reference": "b2a80ff2a26641f64bfee48ad0d2a922ce781228" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/blade-ui-kit/blade-icons/zipball/b2a80ff2a26641f64bfee48ad0d2a922ce781228", + "reference": "b2a80ff2a26641f64bfee48ad0d2a922ce781228", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^8.0|^9.0|^10.0", + "illuminate/filesystem": "^8.0|^9.0|^10.0", + "illuminate/support": "^8.0|^9.0|^10.0", + "illuminate/view": "^8.0|^9.0|^10.0", + "php": "^7.4|^8.0", + "symfony/console": "^5.3|^6.0", + "symfony/finder": "^5.3|^6.0" + }, + "require-dev": { + "mockery/mockery": "^1.3", + "orchestra/testbench": "^6.0|^7.0|^8.0", + "phpunit/phpunit": "^9.0" + }, + "bin": [ + "bin/blade-icons-generate" + ], + "type": "library", + "extra": { + "laravel": { + "providers": [ + "BladeUI\\Icons\\BladeIconsServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "BladeUI\\Icons\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dries Vints", + "homepage": "https://driesvints.com" + } + ], + "description": "A package to easily make use of icons in your Laravel Blade views.", + "homepage": "https://github.com/blade-ui-kit/blade-icons", + "keywords": [ + "blade", + "icons", + "laravel", + "svg" + ], + "support": { + "issues": "https://github.com/blade-ui-kit/blade-icons/issues", + "source": "https://github.com/blade-ui-kit/blade-icons" + }, + "funding": [ + { + "url": "https://github.com/caneco", + "type": "github" + }, + { + "url": "https://github.com/driesvints", + "type": "github" + } + ], + "time": "2023-02-15T16:30:12+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": "danharrin/date-format-converter", + "version": "v0.3.0", + "source": { + "type": "git", + "url": "https://github.com/danharrin/date-format-converter.git", + "reference": "42b6ddc52059d4ba228a67c15adaaa0c039e75f2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/danharrin/date-format-converter/zipball/42b6ddc52059d4ba228a67c15adaaa0c039e75f2", + "reference": "42b6ddc52059d4ba228a67c15adaaa0c039e75f2", + "shasum": "" + }, + "require": { + "php": "^7.2|^8.0" + }, + "type": "library", + "autoload": { + "files": [ + "src/helpers.php", + "src/standards.php" + ], + "psr-4": { + "DanHarrin\\DateFormatConverter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dan Harrin", + "email": "dan@danharrin.com" + } + ], + "description": "Convert token-based date formats between standards.", + "homepage": "https://github.com/danharrin/date-format-converter", + "support": { + "issues": "https://github.com/danharrin/date-format-converter/issues", + "source": "https://github.com/danharrin/date-format-converter" + }, + "funding": [ + { + "url": "https://github.com/danharrin", + "type": "github" + } + ], + "time": "2022-09-29T07:48: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/deprecations", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", + "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", + "shasum": "" + }, + "require": { + "php": "^7.1|^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "phpunit/phpunit": "^7.5|^8.5|^9.5", + "psr/log": "^1|^2|^3" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/v1.0.0" + }, + "time": "2022-05-02T15:47:09+00:00" + }, + { + "name": "doctrine/inflector", + "version": "2.0.6", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", + "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^10", + "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" + }, + "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.6" + }, + "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": "2022-10-20T09:10:12+00:00" + }, + { + "name": "doctrine/lexer", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/39ab8fcf5a51ce4b85ca97c7a7d033eb12831124", + "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^1.0", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9 || ^10", + "phpstan/phpstan": "^1.3", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "^0.18.3", + "vimeo/psalm": "^4.11 || ^5.0" + }, + "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/2.1.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%2Flexer", + "type": "tidelift" + } + ], + "time": "2022-12-14T08:49:07+00:00" + }, + { + "name": "dragonmantank/cron-expression", + "version": "v3.3.2", + "source": { + "type": "git", + "url": "https://github.com/dragonmantank/cron-expression.git", + "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/782ca5968ab8b954773518e9e49a6f892a34b2a8", + "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8", + "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.2" + }, + "funding": [ + { + "url": "https://github.com/dragonmantank", + "type": "github" + } + ], + "time": "2022-09-10T18:51:20+00:00" + }, + { + "name": "egulias/email-validator", + "version": "3.2.5", + "source": { + "type": "git", + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "b531a2311709443320c786feb4519cfaf94af796" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/b531a2311709443320c786feb4519cfaf94af796", + "reference": "b531a2311709443320c786feb4519cfaf94af796", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^1.2|^2", + "php": ">=7.2", + "symfony/polyfill-intl-idn": "^1.15" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.8|^9.3.3", + "vimeo/psalm": "^4" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.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/3.2.5" + }, + "funding": [ + { + "url": "https://github.com/egulias", + "type": "github" + } + ], + "time": "2023-01-02T17:26:14+00:00" + }, + { + "name": "filament/forms", + "version": "v2.17.40", + "source": { + "type": "git", + "url": "https://github.com/filamentphp/forms.git", + "reference": "bac884ddd8017ff5acf1ca7d3841a7cb4150bf81" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filamentphp/forms/zipball/bac884ddd8017ff5acf1ca7d3841a7cb4150bf81", + "reference": "bac884ddd8017ff5acf1ca7d3841a7cb4150bf81", + "shasum": "" + }, + "require": { + "blade-ui-kit/blade-heroicons": "^1.2", + "danharrin/date-format-converter": "^0.3", + "filament/notifications": "self.version", + "filament/support": "self.version", + "illuminate/console": "^8.6|^9.0|^10.0", + "illuminate/contracts": "^8.6|^9.0|^10.0", + "illuminate/database": "^8.6|^9.0|^10.0", + "illuminate/filesystem": "^8.6|^9.0|^10.0", + "illuminate/support": "^8.6|^9.0|^10.0", + "illuminate/validation": "^8.6|^9.0|^10.0", + "illuminate/view": "^8.6|^9.0|^10.0", + "livewire/livewire": "^2.10.7", + "php": "^8.0", + "spatie/laravel-package-tools": "^1.9" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Filament\\Forms\\FormsServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Filament\\Forms\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Effortlessly build TALL-powered forms.", + "homepage": "https://github.com/filamentphp/filament", + "support": { + "issues": "https://github.com/filamentphp/filament/issues", + "source": "https://github.com/filamentphp/filament" + }, + "time": "2023-05-13T18:44:56+00:00" + }, + { + "name": "filament/notifications", + "version": "v2.17.40", + "source": { + "type": "git", + "url": "https://github.com/filamentphp/notifications.git", + "reference": "0ef9f1f3481a08f357b8e78bcb4bbcd8111a1252" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filamentphp/notifications/zipball/0ef9f1f3481a08f357b8e78bcb4bbcd8111a1252", + "reference": "0ef9f1f3481a08f357b8e78bcb4bbcd8111a1252", + "shasum": "" + }, + "require": { + "blade-ui-kit/blade-heroicons": "^1.2", + "filament/support": "self.version", + "illuminate/contracts": "^8.6|^9.0|^10.0", + "illuminate/filesystem": "^8.6|^9.0|^10.0", + "illuminate/notifications": "^8.6|^9.0|^10.0", + "illuminate/support": "^8.6|^9.0|^10.0", + "livewire/livewire": "^2.10.7", + "php": "^8.0", + "spatie/laravel-package-tools": "^1.9" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Filament\\Notifications\\NotificationsServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/Testing/Autoload.php" + ], + "psr-4": { + "Filament\\Notifications\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Effortlessly build TALL-powered notifications.", + "homepage": "https://github.com/filamentphp/filament", + "support": { + "issues": "https://github.com/filamentphp/filament/issues", + "source": "https://github.com/filamentphp/filament" + }, + "time": "2023-05-04T23:08:09+00:00" + }, + { + "name": "filament/support", + "version": "v2.17.40", + "source": { + "type": "git", + "url": "https://github.com/filamentphp/support.git", + "reference": "e75e02a76edd959304cdbea7815586b720f8d308" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filamentphp/support/zipball/e75e02a76edd959304cdbea7815586b720f8d308", + "reference": "e75e02a76edd959304cdbea7815586b720f8d308", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^8.6|^9.0|^10.0", + "illuminate/support": "^8.6|^9.0|^10.0", + "illuminate/view": "^8.6|^9.0|^10.0", + "php": "^8.0", + "spatie/laravel-package-tools": "^1.9", + "tgalopin/html-sanitizer": "^1.5" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Filament\\Support\\SupportServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Filament\\Support\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Associated helper methods and foundation code for Filament packages.", + "homepage": "https://github.com/filamentphp/filament", + "support": { + "issues": "https://github.com/filamentphp/filament/issues", + "source": "https://github.com/filamentphp/filament" + }, + "time": "2023-05-13T07:21:02+00:00" + }, + { + "name": "filament/tables", + "version": "v2.17.40", + "source": { + "type": "git", + "url": "https://github.com/filamentphp/tables.git", + "reference": "7389f819d057262642295a22fb7d26e92e0b2ab6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filamentphp/tables/zipball/7389f819d057262642295a22fb7d26e92e0b2ab6", + "reference": "7389f819d057262642295a22fb7d26e92e0b2ab6", + "shasum": "" + }, + "require": { + "akaunting/laravel-money": "^1.2|^2.0|^3.0|^4.0", + "blade-ui-kit/blade-heroicons": "^1.2", + "filament/forms": "self.version", + "filament/notifications": "self.version", + "filament/support": "self.version", + "illuminate/console": "^8.6|^9.0|^10.0", + "illuminate/contracts": "^8.6|^9.0|^10.0", + "illuminate/database": "^8.6|^9.0|^10.0", + "illuminate/filesystem": "^8.6|^9.0|^10.0", + "illuminate/support": "^8.6|^9.0|^10.0", + "illuminate/view": "^8.6|^9.0|^10.0", + "livewire/livewire": "^2.10.7", + "php": "^8.0", + "spatie/invade": "^1.0", + "spatie/laravel-package-tools": "^1.9" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Filament\\Tables\\TablesServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Filament\\Tables\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Effortlessly build TALL-powered tables.", + "homepage": "https://github.com/filamentphp/filament", + "support": { + "issues": "https://github.com/filamentphp/filament/issues", + "source": "https://github.com/filamentphp/filament" + }, + "time": "2023-05-13T07:21:08+00:00" + }, + { + "name": "fruitcake/php-cors", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/fruitcake/php-cors.git", + "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/58571acbaa5f9f462c9c77e911700ac66f446d4e", + "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e", + "shasum": "" + }, + "require": { + "php": "^7.4|^8.0", + "symfony/http-foundation": "^4.4|^5.4|^6" + }, + "require-dev": { + "phpstan/phpstan": "^1.4", + "phpunit/phpunit": "^9", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.1-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.2.0" + }, + "funding": [ + { + "url": "https://fruitcake.nl", + "type": "custom" + }, + { + "url": "https://github.com/barryvdh", + "type": "github" + } + ], + "time": "2022-02-20T15:07:15+00:00" + }, + { + "name": "graham-campbell/result-type", + "version": "v1.1.1", + "source": { + "type": "git", + "url": "https://github.com/GrahamCampbell/Result-Type.git", + "reference": "672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831", + "reference": "672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9.1" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12" + }, + "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.1" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", + "type": "tidelift" + } + ], + "time": "2023-02-25T20:23:15+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "7.6.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "733dd89533dd371a0987172727df15f500dab0ef" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/733dd89533dd371a0987172727df15f500dab0ef", + "reference": "733dd89533dd371a0987172727df15f500dab0ef", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.5", + "guzzlehttp/psr7": "^1.9.1 || ^2.4.5", + "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.1", + "ext-curl": "*", + "php-http/client-integration-tests": "^3.0", + "phpunit/phpunit": "^8.5.29 || ^9.5.23", + "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.6.0" + }, + "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-05-14T11:23:39+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "1.5.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "b94b2807d85443f9719887892882d0329d1e2598" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", + "reference": "b94b2807d85443f9719887892882d0329d1e2598", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "symfony/phpunit-bridge": "^4.4 || ^5.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.5-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "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/1.5.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": "2022-08-28T14:55:35+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "2.5.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "b635f279edd83fc275f822a1188157ffea568ff6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/b635f279edd83fc275f822a1188157ffea568ff6", + "reference": "b635f279edd83fc275f822a1188157ffea568ff6", + "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.1", + "http-interop/http-factory-tests": "^0.9", + "phpunit/phpunit": "^8.5.29 || ^9.5.23" + }, + "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.5.0" + }, + "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-04-17T16:11:26+00:00" + }, + { + "name": "guzzlehttp/uri-template", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/guzzle/uri-template.git", + "reference": "b945d74a55a25a949158444f09ec0d3c120d69e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/uri-template/zipball/b945d74a55a25a949158444f09ec0d3c120d69e2", + "reference": "b945d74a55a25a949158444f09ec0d3c120d69e2", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "symfony/polyfill-php80": "^1.17" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.19 || ^9.5.8", + "uri-template/tests": "1.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "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.1" + }, + "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": "2021-10-07T12:57:01+00:00" + }, + { + "name": "laravel-lang/lang", + "version": "12.17.1", + "source": { + "type": "git", + "url": "https://github.com/Laravel-Lang/lang.git", + "reference": "b07184103fb64131d514667b8fd1d74c71105409" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Laravel-Lang/lang/zipball/b07184103fb64131d514667b8fd1d74c71105409", + "reference": "b07184103fb64131d514667b8fd1d74c71105409", + "shasum": "" + }, + "require": { + "ext-json": "*" + }, + "conflict": { + "laravel-lang/publisher": "<14.0" + }, + "require-dev": { + "laravel-lang/publisher": "^14.0", + "laravel-lang/status-generator": "^1.13", + "php": "^8.1", + "phpunit/phpunit": "^9.6", + "symfony/var-dumper": "^5.0 || ^6.0" + }, + "suggest": { + "arcanedev/laravel-lang": "Translations manager and checker for Laravel", + "laravel-lang/attributes": "Translations for field names of the forms", + "laravel-lang/http-statuses": "Translations for HTTP statuses", + "laravel-lang/publisher": "Easy installation and update of translation files for your project" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "LaravelLang\\Lang\\ServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "LaravelLang\\Lang\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laravel-Lang Team", + "homepage": "https://github.com/Laravel-Lang" + } + ], + "description": "Languages for Laravel", + "keywords": [ + "lang", + "languages", + "laravel", + "lpm" + ], + "support": { + "issues": "https://github.com/Laravel-Lang/lang/issues", + "source": "https://github.com/Laravel-Lang/lang" + }, + "funding": [ + { + "url": "https://opencollective.com/laravel-lang", + "type": "open_collective" + } + ], + "time": "2023-02-19T13:40:37+00:00" + }, + { + "name": "laravel/framework", + "version": "v9.52.7", + "source": { + "type": "git", + "url": "https://github.com/laravel/framework.git", + "reference": "675ea868fe36b18c8303e954aac540e6b1caa677" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/framework/zipball/675ea868fe36b18c8303e954aac540e6b1caa677", + "reference": "675ea868fe36b18c8303e954aac540e6b1caa677", + "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-04-25T13:44:05+00:00" + }, + { + "name": "laravel/sanctum", + "version": "v3.2.5", + "source": { + "type": "git", + "url": "https://github.com/laravel/sanctum.git", + "reference": "8ebda85d59d3c414863a7f4d816ef8302faad876" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/sanctum/zipball/8ebda85d59d3c414863a7f4d816ef8302faad876", + "reference": "8ebda85d59d3c414863a7f4d816ef8302faad876", + "shasum": "" + }, + "require": { + "ext-json": "*", + "illuminate/console": "^9.21|^10.0", + "illuminate/contracts": "^9.21|^10.0", + "illuminate/database": "^9.21|^10.0", + "illuminate/support": "^9.21|^10.0", + "php": "^8.0.2" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "orchestra/testbench": "^7.0|^8.0", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.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": "2023-05-01T19:39:51+00:00" + }, + { + "name": "laravel/serializable-closure", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/serializable-closure.git", + "reference": "f23fe9d4e95255dacee1bf3525e0810d1a1b0f37" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/f23fe9d4e95255dacee1bf3525e0810d1a1b0f37", + "reference": "f23fe9d4e95255dacee1bf3525e0810d1a1b0f37", + "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-01-30T18:31:20+00:00" + }, + { + "name": "laravel/tinker", + "version": "v2.8.1", + "source": { + "type": "git", + "url": "https://github.com/laravel/tinker.git", + "reference": "04a2d3bd0d650c0764f70bf49d1ee39393e4eb10" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/tinker/zipball/04a2d3bd0d650c0764f70bf49d1ee39393e4eb10", + "reference": "04a2d3bd0d650c0764f70bf49d1ee39393e4eb10", + "shasum": "" + }, + "require": { + "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0", + "php": "^7.2.5|^8.0", + "psy/psysh": "^0.10.4|^0.11.1", + "symfony/var-dumper": "^4.3.4|^5.0|^6.0" + }, + "require-dev": { + "mockery/mockery": "~1.3.3|^1.4.2", + "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)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Tinker\\TinkerServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Tinker\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Powerful REPL for the Laravel framework.", + "keywords": [ + "REPL", + "Tinker", + "laravel", + "psysh" + ], + "support": { + "issues": "https://github.com/laravel/tinker/issues", + "source": "https://github.com/laravel/tinker/tree/v2.8.1" + }, + "time": "2023-02-15T16:40:09+00:00" + }, + { + "name": "laravel/ui", + "version": "v4.2.1", + "source": { + "type": "git", + "url": "https://github.com/laravel/ui.git", + "reference": "05ff7ac1eb55e2dfd10edcfb18c953684d693907" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/ui/zipball/05ff7ac1eb55e2dfd10edcfb18c953684d693907", + "reference": "05ff7ac1eb55e2dfd10edcfb18c953684d693907", + "shasum": "" + }, + "require": { + "illuminate/console": "^9.21|^10.0", + "illuminate/filesystem": "^9.21|^10.0", + "illuminate/support": "^9.21|^10.0", + "illuminate/validation": "^9.21|^10.0", + "php": "^8.0" + }, + "require-dev": { + "orchestra/testbench": "^7.0|^8.0", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Ui\\UiServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Ui\\": "src/", + "Illuminate\\Foundation\\Auth\\": "auth-backend/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Laravel UI utilities and presets.", + "keywords": [ + "laravel", + "ui" + ], + "support": { + "source": "https://github.com/laravel/ui/tree/v4.2.1" + }, + "time": "2023-02-17T09:17:24+00:00" + }, + { + "name": "league/commonmark", + "version": "2.4.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/commonmark.git", + "reference": "d44a24690f16b8c1808bf13b1bd54ae4c63ea048" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/d44a24690f16b8c1808bf13b1bd54ae4c63ea048", + "reference": "d44a24690f16b8c1808bf13b1bd54ae4c63ea048", + "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.0", + "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", + "scrutinizer/ocular": "^1.8.1", + "symfony/finder": "^5.3 | ^6.0", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.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": "2023-03-24T15:16:10+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.15.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "a141d430414fcb8bf797a18716b09f759a385bed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/a141d430414fcb8bf797a18716b09f759a385bed", + "reference": "a141d430414fcb8bf797a18716b09f759a385bed", + "shasum": "" + }, + "require": { + "league/flysystem-local": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "conflict": { + "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", + "async-aws/simple-s3": "^1.1", + "aws/aws-sdk-php": "^3.220.0", + "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.14", + "phpstan/phpstan": "^0.12.26", + "phpunit/phpunit": "^9.5.11", + "sabre/dav": "^4.3.1" + }, + "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.15.1" + }, + "funding": [ + { + "url": "https://ecologi.com/frankdejonge", + "type": "custom" + }, + { + "url": "https://github.com/frankdejonge", + "type": "github" + } + ], + "time": "2023-05-04T09:04:26+00:00" + }, + { + "name": "league/flysystem-local", + "version": "3.15.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem-local.git", + "reference": "543f64c397fefdf9cfeac443ffb6beff602796b3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/543f64c397fefdf9cfeac443ffb6beff602796b3", + "reference": "543f64c397fefdf9cfeac443ffb6beff602796b3", + "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": { + "issues": "https://github.com/thephpleague/flysystem-local/issues", + "source": "https://github.com/thephpleague/flysystem-local/tree/3.15.0" + }, + "funding": [ + { + "url": "https://ecologi.com/frankdejonge", + "type": "custom" + }, + { + "url": "https://github.com/frankdejonge", + "type": "github" + } + ], + "time": "2023-05-02T20:02:14+00:00" + }, + { + "name": "league/mime-type-detection", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/mime-type-detection.git", + "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ff6248ea87a9f116e78edd6002e39e5128a0d4dd", + "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.2", + "phpstan/phpstan": "^0.12.68", + "phpunit/phpunit": "^8.5.8 || ^9.3" + }, + "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.11.0" + }, + "funding": [ + { + "url": "https://github.com/frankdejonge", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/flysystem", + "type": "tidelift" + } + ], + "time": "2022-04-17T13:12:02+00:00" + }, + { + "name": "league/uri-parser", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/uri-parser.git", + "reference": "671548427e4c932352d9b9279fdfa345bf63fa00" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/uri-parser/zipball/671548427e4c932352d9b9279fdfa345bf63fa00", + "reference": "671548427e4c932352d9b9279fdfa345bf63fa00", + "shasum": "" + }, + "require": { + "php": ">=7.0.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.0", + "phpstan/phpstan": "^0.9.2", + "phpstan/phpstan-phpunit": "^0.9.4", + "phpstan/phpstan-strict-rules": "^0.9.0", + "phpunit/phpunit": "^6.0" + }, + "suggest": { + "ext-intl": "Allow parsing RFC3987 compliant hosts", + "league/uri-schemes": "Allow validating and normalizing URI parsing results" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "League\\Uri\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" + } + ], + "description": "userland URI parser RFC 3986 compliant", + "homepage": "https://github.com/thephpleague/uri-parser", + "keywords": [ + "parse_url", + "parser", + "rfc3986", + "rfc3987", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/thephpleague/uri-parser/issues", + "source": "https://github.com/thephpleague/uri-parser/tree/master" + }, + "abandoned": true, + "time": "2018-11-22T07:55:51+00:00" + }, + { + "name": "livewire/livewire", + "version": "v2.12.3", + "source": { + "type": "git", + "url": "https://github.com/livewire/livewire.git", + "reference": "019b1e69d8cd8c7e749eba7a38e4fa69ecbc8f74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/livewire/livewire/zipball/019b1e69d8cd8c7e749eba7a38e4fa69ecbc8f74", + "reference": "019b1e69d8cd8c7e749eba7a38e4fa69ecbc8f74", + "shasum": "" + }, + "require": { + "illuminate/database": "^7.0|^8.0|^9.0|^10.0", + "illuminate/support": "^7.0|^8.0|^9.0|^10.0", + "illuminate/validation": "^7.0|^8.0|^9.0|^10.0", + "league/mime-type-detection": "^1.9", + "php": "^7.2.5|^8.0", + "symfony/http-kernel": "^5.0|^6.0" + }, + "require-dev": { + "calebporzio/sushi": "^2.1", + "laravel/framework": "^7.0|^8.0|^9.0|^10.0", + "mockery/mockery": "^1.3.1", + "orchestra/testbench": "^5.0|^6.0|^7.0|^8.0", + "orchestra/testbench-dusk": "^5.2|^6.0|^7.0|^8.0", + "phpunit/phpunit": "^8.4|^9.0", + "psy/psysh": "@stable" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Livewire\\LivewireServiceProvider" + ], + "aliases": { + "Livewire": "Livewire\\Livewire" + } + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Livewire\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Caleb Porzio", + "email": "calebporzio@gmail.com" + } + ], + "description": "A front-end framework for Laravel.", + "support": { + "issues": "https://github.com/livewire/livewire/issues", + "source": "https://github.com/livewire/livewire/tree/v2.12.3" + }, + "funding": [ + { + "url": "https://github.com/livewire", + "type": "github" + } + ], + "time": "2023-03-03T20:12:38+00:00" + }, + { + "name": "masterminds/html5", + "version": "2.8.0", + "source": { + "type": "git", + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "3c5d5a56d56f48a1ca08a0670f0f80c1dad368f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/3c5d5a56d56f48a1ca08a0670f0f80c1dad368f3", + "reference": "3c5d5a56d56f48a1ca08a0670f0f80c1dad368f3", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Masterminds\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + } + ], + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "support": { + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.8.0" + }, + "time": "2023-04-26T07:27:39+00:00" + }, + { + "name": "monolog/monolog", + "version": "2.9.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f259e2b15fb95494c83f52d3caad003bbf5ffaa1", + "reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1", + "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": "^0.12.91", + "phpunit/phpunit": "^8.5.14", + "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.1" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2023-02-06T13:44:46+00:00" + }, + { + "name": "nesbot/carbon", + "version": "2.66.0", + "source": { + "type": "git", + "url": "https://github.com/briannesbitt/Carbon.git", + "reference": "496712849902241f04902033b0441b269effe001" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/496712849902241f04902033b0441b269effe001", + "reference": "496712849902241f04902033b0441b269effe001", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.1.8 || ^8.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" + }, + "require-dev": { + "doctrine/dbal": "^2.0 || ^3.1.4", + "doctrine/orm": "^2.7", + "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": "2023-01-29T18:53:47+00:00" + }, + { + "name": "nette/schema", + "version": "v1.2.3", + "source": { + "type": "git", + "url": "https://github.com/nette/schema.git", + "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/schema/zipball/abbdbb70e0245d5f3bf77874cea1dfb0c930d06f", + "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f", + "shasum": "" + }, + "require": { + "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", + "php": ">=7.1 <8.3" + }, + "require-dev": { + "nette/tester": "^2.3 || ^2.4", + "phpstan/phpstan-nette": "^1.0", + "tracy/tracy": "^2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-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.2.3" + }, + "time": "2022-10-13T01:24:26+00:00" + }, + { + "name": "nette/utils", + "version": "v4.0.0", + "source": { + "type": "git", + "url": "https://github.com/nette/utils.git", + "reference": "cacdbf5a91a657ede665c541eda28941d4b09c1e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/utils/zipball/cacdbf5a91a657ede665c541eda28941d4b09c1e", + "reference": "cacdbf5a91a657ede665c541eda28941d4b09c1e", + "shasum": "" + }, + "require": { + "php": ">=8.0 <8.3" + }, + "conflict": { + "nette/finder": "<3", + "nette/schema": "<1.2.2" + }, + "require-dev": { + "jetbrains/phpstorm-attributes": "dev-master", + "nette/tester": "^2.4", + "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()", + "ext-xml": "to use Strings::length() etc. when mbstring is not available" + }, + "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.0" + }, + "time": "2023-02-02T10:41:53+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.15.4", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6bb5176bc4af8bcb7d926f88718db9b96a2d4290", + "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-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/v4.15.4" + }, + "time": "2023-03-05T19:49:14+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": "phpoption/phpoption", + "version": "1.9.1", + "source": { + "type": "git", + "url": "https://github.com/schmittjoh/php-option.git", + "reference": "dd3a383e599f49777d8b628dadbb90cae435b87e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dd3a383e599f49777d8b628dadbb90cae435b87e", + "reference": "dd3a383e599f49777d8b628dadbb90cae435b87e", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12" + }, + "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.1" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", + "type": "tidelift" + } + ], + "time": "2023-02-25T19:38:58+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.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31", + "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31", + "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/tree/1.0.2" + }, + "time": "2023-04-10T20:12:12+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.11.17", + "source": { + "type": "git", + "url": "https://github.com/bobthecow/psysh.git", + "reference": "3dc5d4018dabd80bceb8fe1e3191ba8460569f0a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/3dc5d4018dabd80bceb8fe1e3191ba8460569f0a", + "reference": "3dc5d4018dabd80bceb8fe1e3191ba8460569f0a", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-tokenizer": "*", + "nikic/php-parser": "^4.0 || ^3.1", + "php": "^8.0 || ^7.0.8", + "symfony/console": "^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^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.", + "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history." + }, + "bin": [ + "bin/psysh" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "0.11.x-dev" + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Psy\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Justin Hileman", + "email": "justin@justinhileman.info", + "homepage": "http://justinhileman.com" + } + ], + "description": "An interactive shell for modern PHP.", + "homepage": "http://psysh.org", + "keywords": [ + "REPL", + "console", + "interactive", + "shell" + ], + "support": { + "issues": "https://github.com/bobthecow/psysh/issues", + "source": "https://github.com/bobthecow/psysh/tree/v0.11.17" + }, + "time": "2023-05-05T20:02:42+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": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/ramsey/collection.git", + "reference": "ad7475d1c9e70b190ecffc58f2d989416af339b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/collection/zipball/ad7475d1c9e70b190ecffc58f2d989416af339b4", + "reference": "ad7475d1c9e70b190ecffc58f2d989416af339b4", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "symfony/polyfill-php81": "^1.23" + }, + "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/1.3.0" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", + "type": "tidelift" + } + ], + "time": "2022-12-27T19:12:24+00:00" + }, + { + "name": "ramsey/uuid", + "version": "4.7.4", + "source": { + "type": "git", + "url": "https://github.com/ramsey/uuid.git", + "reference": "60a4c63ab724854332900504274f6150ff26d286" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/60a4c63ab724854332900504274f6150ff26d286", + "reference": "60a4c63ab724854332900504274f6150ff26d286", + "shasum": "" + }, + "require": { + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11", + "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.4" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid", + "type": "tidelift" + } + ], + "time": "2023-04-15T23:01:58+00:00" + }, + { + "name": "spatie/invade", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/spatie/invade.git", + "reference": "d0a9c895a96152549d478a7e3420e19039eef038" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/invade/zipball/d0a9c895a96152549d478a7e3420e19039eef038", + "reference": "d0a9c895a96152549d478a7e3420e19039eef038", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "pestphp/pest": "^1.20", + "phpstan/phpstan": "^1.4", + "spatie/ray": "^1.28" + }, + "type": "library", + "extra": { + "phpstan": { + "includes": [ + "phpstan-extension.neon" + ] + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Spatie\\Invade\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "role": "Developer" + } + ], + "description": "A PHP function to work with private properties and methods", + "homepage": "https://github.com/spatie/invade", + "keywords": [ + "invade", + "spatie" + ], + "support": { + "source": "https://github.com/spatie/invade/tree/1.1.1" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2022-07-05T09:31:00+00:00" + }, + { + "name": "spatie/laravel-package-tools", + "version": "1.15.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-package-tools.git", + "reference": "efab1844b8826443135201c4443690f032c3d533" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/efab1844b8826443135201c4443690f032c3d533", + "reference": "efab1844b8826443135201c4443690f032c3d533", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^9.28|^10.0", + "php": "^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.5", + "orchestra/testbench": "^7.7|^8.0", + "pestphp/pest": "^1.22", + "phpunit/phpunit": "^9.5.24", + "spatie/pest-plugin-test-time": "^1.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\LaravelPackageTools\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "role": "Developer" + } + ], + "description": "Tools for creating Laravel packages", + "homepage": "https://github.com/spatie/laravel-package-tools", + "keywords": [ + "laravel-package-tools", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/laravel-package-tools/issues", + "source": "https://github.com/spatie/laravel-package-tools/tree/1.15.0" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2023-04-27T08:09:01+00:00" + }, + { + "name": "symfony/console", + "version": "v6.0.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/c3ebc83d031b71c39da318ca8b7a07ecc67507ed", + "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/string": "^5.4|^6.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", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/lock": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "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.0.19" + }, + "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-01-01T08:36:10+00:00" + }, + { + "name": "symfony/css-selector", + "version": "v6.0.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "f1d00bddb83a4cb2138564b2150001cb6ce272b1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/f1d00bddb83a4cb2138564b2150001cb6ce272b1", + "reference": "f1d00bddb83a4cb2138564b2150001cb6ce272b1", + "shasum": "" + }, + "require": { + "php": ">=8.0.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/v6.0.19" + }, + "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-01-01T08:36:10+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", + "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", + "shasum": "" + }, + "require": { + "php": ">=8.0.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-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.0.2" + }, + "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": "2022-01-02T09:55:41+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v6.0.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "c7df52182f43a68522756ac31a532dd5b1e6db67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/c7df52182f43a68522756ac31a532dd5b1e6db67", + "reference": "c7df52182f43a68522756ac31a532dd5b1e6db67", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "psr/log": "^1|^2|^3", + "symfony/var-dumper": "^5.4|^6.0" + }, + "require-dev": { + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.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.0.19" + }, + "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-01-01T08:36:10+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v6.0.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "2eaf8e63bc5b8cefabd4a800157f0d0c094f677a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/2eaf8e63bc5b8cefabd4a800157f0d0c094f677a", + "reference": "2eaf8e63bc5b8cefabd4a800157f0d0c094f677a", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "symfony/event-dispatcher-contracts": "^2|^3" + }, + "conflict": { + "symfony/dependency-injection": "<5.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/error-handler": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/stopwatch": "^5.4|^6.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "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/v6.0.19" + }, + "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-01-01T08:36:10+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "7bc61cc2db649b4637d331240c5346dcc7708051" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7bc61cc2db649b4637d331240c5346dcc7708051", + "reference": "7bc61cc2db649b4637d331240c5346dcc7708051", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "psr/event-dispatcher": "^1" + }, + "suggest": { + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-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.0.2" + }, + "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": "2022-01-02T09:55:41+00:00" + }, + { + "name": "symfony/finder", + "version": "v6.0.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "5cc9cac6586fc0c28cd173780ca696e419fefa11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/5cc9cac6586fc0c28cd173780ca696e419fefa11", + "reference": "5cc9cac6586fc0c28cd173780ca696e419fefa11", + "shasum": "" + }, + "require": { + "php": ">=8.0.2" + }, + "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.0.19" + }, + "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-01-20T17:44:14+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v6.0.20", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "e16b2676a4b3b1fa12378a20b29c364feda2a8d6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e16b2676a4b3b1fa12378a20b29c364feda2a8d6", + "reference": "e16b2676a4b3b1fa12378a20b29c364feda2a8d6", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.1" + }, + "require-dev": { + "predis/predis": "~1.0", + "symfony/cache": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", + "symfony/mime": "^5.4|^6.0", + "symfony/rate-limiter": "^5.2|^6.0" + }, + "suggest": { + "symfony/mime": "To use the file extension guesser" + }, + "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.0.20" + }, + "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-01-30T15:41:07+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v6.0.20", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "6dc70833fd0ef5e861e17c7854c12d7d86679349" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6dc70833fd0ef5e861e17c7854c12d7d86679349", + "reference": "6dc70833fd0ef5e861e17c7854c12d7d86679349", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "psr/log": "^1|^2|^3", + "symfony/error-handler": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/browser-kit": "<5.4", + "symfony/cache": "<5.4", + "symfony/config": "<5.4", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/doctrine-bridge": "<5.4", + "symfony/form": "<5.4", + "symfony/http-client": "<5.4", + "symfony/mailer": "<5.4", + "symfony/messenger": "<5.4", + "symfony/translation": "<5.4", + "symfony/twig-bridge": "<5.4", + "symfony/validator": "<5.4", + "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", + "symfony/config": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/css-selector": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/dom-crawler": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/http-client-contracts": "^1.1|^2|^3", + "symfony/process": "^5.4|^6.0", + "symfony/routing": "^5.4|^6.0", + "symfony/stopwatch": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0", + "symfony/translation-contracts": "^1.1|^2|^3", + "twig/twig": "^2.13|^3.0.4" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "" + }, + "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.0.20" + }, + "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-02-01T08:22:55+00:00" + }, + { + "name": "symfony/mailer", + "version": "v6.0.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/mailer.git", + "reference": "cd60799210c488f545ddde2444dc1aa548322872" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mailer/zipball/cd60799210c488f545ddde2444dc1aa548322872", + "reference": "cd60799210c488f545ddde2444dc1aa548322872", + "shasum": "" + }, + "require": { + "egulias/email-validator": "^2.1.10|^3|^4", + "php": ">=8.0.2", + "psr/event-dispatcher": "^1", + "psr/log": "^1|^2|^3", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/mime": "^5.4|^6.0", + "symfony/service-contracts": "^1.1|^2|^3" + }, + "conflict": { + "symfony/http-kernel": "<5.4" + }, + "require-dev": { + "symfony/http-client-contracts": "^1.1|^2|^3", + "symfony/messenger": "^5.4|^6.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.0.19" + }, + "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-01-11T11:50:03+00:00" + }, + { + "name": "symfony/mime", + "version": "v6.0.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "d7052547a0070cbeadd474e172b527a00d657301" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/d7052547a0070cbeadd474e172b527a00d657301", + "reference": "d7052547a0070cbeadd474e172b527a00d657301", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "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": "<5.4.14|>=6.0,<6.0.14|>=6.1,<6.1.6" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1|^4", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/property-access": "^5.4|^6.0", + "symfony/property-info": "^5.4|^6.0", + "symfony/serializer": "^5.4.14|~6.0.14|^6.1.6" + }, + "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.0.19" + }, + "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-01-11T11:50:03+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "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.27.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": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "511a08c03c1960e08a883f4cffcacd219b758354" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", + "reference": "511a08c03c1960e08a883f4cffcacd219b758354", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "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.27.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": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "639084e360537a19f9ee352433b84ce831f3d2da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da", + "reference": "639084e360537a19f9ee352433b84ce831f3d2da", + "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": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "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.27.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": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "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.27.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": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "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.27.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": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "869329b1e9894268a8a61dabb69153029b7a8c97" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97", + "reference": "869329b1e9894268a8a61dabb69153029b7a8c97", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "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.27.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": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "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.27.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": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a", + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "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.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.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": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-uuid", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-uuid.git", + "reference": "f3cf1a645c2734236ed1e2e671e273eeb3586166" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/f3cf1a645c2734236ed1e2e671e273eeb3586166", + "reference": "f3cf1a645c2734236ed1e2e671e273eeb3586166", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-uuid": "*" + }, + "suggest": { + "ext-uuid": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "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.27.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": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/process", + "version": "v6.0.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "2114fd60f26a296cc403a7939ab91478475a33d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/2114fd60f26a296cc403a7939ab91478475a33d4", + "reference": "2114fd60f26a296cc403a7939ab91478475a33d4", + "shasum": "" + }, + "require": { + "php": ">=8.0.2" + }, + "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.0.19" + }, + "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-01-01T08:36:10+00:00" + }, + { + "name": "symfony/routing", + "version": "v6.0.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "e56ca9b41c1ec447193474cd86ad7c0b547755ac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/e56ca9b41c1ec447193474cd86ad7c0b547755ac", + "reference": "e56ca9b41c1ec447193474cd86ad7c0b547755ac", + "shasum": "" + }, + "require": { + "php": ">=8.0.2" + }, + "conflict": { + "doctrine/annotations": "<1.12", + "symfony/config": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/yaml": "<5.4" + }, + "require-dev": { + "doctrine/annotations": "^1.12|^2", + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0" + }, + "suggest": { + "symfony/config": "For using the all-in-one router or any loader", + "symfony/expression-language": "For using expression matching", + "symfony/http-foundation": "For using a Symfony Request object", + "symfony/yaml": "For using the YAML loader" + }, + "type": "library", + "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.0.19" + }, + "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-01-01T08:36:10+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d78d39c1599bd1188b8e26bb341da52c3c6d8a66", + "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "psr/container": "^2.0" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.0.2" + }, + "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": "2022-05-30T19:17:58+00:00" + }, + { + "name": "symfony/string", + "version": "v6.0.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/d9e72497367c23e08bf94176d2be45b00a9d232a", + "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a", + "shasum": "" + }, + "require": { + "php": ">=8.0.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.0" + }, + "require-dev": { + "symfony/error-handler": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/translation-contracts": "^2.0|^3.0", + "symfony/var-exporter": "^5.4|^6.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/v6.0.19" + }, + "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-01-01T08:36:10+00:00" + }, + { + "name": "symfony/translation", + "version": "v6.0.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "9c24b3fdbbe9fb2ef3a6afd8bbaadfd72dad681f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/9c24b3fdbbe9fb2ef3a6afd8bbaadfd72dad681f", + "reference": "9c24b3fdbbe9fb2ef3a6afd8bbaadfd72dad681f", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation-contracts": "^2.3|^3.0" + }, + "conflict": { + "symfony/config": "<5.4", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/http-kernel": "<5.4", + "symfony/twig-bundle": "<5.4", + "symfony/yaml": "<5.4" + }, + "provide": { + "symfony/translation-implementation": "2.3|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/http-client-contracts": "^1.1|^2.0|^3.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/intl": "^5.4|^6.0", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/service-contracts": "^1.1.2|^2|^3", + "symfony/yaml": "^5.4|^6.0" + }, + "suggest": { + "psr/log-implementation": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" + }, + "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.0.19" + }, + "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-01-01T08:36:10+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "acbfbb274e730e5a0236f619b6168d9dedb3e282" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/acbfbb274e730e5a0236f619b6168d9dedb3e282", + "reference": "acbfbb274e730e5a0236f619b6168d9dedb3e282", + "shasum": "" + }, + "require": { + "php": ">=8.0.2" + }, + "suggest": { + "symfony/translation-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v3.0.2" + }, + "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": "2022-06-27T17:10:44+00:00" + }, + { + "name": "symfony/uid", + "version": "v6.0.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/uid.git", + "reference": "6499e28b0ac9f2aa3151e11845bdb5cd21e6bb9d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/uid/zipball/6499e28b0ac9f2aa3151e11845bdb5cd21e6bb9d", + "reference": "6499e28b0ac9f2aa3151e11845bdb5cd21e6bb9d", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "symfony/polyfill-uuid": "^1.15" + }, + "require-dev": { + "symfony/console": "^5.4|^6.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.0.19" + }, + "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-01-01T08:36:10+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v6.0.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "eb980457fa6899840fe1687e8627a03a7d8a3d52" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/eb980457fa6899840fe1687e8627a03a7d8a3d52", + "reference": "eb980457fa6899840fe1687e8627a03a7d8a3d52", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "phpunit/phpunit": "<5.4.3", + "symfony/console": "<5.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/uid": "^5.4|^6.0", + "twig/twig": "^2.13|^3.0.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "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.0.19" + }, + "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-01-20T17:44:14+00:00" + }, + { + "name": "tgalopin/html-sanitizer", + "version": "1.5.0", + "source": { + "type": "git", + "url": "https://github.com/tgalopin/html-sanitizer.git", + "reference": "5d02dcb6f2ea4f505731eac440798caa1b3b0913" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tgalopin/html-sanitizer/zipball/5d02dcb6f2ea4f505731eac440798caa1b3b0913", + "reference": "5d02dcb6f2ea4f505731eac440798caa1b3b0913", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "league/uri-parser": "^1.4.1", + "masterminds/html5": "^2.4", + "php": ">=7.1", + "psr/log": "^1.0|^2.0|^3.0" + }, + "require-dev": { + "phpunit/phpunit": "^7.4", + "symfony/var-dumper": "^4.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "HtmlSanitizer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Titouan Galopin", + "email": "galopintitouan@gmail.com" + } + ], + "description": "Sanitize untrustworthy HTML user input", + "support": { + "issues": "https://github.com/tgalopin/html-sanitizer/issues", + "source": "https://github.com/tgalopin/html-sanitizer/tree/1.5.0" + }, + "abandoned": "symfony/html-sanitizer", + "time": "2021-09-14T08:27:50+00:00" + }, + { + "name": "tijsverkoyen/css-to-inline-styles", + "version": "2.2.6", + "source": { + "type": "git", + "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", + "reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/c42125b83a4fa63b187fdf29f9c93cb7733da30c", + "reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c", + "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" + }, + "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/2.2.6" + }, + "time": "2023-01-03T09:29:04+00:00" + }, + { + "name": "vlucas/phpdotenv", + "version": "v5.5.0", + "source": { + "type": "git", + "url": "https://github.com/vlucas/phpdotenv.git", + "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7", + "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7", + "shasum": "" + }, + "require": { + "ext-pcre": "*", + "graham-campbell/result-type": "^1.0.2", + "php": "^7.1.3 || ^8.0", + "phpoption/phpoption": "^1.8", + "symfony/polyfill-ctype": "^1.23", + "symfony/polyfill-mbstring": "^1.23.1", + "symfony/polyfill-php80": "^1.23.1" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "ext-filter": "*", + "phpunit/phpunit": "^7.5.20 || ^8.5.30 || ^9.5.25" + }, + "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.5-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.5.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", + "type": "tidelift" + } + ], + "time": "2022-10-16T01:01:54+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": "1.5.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9 || ^11", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.30 || ^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/1.5.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:15:36+00:00" + }, + { + "name": "fakerphp/faker", + "version": "v1.21.0", + "source": { + "type": "git", + "url": "https://github.com/FakerPHP/Faker.git", + "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/92efad6a967f0b79c499705c69b662f738cc9e4d", + "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d", + "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", + "extra": { + "branch-alias": { + "dev-main": "v1.21-dev" + } + }, + "autoload": { + "psr-4": { + "Faker\\": "src/Faker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "François Zaninotto" + } + ], + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ], + "support": { + "issues": "https://github.com/FakerPHP/Faker/issues", + "source": "https://github.com/FakerPHP/Faker/tree/v1.21.0" + }, + "time": "2022-12-13T13:54:32+00:00" + }, + { + "name": "filp/whoops", + "version": "2.15.2", + "source": { + "type": "git", + "url": "https://github.com/filp/whoops.git", + "reference": "aac9304c5ed61bf7b1b7a6064bf9806ab842ce73" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filp/whoops/zipball/aac9304c5ed61bf7b1b7a6064bf9806ab842ce73", + "reference": "aac9304c5ed61bf7b1b7a6064bf9806ab842ce73", + "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.2" + }, + "funding": [ + { + "url": "https://github.com/denis-sokolov", + "type": "github" + } + ], + "time": "2023-04-12T12: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/pint", + "version": "v1.5.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/pint.git", + "reference": "e0a8cef58b74662f27355be9cdea0e726bbac362" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/pint/zipball/e0a8cef58b74662f27355be9cdea0e726bbac362", + "reference": "e0a8cef58b74662f27355be9cdea0e726bbac362", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "ext-tokenizer": "*", + "ext-xml": "*", + "php": "^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.14.4", + "illuminate/view": "^9.51.0", + "laravel-zero/framework": "^9.2.0", + "mockery/mockery": "^1.5.1", + "nunomaduro/larastan": "^2.4.0", + "nunomaduro/termwind": "^1.15.1", + "pestphp/pest": "^1.22.4" + }, + "bin": [ + "builds/pint" + ], + "type": "project", + "autoload": { + "psr-4": { + "App\\": "app/", + "Database\\Seeders\\": "database/seeders/", + "Database\\Factories\\": "database/factories/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "An opinionated code formatter for PHP.", + "homepage": "https://laravel.com", + "keywords": [ + "format", + "formatter", + "lint", + "linter", + "php" + ], + "support": { + "issues": "https://github.com/laravel/pint/issues", + "source": "https://github.com/laravel/pint" + }, + "time": "2023-02-14T16:31:02+00:00" + }, + { + "name": "laravel/sail", + "version": "v1.22.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/sail.git", + "reference": "923e1e112b6a8598664dbb0ee79dd3137f1c9d56" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/sail/zipball/923e1e112b6a8598664dbb0ee79dd3137f1c9d56", + "reference": "923e1e112b6a8598664dbb0ee79dd3137f1c9d56", + "shasum": "" + }, + "require": { + "illuminate/console": "^8.0|^9.0|^10.0", + "illuminate/contracts": "^8.0|^9.0|^10.0", + "illuminate/support": "^8.0|^9.0|^10.0", + "php": "^8.0", + "symfony/yaml": "^6.0" + }, + "require-dev": { + "orchestra/testbench": "^6.0|^7.0|^8.0", + "phpstan/phpstan": "^1.10" + }, + "bin": [ + "bin/sail" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + }, + "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": "2023-05-04T14:52:56+00:00" + }, + { + "name": "mockery/mockery", + "version": "1.5.1", + "source": { + "type": "git", + "url": "https://github.com/mockery/mockery.git", + "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mockery/mockery/zipball/e92dcc83d5a51851baf5f5591d32cb2b16e3684e", + "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e", + "shasum": "" + }, + "require": { + "hamcrest/hamcrest-php": "^2.0.1", + "lib-pcre": ">=7.0", + "php": "^7.3 || ^8.0" + }, + "conflict": { + "phpunit/phpunit": "<8.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.5 || ^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "psr-0": { + "Mockery": "library/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com", + "homepage": "http://blog.astrumfutura.com" + }, + { + "name": "Dave Marshall", + "email": "dave.marshall@atstsolutions.co.uk", + "homepage": "http://davedevelopment.co.uk" + } + ], + "description": "Mockery is a simple yet flexible PHP mock object framework", + "homepage": "https://github.com/mockery/mockery", + "keywords": [ + "BDD", + "TDD", + "library", + "mock", + "mock objects", + "mockery", + "stub", + "test", + "test double", + "testing" + ], + "support": { + "issues": "https://github.com/mockery/mockery/issues", + "source": "https://github.com/mockery/mockery/tree/1.5.1" + }, + "time": "2022-09-07T15:32:08+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.3", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "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.3" + }, + "time": "2021-07-20T11:28:43+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.26", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", + "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.15", + "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", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.26" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-03-06T12:58:08+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.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "17d621b3aff84d0c8b62539e269e87d8d5baa76e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/17d621b3aff84d0c8b62539e269e87d8d5baa76e", + "reference": "17d621b3aff84d0c8b62539e269e87d8d5baa76e", + "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.13", + "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.8" + }, + "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": "2023-05-11T05:14:45+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "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.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:08:49+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.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.7", + "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.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:52:27+00:00" + }, + { + "name": "sebastian/diff", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "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.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-05-07T05:35:17+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.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "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.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T06:03:37+00:00" + }, + { + "name": "sebastian/global-state", + "version": "5.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "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.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-02-14T08:28:10+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.6", + "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.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:42:11+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.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:45:17+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.4.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/backtrace.git", + "reference": "ec4dd16476b802dbdc6b4467f84032837e316b8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/backtrace/zipball/ec4dd16476b802dbdc6b4467f84032837e316b8c", + "reference": "ec4dd16476b802dbdc6b4467f84032837e316b8c", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "ext-json": "*", + "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.4.0" + }, + "funding": [ + { + "url": "https://github.com/sponsors/spatie", + "type": "github" + }, + { + "url": "https://spatie.be/open-source/support-us", + "type": "other" + } + ], + "time": "2023-03-04T08:57:24+00:00" + }, + { + "name": "spatie/flare-client-php", + "version": "1.3.6", + "source": { + "type": "git", + "url": "https://github.com/spatie/flare-client-php.git", + "reference": "530ac81255af79f114344286e4275f8869c671e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/530ac81255af79f114344286e4275f8869c671e2", + "reference": "530ac81255af79f114344286e4275f8869c671e2", + "shasum": "" + }, + "require": { + "illuminate/pipeline": "^8.0|^9.0|^10.0", + "php": "^8.0", + "spatie/backtrace": "^1.2", + "symfony/http-foundation": "^5.0|^6.0", + "symfony/mime": "^5.2|^6.0", + "symfony/process": "^5.2|^6.0", + "symfony/var-dumper": "^5.2|^6.0" + }, + "require-dev": { + "dms/phpunit-arraysubset-asserts": "^0.3.0", + "pestphp/pest": "^1.20", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "spatie/phpunit-snapshot-assertions": "^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.1.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.3.6" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2023-04-12T07:57:12+00:00" + }, + { + "name": "spatie/ignition", + "version": "1.7.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/ignition.git", + "reference": "f747d83c6d7cb6229b462f3ddbb3a82dc0db0f78" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/ignition/zipball/f747d83c6d7cb6229b462f3ddbb3a82dc0db0f78", + "reference": "f747d83c6d7cb6229b462f3ddbb3a82dc0db0f78", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "php": "^8.0", + "spatie/backtrace": "^1.4", + "spatie/flare-client-php": "^1.1", + "symfony/console": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" + }, + "require-dev": { + "illuminate/cache": "^9.52", + "mockery/mockery": "^1.4", + "pestphp/pest": "^1.20", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "psr/simple-cache-implementation": "*", + "symfony/cache": "^6.2", + "symfony/process": "^5.4|^6.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": "2023-05-04T13:20:26+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": "v6.0.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "deec3a812a0305a50db8ae689b183f43d915c884" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/deec3a812a0305a50db8ae689b183f43d915c884", + "reference": "deec3a812a0305a50db8ae689b183f43d915c884", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<5.4" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "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/v6.0.19" + }, + "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-01-11T11:50:03+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "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.1" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2021-07-28T10:34:58+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "php": "^8.0.2" + }, + "platform-dev": [], + "plugin-api-version": "2.3.0" +} diff --git a/config/app.php b/config/app.php new file mode 100644 index 0000000..ef76a7e --- /dev/null +++ b/config/app.php @@ -0,0 +1,215 @@ + 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' => 'UTC', + + /* + |-------------------------------------------------------------------------- + | 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', + + /* + |-------------------------------------------------------------------------- + | Maintenance Mode Driver + |-------------------------------------------------------------------------- + | + | These configuration options determine the driver used to determine and + | manage Laravel's "maintenance mode" status. The "cache" driver will + | allow maintenance mode to be controlled across multiple machines. + | + | Supported drivers: "file", "cache" + | + */ + + 'maintenance' => [ + 'driver' => 'file', + // 'store' => 'redis', + ], + + /* + |-------------------------------------------------------------------------- + | 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([ + // 'ExampleClass' => App\Example\ExampleClass::class, + ])->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..9e4d4aa --- /dev/null +++ b/config/broadcasting.php @@ -0,0 +1,70 @@ + 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' => [ + 'host' => env('PUSHER_HOST') ?: 'api-'.env('PUSHER_APP_CLUSTER', 'mt1').'.pusher.com', + 'port' => env('PUSHER_PORT', 443), + 'scheme' => env('PUSHER_SCHEME', 'https'), + 'encrypted' => true, + 'useTLS' => env('PUSHER_SCHEME', 'https') === 'https', + ], + 'client_options' => [ + // Guzzle client options: https://docs.guzzlephp.org/en/stable/request-options.html + ], + ], + + 'ably' => [ + 'driver' => 'ably', + 'key' => env('ABLY_KEY'), + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + ], + + 'log' => [ + 'driver' => 'log', + ], + + 'null' => [ + 'driver' => 'null', + ], + + ], + +]; diff --git a/config/cache.php b/config/cache.php new file mode 100644 index 0000000..33bb295 --- /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 the APC, database, memcached, Redis, or DynamoDB cache + | stores there might be other applications using the same cache. For + | that reason, you may prefix every cache key to 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..137ad18 --- /dev/null +++ b/config/database.php @@ -0,0 +1,151 @@ + 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, + // 'encrypt' => env('DB_ENCRYPT', 'yes'), + // 'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'), + ], + + ], + + /* + |-------------------------------------------------------------------------- + | 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'), + 'username' => env('REDIS_USERNAME'), + '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'), + 'username' => env('REDIS_USERNAME'), + '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..e9d9dbd --- /dev/null +++ b/config/filesystems.php @@ -0,0 +1,76 @@ + 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 set up for each driver as an example of the required values. + | + | Supported Drivers: "local", "ftp", "sftp", "s3" + | + */ + + 'disks' => [ + + 'local' => [ + 'driver' => 'local', + 'root' => storage_path('app'), + 'throw' => false, + ], + + 'public' => [ + 'driver' => 'local', + 'root' => storage_path('app/public'), + 'url' => env('APP_URL').'/storage', + 'visibility' => 'public', + 'throw' => false, + ], + + '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), + 'throw' => 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..5aa1dbb --- /dev/null +++ b/config/logging.php @@ -0,0 +1,122 @@ + 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' => [ + 'channel' => env('LOG_DEPRECATIONS_CHANNEL', 'null'), + 'trace' => false, + ], + + /* + |-------------------------------------------------------------------------- + | 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..534395a --- /dev/null +++ b/config/mail.php @@ -0,0 +1,118 @@ + 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, + 'local_domain' => env('MAIL_EHLO_DOMAIN'), + ], + + 'ses' => [ + 'transport' => 'ses', + ], + + 'mailgun' => [ + 'transport' => 'mailgun', + ], + + 'postmark' => [ + 'transport' => 'postmark', + ], + + 'sendmail' => [ + 'transport' => 'sendmail', + 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -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..529cfdc --- /dev/null +++ b/config/sanctum.php @@ -0,0 +1,67 @@ + explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf( + '%s%s', + 'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1', + Sanctum::currentApplicationUrlWithPort() + ))), + + /* + |-------------------------------------------------------------------------- + | 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..0ace530 --- /dev/null +++ b/config/services.php @@ -0,0 +1,34 @@ + [ + 'domain' => env('MAILGUN_DOMAIN'), + 'secret' => env('MAILGUN_SECRET'), + 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'), + 'scheme' => 'https', + ], + + '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/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..41f8ae8 --- /dev/null +++ b/database/factories/UserFactory.php @@ -0,0 +1,40 @@ + + */ +class UserFactory extends Factory +{ + /** + * Define the model's default state. + * + * @return array + */ + public function definition() + { + return [ + 'name' => fake()->name(), + 'email' => fake()->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(fn (array $attributes) => [ + 'email_verified_at' => null, + ]); + } +} diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php new file mode 100644 index 0000000..cf6b776 --- /dev/null +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -0,0 +1,36 @@ +id(); + $table->string('name'); + $table->string('email')->unique(); + $table->timestamp('email_verified_at')->nullable(); + $table->string('password'); + $table->rememberToken(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('users'); + } +}; diff --git a/database/migrations/2014_10_12_100000_create_password_resets_table.php b/database/migrations/2014_10_12_100000_create_password_resets_table.php new file mode 100644 index 0000000..fcacb80 --- /dev/null +++ b/database/migrations/2014_10_12_100000_create_password_resets_table.php @@ -0,0 +1,32 @@ +string('email')->index(); + $table->string('token'); + $table->timestamp('created_at')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('password_resets'); + } +}; diff --git a/database/migrations/2019_08_19_000000_create_failed_jobs_table.php b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php new file mode 100644 index 0000000..1719198 --- /dev/null +++ b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php @@ -0,0 +1,36 @@ +id(); + $table->string('uuid')->unique(); + $table->text('connection'); + $table->text('queue'); + $table->longText('payload'); + $table->longText('exception'); + $table->timestamp('failed_at')->useCurrent(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('failed_jobs'); + } +}; diff --git a/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php new file mode 100644 index 0000000..6c81fd2 --- /dev/null +++ b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php @@ -0,0 +1,37 @@ +id(); + $table->morphs('tokenable'); + $table->string('name'); + $table->string('token', 64)->unique(); + $table->text('abilities')->nullable(); + $table->timestamp('last_used_at')->nullable(); + $table->timestamp('expires_at')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('personal_access_tokens'); + } +}; diff --git a/database/migrations/2023_05_15_102620_alter_users_table.php b/database/migrations/2023_05_15_102620_alter_users_table.php new file mode 100644 index 0000000..3dc6edb --- /dev/null +++ b/database/migrations/2023_05_15_102620_alter_users_table.php @@ -0,0 +1,32 @@ +boolean('admin')->after('email')->default(false); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('users', function (Blueprint $table) { + $table->dropColumn('admin'); + }); + } +}; diff --git a/database/migrations/2023_05_16_062924_alter_users_table2.php b/database/migrations/2023_05_16_062924_alter_users_table2.php new file mode 100644 index 0000000..272d3f7 --- /dev/null +++ b/database/migrations/2023_05_16_062924_alter_users_table2.php @@ -0,0 +1,46 @@ +string('telephone', 50)->nullable(true); + $table->string('surname', 255)->nullable(true); + $table->string('name_man', 255)->nullable(true); + $table->string('surname2', 255)->nullable(true); + $table->boolean('is_worker')->default(false); + $table->boolean('is_lookin')->default(true); + $table->boolean('is_message')->default(true); + $table->boolean('is_public')->default(true); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('users', function (Blueprint $table) { + $table->dropColumn('telephone'); + $table->dropColumn('surname'); + $table->dropColumn('name_man'); + $table->dropColumn('surname2'); + $table->dropColumn('is_worker'); + $table->dropColumn('is_message'); + $table->dropColumn('is_lookin'); + $table->dropColumn('is_public'); + }); + } +}; diff --git a/database/migrations/2023_05_16_080855_create_workers_table.php b/database/migrations/2023_05_16_080855_create_workers_table.php new file mode 100644 index 0000000..4a8bfe1 --- /dev/null +++ b/database/migrations/2023_05_16_080855_create_workers_table.php @@ -0,0 +1,55 @@ +id(); + $table->biginteger('user_id')->nullable(false); + $table->integer('status_work')->default(1); + $table->integer('position_work')->default(1); + $table->string('telephone', 50)->nullable(); + $table->string('telephone2', 50)->nullable(); + $table->string('email', 100)->nullable(); + $table->integer('persent_anketa')->default(10); + $table->string('photo', 255)->nullable(); + $table->boolean('email_data')->default(false); + $table->integer('status_profile')->default(1); + $table->integer('old_year')->nullable(); + $table->string('experience', 100)->defalut('да'); + $table->string('en_is', 100)->defalut('да'); + $table->string('interpassport', 100)->defalut('да'); + $table->string('mk', 100)->defalut('да'); + $table->string('vvp', 100)->defalut('да'); + $table->string('vlm', 100)->defalut('да'); + $table->string('reka_diplom', 100)->defalut('да'); + $table->string('more_diplom', 100)->defalut('да'); + $table->string('mpss', 100)->defalut('да'); + $table->string('tanker', 100)->defalut('да'); + $table->string('gmssb',100)->defalut('да'); + $table->string('resume', 255)->nullable(); + $table->integer('sort')->defalut(1); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('workers'); + } +}; diff --git a/database/migrations/2023_05_16_080945_create_employers_table.php b/database/migrations/2023_05_16_080945_create_employers_table.php new file mode 100644 index 0000000..1bd6172 --- /dev/null +++ b/database/migrations/2023_05_16_080945_create_employers_table.php @@ -0,0 +1,40 @@ +id(); + $table->biginteger('user_id')->nullable(false); + $table->string('name_company', 255)->nullable(false); + $table->string('telephone', 50)->nullable(); + $table->string('email', 255)->nullable(); + $table->string('logo', 255)->nullable(); + $table->float('rate')->default(0); + $table->text('text')->nullable(); + $table->string('city', 255)->nullable(); + $table->integer('sort')->default(1); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('employers'); + } +}; diff --git a/database/migrations/2023_05_16_081048_create_ad_employers_table.php b/database/migrations/2023_05_16_081048_create_ad_employers_table.php new file mode 100644 index 0000000..dccccd8 --- /dev/null +++ b/database/migrations/2023_05_16_081048_create_ad_employers_table.php @@ -0,0 +1,39 @@ +id(); + $table->biginteger('employer_id')->nullable(false); + $table->integer('category_id')->default(1); + $table->string('telephone', 50)->nullable(); + $table->string('email', 255)->nullable(); + $table->string('salary', 255)->nullable(); + $table->text('text')->nullable(); + $table->string('city', 255)->nullable(); + $table->integer('sort')->default(1); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('ad_employers'); + } +}; diff --git a/database/migrations/2023_05_16_081113_create_categories_table.php b/database/migrations/2023_05_16_081113_create_categories_table.php new file mode 100644 index 0000000..b249b7f --- /dev/null +++ b/database/migrations/2023_05_16_081113_create_categories_table.php @@ -0,0 +1,32 @@ +id(); + $table->string('name', 255)->nullable(false); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('categories'); + } +}; diff --git a/database/migrations/2023_05_16_081142_create_group_users_table.php b/database/migrations/2023_05_16_081142_create_group_users_table.php new file mode 100644 index 0000000..e316604 --- /dev/null +++ b/database/migrations/2023_05_16_081142_create_group_users_table.php @@ -0,0 +1,32 @@ +id(); + $table->string('name_group', 255)->nullable(false); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('group_users'); + } +}; diff --git a/database/migrations/2023_05_16_081213_create_job_titles_table.php b/database/migrations/2023_05_16_081213_create_job_titles_table.php new file mode 100644 index 0000000..4bc7a28 --- /dev/null +++ b/database/migrations/2023_05_16_081213_create_job_titles_table.php @@ -0,0 +1,32 @@ +id(); + $table->string('name', 255)->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('job_titles'); + } +}; diff --git a/database/migrations/2023_05_16_081237_create_messages_table.php b/database/migrations/2023_05_16_081237_create_messages_table.php new file mode 100644 index 0000000..fccb84e --- /dev/null +++ b/database/migrations/2023_05_16_081237_create_messages_table.php @@ -0,0 +1,34 @@ +id(); + $table->bigInteger('user_id')->nullable(false); + $table->bigInteger('to_user_id')->nullable(false); + $table->text('text')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('messages'); + } +}; diff --git a/database/migrations/2023_05_16_081308_create_static_workers_table.php b/database/migrations/2023_05_16_081308_create_static_workers_table.php new file mode 100644 index 0000000..9f61a12 --- /dev/null +++ b/database/migrations/2023_05_16_081308_create_static_workers_table.php @@ -0,0 +1,35 @@ +id(); + $table->bigInteger('user_id')->nullable(false); + $table->integer('lookin')->default(0); + $table->string('month_year', 255)->nullable(); + $table->integer('message')->default(0); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('static_workers'); + } +}; diff --git a/database/migrations/2023_05_16_081330_create_static_ads_table.php b/database/migrations/2023_05_16_081330_create_static_ads_table.php new file mode 100644 index 0000000..567efa7 --- /dev/null +++ b/database/migrations/2023_05_16_081330_create_static_ads_table.php @@ -0,0 +1,35 @@ +id(); + $table->bigInteger('ad_employer_id')->nullable(false); + $table->integer('lookin')->default(0); + $table->string('month_year', 255)->nullable(); + $table->integer('message')->default(0); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('static_ads'); + } +}; diff --git a/database/migrations/2023_05_16_092746_alter_ad_jobs_table.php b/database/migrations/2023_05_16_092746_alter_ad_jobs_table.php new file mode 100644 index 0000000..11167d5 --- /dev/null +++ b/database/migrations/2023_05_16_092746_alter_ad_jobs_table.php @@ -0,0 +1,33 @@ +id(); + $table->bigInteger('ad_employer_id')->nullable(false); + $table->bigInteger('job_title_id')->nullable(false); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('ad_jobs'); + } +}; diff --git a/database/migrations/2023_05_16_092836_alter_group_work_table.php b/database/migrations/2023_05_16_092836_alter_group_work_table.php new file mode 100644 index 0000000..02ac25a --- /dev/null +++ b/database/migrations/2023_05_16_092836_alter_group_work_table.php @@ -0,0 +1,33 @@ +id(); + $table->bigInteger('group_user_id')->nullable(false); + $table->bigInteger('user_id')->nullable(false); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('group_works'); + } +}; diff --git a/database/migrations/2023_05_17_090650_alter_group_users_table.php b/database/migrations/2023_05_17_090650_alter_group_users_table.php new file mode 100644 index 0000000..de1aaa6 --- /dev/null +++ b/database/migrations/2023_05_17_090650_alter_group_users_table.php @@ -0,0 +1,32 @@ +bigInteger('user_id')->nullable(false); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('group_users', function (Blueprint $table) { + $table->dropColumn('user_id'); + }); + } +}; diff --git a/database/migrations/2023_05_17_090749_alter_messages_table.php b/database/migrations/2023_05_17_090749_alter_messages_table.php new file mode 100644 index 0000000..624fafa --- /dev/null +++ b/database/migrations/2023_05_17_090749_alter_messages_table.php @@ -0,0 +1,34 @@ +string('title', 255)->nullable(true); + $table->string('file', 255)->nullable(true); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('messages', function (Blueprint $table) { + $table->dropColumn('title'); + $table->dropColumn('file'); + }); + } +}; diff --git a/database/migrations/2023_05_17_090923_alter_employers_table.php b/database/migrations/2023_05_17_090923_alter_employers_table.php new file mode 100644 index 0000000..a212113 --- /dev/null +++ b/database/migrations/2023_05_17_090923_alter_employers_table.php @@ -0,0 +1,36 @@ +string('address', 255)->nullable(true); + $table->string('map', 255)->nullable(true); + $table->string('site', 255)->nullable(true); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('employers', function (Blueprint $table) { + $table->dropColumn('address'); + $table->dropColumn('map'); + $table->dropColumn('site'); + }); + } +}; diff --git a/database/migrations/2023_05_17_090944_alter_workers_table.php b/database/migrations/2023_05_17_090944_alter_workers_table.php new file mode 100644 index 0000000..cb46c2d --- /dev/null +++ b/database/migrations/2023_05_17_090944_alter_workers_table.php @@ -0,0 +1,36 @@ +string('address', 255)->nullable(true); + $table->string('city', 255)->nullable(true); + $table->text('text')->nullable(true); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('workers', function (Blueprint $table) { + $table->dropColumn('address'); + $table->dropColumn('city'); + $table->dropColumn('text'); + }); + } +}; diff --git a/database/migrations/2023_05_17_095512_alter_users_table.php b/database/migrations/2023_05_17_095512_alter_users_table.php new file mode 100644 index 0000000..cb3e2cf --- /dev/null +++ b/database/migrations/2023_05_17_095512_alter_users_table.php @@ -0,0 +1,36 @@ +boolean('is_remove')->default(false); + $table->boolean('is_ban')->default(false); + $table->boolean('is_new')->default(true); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('users', function (Blueprint $table) { + $table->dropColumn('is_remove'); + $table->dropColumn('is_ban'); + $table->dropColumn('is_new'); + }); + } +}; diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php new file mode 100644 index 0000000..76d96dc --- /dev/null +++ b/database/seeders/DatabaseSeeder.php @@ -0,0 +1,24 @@ +create(); + + // \App\Models\User::factory()->create([ + // 'name' => 'Test User', + // 'email' => 'test@example.com', + // ]); + } +} diff --git a/index.html b/index.html new file mode 100755 index 0000000..db2c2e1 --- /dev/null +++ b/index.html @@ -0,0 +1,21 @@ + + + + + + + + +
+
+ + + + + + +
Welcome !
Site rekamore.nologostudio.ru just created.

Real content coming soon.
+ © ISPmanager control panel +
+ + diff --git a/lang/en/auth.php b/lang/en/auth.php new file mode 100644 index 0000000..6598e2c --- /dev/null +++ b/lang/en/auth.php @@ -0,0 +1,20 @@ + 'These credentials do not match our records.', + 'password' => 'The provided password is incorrect.', + 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', + +]; diff --git a/lang/en/pagination.php b/lang/en/pagination.php new file mode 100644 index 0000000..d481411 --- /dev/null +++ b/lang/en/pagination.php @@ -0,0 +1,19 @@ + '« Previous', + 'next' => 'Next »', + +]; diff --git a/lang/en/passwords.php b/lang/en/passwords.php new file mode 100644 index 0000000..2345a56 --- /dev/null +++ b/lang/en/passwords.php @@ -0,0 +1,22 @@ + 'Your password has been reset!', + 'sent' => 'We have emailed your password reset link!', + 'throttled' => 'Please wait before retrying.', + 'token' => 'This password reset token is invalid.', + 'user' => "We can't find a user with that email address.", + +]; diff --git a/lang/en/validation.php b/lang/en/validation.php new file mode 100644 index 0000000..70407c9 --- /dev/null +++ b/lang/en/validation.php @@ -0,0 +1,184 @@ + 'The :attribute must be accepted.', + 'accepted_if' => 'The :attribute must be accepted when :other is :value.', + 'active_url' => 'The :attribute is not a valid URL.', + 'after' => 'The :attribute must be a date after :date.', + 'after_or_equal' => 'The :attribute must be a date after or equal to :date.', + 'alpha' => 'The :attribute must only contain letters.', + 'alpha_dash' => 'The :attribute must only contain letters, numbers, dashes and underscores.', + 'alpha_num' => 'The :attribute must only contain letters and numbers.', + 'array' => 'The :attribute must be an array.', + 'ascii' => 'The :attribute must only contain single-byte alphanumeric characters and symbols.', + 'before' => 'The :attribute must be a date before :date.', + 'before_or_equal' => 'The :attribute must be a date before or equal to :date.', + 'between' => [ + 'array' => 'The :attribute must have between :min and :max items.', + 'file' => 'The :attribute must be between :min and :max kilobytes.', + 'numeric' => 'The :attribute must be between :min and :max.', + 'string' => 'The :attribute must be between :min and :max characters.', + ], + 'boolean' => 'The :attribute field must be true or false.', + 'confirmed' => 'The :attribute confirmation does not match.', + 'current_password' => 'The password is incorrect.', + 'date' => 'The :attribute is not a valid date.', + 'date_equals' => 'The :attribute must be a date equal to :date.', + 'date_format' => 'The :attribute does not match the format :format.', + 'decimal' => 'The :attribute must have :decimal decimal places.', + 'declined' => 'The :attribute must be declined.', + 'declined_if' => 'The :attribute must be declined when :other is :value.', + 'different' => 'The :attribute and :other must be different.', + 'digits' => 'The :attribute must be :digits digits.', + 'digits_between' => 'The :attribute must be between :min and :max digits.', + 'dimensions' => 'The :attribute has invalid image dimensions.', + 'distinct' => 'The :attribute field has a duplicate value.', + 'doesnt_end_with' => 'The :attribute may not end with one of the following: :values.', + 'doesnt_start_with' => 'The :attribute may not start with one of the following: :values.', + 'email' => 'The :attribute must be a valid email address.', + 'ends_with' => 'The :attribute must end with one of the following: :values.', + 'enum' => 'The selected :attribute is invalid.', + 'exists' => 'The selected :attribute is invalid.', + 'file' => 'The :attribute must be a file.', + 'filled' => 'The :attribute field must have a value.', + 'gt' => [ + 'array' => 'The :attribute must have more than :value items.', + 'file' => 'The :attribute must be greater than :value kilobytes.', + 'numeric' => 'The :attribute must be greater than :value.', + 'string' => 'The :attribute must be greater than :value characters.', + ], + 'gte' => [ + 'array' => 'The :attribute must have :value items or more.', + 'file' => 'The :attribute must be greater than or equal to :value kilobytes.', + 'numeric' => 'The :attribute must be greater than or equal to :value.', + 'string' => 'The :attribute must be greater than or equal to :value characters.', + ], + 'image' => 'The :attribute must be an image.', + 'in' => 'The selected :attribute is invalid.', + 'in_array' => 'The :attribute field does not exist in :other.', + 'integer' => 'The :attribute must be an integer.', + 'ip' => 'The :attribute must be a valid IP address.', + 'ipv4' => 'The :attribute must be a valid IPv4 address.', + 'ipv6' => 'The :attribute must be a valid IPv6 address.', + 'json' => 'The :attribute must be a valid JSON string.', + 'lowercase' => 'The :attribute must be lowercase.', + 'lt' => [ + 'array' => 'The :attribute must have less than :value items.', + 'file' => 'The :attribute must be less than :value kilobytes.', + 'numeric' => 'The :attribute must be less than :value.', + 'string' => 'The :attribute must be less than :value characters.', + ], + 'lte' => [ + 'array' => 'The :attribute must not have more than :value items.', + 'file' => 'The :attribute must be less than or equal to :value kilobytes.', + 'numeric' => 'The :attribute must be less than or equal to :value.', + 'string' => 'The :attribute must be less than or equal to :value characters.', + ], + 'mac_address' => 'The :attribute must be a valid MAC address.', + 'max' => [ + 'array' => 'The :attribute must not have more than :max items.', + 'file' => 'The :attribute must not be greater than :max kilobytes.', + 'numeric' => 'The :attribute must not be greater than :max.', + 'string' => 'The :attribute must not be greater than :max characters.', + ], + 'max_digits' => 'The :attribute must not have more than :max digits.', + 'mimes' => 'The :attribute must be a file of type: :values.', + 'mimetypes' => 'The :attribute must be a file of type: :values.', + 'min' => [ + 'array' => 'The :attribute must have at least :min items.', + 'file' => 'The :attribute must be at least :min kilobytes.', + 'numeric' => 'The :attribute must be at least :min.', + 'string' => 'The :attribute must be at least :min characters.', + ], + 'min_digits' => 'The :attribute must have at least :min digits.', + 'missing' => 'The :attribute field must be missing.', + 'missing_if' => 'The :attribute field must be missing when :other is :value.', + 'missing_unless' => 'The :attribute field must be missing unless :other is :value.', + 'missing_with' => 'The :attribute field must be missing when :values is present.', + 'missing_with_all' => 'The :attribute field must be missing when :values are present.', + 'multiple_of' => 'The :attribute must be a multiple of :value.', + 'not_in' => 'The selected :attribute is invalid.', + 'not_regex' => 'The :attribute format is invalid.', + 'numeric' => 'The :attribute must be a number.', + 'password' => [ + 'letters' => 'The :attribute must contain at least one letter.', + 'mixed' => 'The :attribute must contain at least one uppercase and one lowercase letter.', + 'numbers' => 'The :attribute must contain at least one number.', + 'symbols' => 'The :attribute must contain at least one symbol.', + 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', + ], + 'present' => 'The :attribute field must be present.', + 'prohibited' => 'The :attribute field is prohibited.', + 'prohibited_if' => 'The :attribute field is prohibited when :other is :value.', + 'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.', + 'prohibits' => 'The :attribute field prohibits :other from being present.', + 'regex' => 'The :attribute format is invalid.', + 'required' => 'The :attribute field is required.', + 'required_array_keys' => 'The :attribute field must contain entries for: :values.', + 'required_if' => 'The :attribute field is required when :other is :value.', + 'required_if_accepted' => 'The :attribute field is required when :other is accepted.', + 'required_unless' => 'The :attribute field is required unless :other is in :values.', + 'required_with' => 'The :attribute field is required when :values is present.', + 'required_with_all' => 'The :attribute field is required when :values are present.', + 'required_without' => 'The :attribute field is required when :values is not present.', + 'required_without_all' => 'The :attribute field is required when none of :values are present.', + 'same' => 'The :attribute and :other must match.', + 'size' => [ + 'array' => 'The :attribute must contain :size items.', + 'file' => 'The :attribute must be :size kilobytes.', + 'numeric' => 'The :attribute must be :size.', + 'string' => 'The :attribute must be :size characters.', + ], + 'starts_with' => 'The :attribute must start with one of the following: :values.', + 'string' => 'The :attribute must be a string.', + 'timezone' => 'The :attribute must be a valid timezone.', + 'unique' => 'The :attribute has already been taken.', + 'uploaded' => 'The :attribute failed to upload.', + 'uppercase' => 'The :attribute must be uppercase.', + 'url' => 'The :attribute must be a valid URL.', + 'ulid' => 'The :attribute must be a valid ULID.', + 'uuid' => 'The :attribute must be a valid UUID.', + + /* + |-------------------------------------------------------------------------- + | Custom Validation Language Lines + |-------------------------------------------------------------------------- + | + | Here you may specify custom validation messages for attributes using the + | convention "attribute.rule" to name the lines. This makes it quick to + | specify a specific custom language line for a given attribute rule. + | + */ + + 'custom' => [ + 'attribute-name' => [ + 'rule-name' => 'custom-message', + ], + ], + + /* + |-------------------------------------------------------------------------- + | Custom Validation Attributes + |-------------------------------------------------------------------------- + | + | The following language lines are used to swap our attribute placeholder + | with something more reader friendly such as "E-Mail Address" instead + | of "email". This simply helps us make our message more expressive. + | + */ + + 'attributes' => [], + +]; diff --git a/package.json b/package.json new file mode 100644 index 0000000..0b32ba6 --- /dev/null +++ b/package.json @@ -0,0 +1,14 @@ +{ + "private": true, + "scripts": { + "dev": "vite", + "build": "vite build" + }, + "devDependencies": { + "axios": "^1.1.2", + "laravel-vite-plugin": "^0.7.2", + "lodash": "^4.17.19", + "postcss": "^8.1.14", + "vite": "^4.0.0" + } +} diff --git a/phpunit.xml b/phpunit.xml new file mode 100644 index 0000000..2ac86a1 --- /dev/null +++ b/phpunit.xml @@ -0,0 +1,31 @@ + + + + + ./tests/Unit + + + ./tests/Feature + + + + + ./app + + + + + + + + + + + + + + diff --git a/public/.htaccess b/public/.htaccess new file mode 100644 index 0000000..3aec5e2 --- /dev/null +++ b/public/.htaccess @@ -0,0 +1,21 @@ + + + Options -MultiViews -Indexes + + + RewriteEngine On + + # Handle Authorization Header + RewriteCond %{HTTP:Authorization} . + RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] + + # Redirect Trailing Slashes If Not A Folder... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_URI} (.+)/$ + RewriteRule ^ %1 [L,R=301] + + # Send Requests To Front Controller... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule ^ index.php [L] + diff --git a/public/assets/css/tailwind.css b/public/assets/css/tailwind.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/public/assets/css/tailwind.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/public/assets/css/tailwind.output.css b/public/assets/css/tailwind.output.css new file mode 100644 index 0000000..b174bcd --- /dev/null +++ b/public/assets/css/tailwind.output.css @@ -0,0 +1 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none;padding:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #d5d6d7}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#a0aec0}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#a0aec0}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:#a0aec0}input::placeholder,textarea::placeholder{color:#a0aec0}[role=button],button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}.form-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#e2e8f0;border-width:1px;border-radius:.25rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-input::-moz-placeholder{color:#9e9e9e;opacity:1}.form-input:-ms-input-placeholder{color:#9e9e9e;opacity:1}.form-input::-ms-input-placeholder{color:#9e9e9e;opacity:1}.form-input::placeholder{color:#9e9e9e;opacity:1}.form-input:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.form-textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#e2e8f0;border-width:1px;border-radius:.25rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-textarea::-moz-placeholder{color:#9e9e9e;opacity:1}.form-textarea:-ms-input-placeholder{color:#9e9e9e;opacity:1}.form-textarea::-ms-input-placeholder{color:#9e9e9e;opacity:1}.form-textarea::placeholder{color:#9e9e9e;opacity:1}.form-textarea:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.form-multiselect{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#e2e8f0;border-width:1px;border-radius:.25rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-multiselect:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.form-select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23a0aec0'%3E%3Cpath d='M15.3 9.3a1 1 0 011.4 1.4l-4 4a1 1 0 01-1.4 0l-4-4a1 1 0 011.4-1.4l3.3 3.29 3.3-3.3z'/%3E%3C/svg%3E");-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;background-repeat:no-repeat;background-color:#fff;border-color:#e2e8f0;border-width:1px;border-radius:.25rem;padding:.5rem 2.5rem .5rem .75rem;font-size:1rem;line-height:1.5;background-position:right .5rem center;background-size:1.5em 1.5em}.form-select::-ms-expand{color:#a0aec0;border:none}@media not print{.form-select::-ms-expand{display:none}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.form-select{padding-right:.75rem}}.form-select:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.form-checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;flex-shrink:0;height:1em;width:1em;color:#4299e1;background-color:#fff;border-color:#e2e8f0;border-width:1px;border-radius:.25rem}.form-checkbox:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.707 7.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4a1 1 0 00-1.414-1.414L7 8.586 5.707 7.293z'/%3E%3C/svg%3E");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}@media not print{.form-checkbox::-ms-check{border-width:1px;color:transparent;background:inherit;border-color:inherit;border-radius:inherit}}.form-checkbox:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.form-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;flex-shrink:0;border-radius:100%;height:1em;width:1em;color:#4299e1;background-color:#fff;border-color:#e2e8f0;border-width:1px}.form-radio:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}@media not print{.form-radio::-ms-check{border-width:1px;color:transparent;background:inherit;border-color:inherit;border-radius:inherit}}.form-radio:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.5rem*var(--space-y-reverse))}.space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.75rem*var(--space-x-reverse));margin-left:calc(0.75rem*(1 - var(--space-x-reverse)))}.space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1rem*var(--space-y-reverse))}.space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.5rem*var(--space-x-reverse));margin-left:calc(1.5rem*(1 - var(--space-x-reverse)))}.divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(1px*var(--divide-y-reverse))}.theme-dark .dark\:divide-gray-700>:not(template)~:not(template){--divide-opacity:1;border-color:#24262d;border-color:rgba(36,38,45,var(--divide-opacity))}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.bg-gray-50{--bg-opacity:1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.bg-red-100{--bg-opacity:1;background-color:#fde8e8;background-color:rgba(253,232,232,var(--bg-opacity))}.bg-red-600{--bg-opacity:1;background-color:#e02424;background-color:rgba(224,36,36,var(--bg-opacity))}.bg-orange-100{--bg-opacity:1;background-color:#feecdc;background-color:rgba(254,236,220,var(--bg-opacity))}.bg-green-100{--bg-opacity:1;background-color:#def7ec;background-color:rgba(222,247,236,var(--bg-opacity))}.bg-teal-100{--bg-opacity:1;background-color:#d5f5f6;background-color:rgba(213,245,246,var(--bg-opacity))}.bg-teal-500{--bg-opacity:1;background-color:#0694a2;background-color:rgba(6,148,162,var(--bg-opacity))}.bg-teal-600{--bg-opacity:1;background-color:#047481;background-color:rgba(4,116,129,var(--bg-opacity))}.bg-blue-100{--bg-opacity:1;background-color:#e1effe;background-color:rgba(225,239,254,var(--bg-opacity))}.bg-blue-500{--bg-opacity:1;background-color:#3f83f8;background-color:rgba(63,131,248,var(--bg-opacity))}.bg-blue-600{--bg-opacity:1;background-color:#1c64f2;background-color:rgba(28,100,242,var(--bg-opacity))}.bg-purple-600{--bg-opacity:1;background-color:#7e3af2;background-color:rgba(126,58,242,var(--bg-opacity))}.hover\:bg-gray-100:hover{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.hover\:bg-purple-700:hover{--bg-opacity:1;background-color:#6c2bd9;background-color:rgba(108,43,217,var(--bg-opacity))}.focus\:bg-white:focus{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.active\:bg-transparent:active{background-color:transparent}.active\:bg-purple-600:active{--bg-opacity:1;background-color:#7e3af2;background-color:rgba(126,58,242,var(--bg-opacity))}.theme-dark .dark\:bg-gray-700{--bg-opacity:1;background-color:#24262d;background-color:rgba(36,38,45,var(--bg-opacity))}.theme-dark .dark\:bg-gray-800{--bg-opacity:1;background-color:#1a1c23;background-color:rgba(26,28,35,var(--bg-opacity))}.theme-dark .dark\:bg-gray-900{--bg-opacity:1;background-color:#121317;background-color:rgba(18,19,23,var(--bg-opacity))}.theme-dark .dark\:bg-red-600{--bg-opacity:1;background-color:#e02424;background-color:rgba(224,36,36,var(--bg-opacity))}.theme-dark .dark\:bg-red-700{--bg-opacity:1;background-color:#c81e1e;background-color:rgba(200,30,30,var(--bg-opacity))}.theme-dark .dark\:bg-orange-500{--bg-opacity:1;background-color:#ff5a1f;background-color:rgba(255,90,31,var(--bg-opacity))}.theme-dark .dark\:bg-orange-600{--bg-opacity:1;background-color:#d03801;background-color:rgba(208,56,1,var(--bg-opacity))}.theme-dark .dark\:bg-green-500{--bg-opacity:1;background-color:#0e9f6e;background-color:rgba(14,159,110,var(--bg-opacity))}.theme-dark .dark\:bg-green-700{--bg-opacity:1;background-color:#046c4e;background-color:rgba(4,108,78,var(--bg-opacity))}.theme-dark .dark\:bg-teal-500{--bg-opacity:1;background-color:#0694a2;background-color:rgba(6,148,162,var(--bg-opacity))}.theme-dark .dark\:bg-blue-500{--bg-opacity:1;background-color:#3f83f8;background-color:rgba(63,131,248,var(--bg-opacity))}.theme-dark .dark\:hover\:bg-gray-800:hover{--bg-opacity:1;background-color:#1a1c23;background-color:rgba(26,28,35,var(--bg-opacity))}.bg-opacity-50{--bg-opacity:0.5}.border-transparent{border-color:transparent}.border-white{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.border-gray-100{--border-opacity:1;border-color:#f4f5f7;border-color:rgba(244,245,247,var(--border-opacity))}.border-gray-300{--border-opacity:1;border-color:#d5d6d7;border-color:rgba(213,214,215,var(--border-opacity))}.border-red-600{--border-opacity:1;border-color:#e02424;border-color:rgba(224,36,36,var(--border-opacity))}.border-green-600{--border-opacity:1;border-color:#057a55;border-color:rgba(5,122,85,var(--border-opacity))}.border-purple-600{--border-opacity:1;border-color:#7e3af2;border-color:rgba(126,58,242,var(--border-opacity))}.focus\:border-gray-500:focus{--border-opacity:1;border-color:#707275;border-color:rgba(112,114,117,var(--border-opacity))}.focus\:border-red-400:focus{--border-opacity:1;border-color:#f98080;border-color:rgba(249,128,128,var(--border-opacity))}.focus\:border-green-400:focus{--border-opacity:1;border-color:#31c48d;border-color:rgba(49,196,141,var(--border-opacity))}.focus\:border-purple-300:focus{--border-opacity:1;border-color:#cabffd;border-color:rgba(202,191,253,var(--border-opacity))}.focus\:border-purple-400:focus{--border-opacity:1;border-color:#ac94fa;border-color:rgba(172,148,250,var(--border-opacity))}.hover\:border-gray-500:hover{--border-opacity:1;border-color:#707275;border-color:rgba(112,114,117,var(--border-opacity))}.theme-dark .dark\:border-gray-600{--border-opacity:1;border-color:#4c4f52;border-color:rgba(76,79,82,var(--border-opacity))}.theme-dark .dark\:border-gray-700{--border-opacity:1;border-color:#24262d;border-color:rgba(36,38,45,var(--border-opacity))}.theme-dark .dark\:border-gray-800{--border-opacity:1;border-color:#1a1c23;border-color:rgba(26,28,35,var(--border-opacity))}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-full{border-radius:9999px}.rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.rounded-t-lg{border-top-left-radius:.5rem}.rounded-r-lg,.rounded-t-lg{border-top-right-radius:.5rem}.rounded-r-lg{border-bottom-right-radius:.5rem}.rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-tr-lg{border-top-right-radius:.5rem}.rounded-br-lg{border-bottom-right-radius:.5rem}.border-0{border-width:0}.border-2{border-width:2px}.border{border-width:1px}.border-r-0{border-right-width:0}.border-t{border-top-width:1px}.border-b{border-bottom-width:1px}.cursor-not-allowed{cursor:not-allowed}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.theme-dark .dark\:block{display:block}.theme-dark .dark\:hidden{display:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-12{height:3rem}.h-32{height:8rem}.h-full{height:100%}.h-screen{height:100vh}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-6xl{font-size:4rem}.leading-5{line-height:1.25rem}.leading-none{line-height:1}.leading-tight{line-height:1.25}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.my-8{margin-top:2rem;margin-bottom:2rem}.mx-auto{margin-left:auto;margin-right:auto}.-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.mt-1{margin-top:.25rem}.mr-1{margin-right:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.mb-2{margin-bottom:.5rem}.ml-2{margin-left:.5rem}.mr-3{margin-right:.75rem}.ml-3{margin-left:.75rem}.mt-4{margin-top:1rem}.mr-4{margin-right:1rem}.mb-4{margin-bottom:1rem}.ml-4{margin-left:1rem}.mr-5{margin-right:1.25rem}.mt-6{margin-top:1.5rem}.mr-6{margin-right:1.5rem}.mb-6{margin-bottom:1.5rem}.ml-6{margin-left:1.5rem}.mt-8{margin-top:2rem}.mb-8{margin-bottom:2rem}.mt-16{margin-top:4rem}.-mr-1{margin-right:-.25rem}.-ml-1{margin-left:-.25rem}.-mb-4{margin-bottom:-1rem}.max-h-0{max-height:0}.max-h-xl{max-height:36rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.min-h-screen{min-height:100vh}.min-w-0{min-width:0}.object-cover{-o-object-fit:cover;object-fit:cover}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-100{opacity:1}.focus\:outline-none:focus{outline:0}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.pr-2{padding-right:.5rem}.pl-2{padding-left:.5rem}.pl-8{padding-left:2rem}.pr-10{padding-right:2.5rem}.pl-10{padding-left:2.5rem}.pb-16{padding-bottom:4rem}.pr-20{padding-right:5rem}.pl-20{padding-left:5rem}.placeholder-gray-600::-moz-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.placeholder-gray-600:-ms-input-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.placeholder-gray-600::-ms-input-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.placeholder-gray-600::placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.focus\:placeholder-gray-500:focus::-moz-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.focus\:placeholder-gray-500:focus:-ms-input-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.focus\:placeholder-gray-500:focus::-ms-input-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.focus\:placeholder-gray-500:focus::placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.theme-dark .dark\:placeholder-gray-500::-moz-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.theme-dark .dark\:placeholder-gray-500:-ms-input-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.theme-dark .dark\:placeholder-gray-500::-ms-input-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.theme-dark .dark\:placeholder-gray-500::placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.theme-dark .dark\:focus\:placeholder-gray-600:focus::-moz-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.theme-dark .dark\:focus\:placeholder-gray-600:focus:-ms-input-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.theme-dark .dark\:focus\:placeholder-gray-600:focus::-ms-input-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.theme-dark .dark\:focus\:placeholder-gray-600:focus::placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{right:0;left:0}.inset-0,.inset-y-0{top:0;bottom:0}.top-0{top:0}.right-0{right:0}.left-0{left:0}.shadow-xs{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.shadow-inner{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.fill-current{fill:currentColor}.text-left{text-align:left}.text-center{text-align:center}.text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#9e9e9e;color:rgba(158,158,158,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#707275;color:rgba(112,114,117,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#24262d;color:rgba(36,38,45,var(--text-opacity))}.text-gray-800{--text-opacity:1;color:#1a1c23;color:rgba(26,28,35,var(--text-opacity))}.text-red-600{--text-opacity:1;color:#e02424;color:rgba(224,36,36,var(--text-opacity))}.text-red-700{--text-opacity:1;color:#c81e1e;color:rgba(200,30,30,var(--text-opacity))}.text-orange-500{--text-opacity:1;color:#ff5a1f;color:rgba(255,90,31,var(--text-opacity))}.text-orange-700{--text-opacity:1;color:#b43403;color:rgba(180,52,3,var(--text-opacity))}.text-green-500{--text-opacity:1;color:#0e9f6e;color:rgba(14,159,110,var(--text-opacity))}.text-green-600{--text-opacity:1;color:#057a55;color:rgba(5,122,85,var(--text-opacity))}.text-green-700{--text-opacity:1;color:#046c4e;color:rgba(4,108,78,var(--text-opacity))}.text-teal-500{--text-opacity:1;color:#0694a2;color:rgba(6,148,162,var(--text-opacity))}.text-blue-500{--text-opacity:1;color:#3f83f8;color:rgba(63,131,248,var(--text-opacity))}.text-purple-100{--text-opacity:1;color:#edebfe;color:rgba(237,235,254,var(--text-opacity))}.text-purple-200{--text-opacity:1;color:#dcd7fe;color:rgba(220,215,254,var(--text-opacity))}.text-purple-600{--text-opacity:1;color:#7e3af2;color:rgba(126,58,242,var(--text-opacity))}.focus-within\:text-purple-500:focus-within{--text-opacity:1;color:#9061f9;color:rgba(144,97,249,var(--text-opacity))}.focus-within\:text-purple-600:focus-within{--text-opacity:1;color:#7e3af2;color:rgba(126,58,242,var(--text-opacity))}.hover\:text-gray-700:hover{--text-opacity:1;color:#24262d;color:rgba(36,38,45,var(--text-opacity))}.hover\:text-gray-800:hover{--text-opacity:1;color:#1a1c23;color:rgba(26,28,35,var(--text-opacity))}.active\:text-gray-500:active{--text-opacity:1;color:#707275;color:rgba(112,114,117,var(--text-opacity))}.theme-dark .dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.theme-dark .dark\:text-gray-100{--text-opacity:1;color:#f4f5f7;color:rgba(244,245,247,var(--text-opacity))}.theme-dark .dark\:text-gray-200{--text-opacity:1;color:#e5e7eb;color:rgba(229,231,235,var(--text-opacity))}.theme-dark .dark\:text-gray-300{--text-opacity:1;color:#d5d6d7;color:rgba(213,214,215,var(--text-opacity))}.theme-dark .dark\:text-gray-400{--text-opacity:1;color:#9e9e9e;color:rgba(158,158,158,var(--text-opacity))}.theme-dark .dark\:text-red-100{--text-opacity:1;color:#fde8e8;color:rgba(253,232,232,var(--text-opacity))}.theme-dark .dark\:text-red-400{--text-opacity:1;color:#f98080;color:rgba(249,128,128,var(--text-opacity))}.theme-dark .dark\:text-orange-100{--text-opacity:1;color:#feecdc;color:rgba(254,236,220,var(--text-opacity))}.theme-dark .dark\:text-green-100{--text-opacity:1;color:#def7ec;color:rgba(222,247,236,var(--text-opacity))}.theme-dark .dark\:text-green-400{--text-opacity:1;color:#31c48d;color:rgba(49,196,141,var(--text-opacity))}.theme-dark .dark\:text-teal-100{--text-opacity:1;color:#d5f5f6;color:rgba(213,245,246,var(--text-opacity))}.theme-dark .dark\:text-blue-100{--text-opacity:1;color:#e1effe;color:rgba(225,239,254,var(--text-opacity))}.theme-dark .dark\:text-purple-300{--text-opacity:1;color:#cabffd;color:rgba(202,191,253,var(--text-opacity))}.theme-dark .dark\:text-purple-400{--text-opacity:1;color:#ac94fa;color:rgba(172,148,250,var(--text-opacity))}.theme-dark .dark\:focus-within\:text-purple-400:focus-within{--text-opacity:1;color:#ac94fa;color:rgba(172,148,250,var(--text-opacity))}.theme-dark .dark\:hover\:text-gray-200:hover{--text-opacity:1;color:#e5e7eb;color:rgba(229,231,235,var(--text-opacity))}.uppercase{text-transform:uppercase}.hover\:underline:hover,.underline{text-decoration:underline}.tracking-wide{letter-spacing:.025em}.align-middle{vertical-align:middle}.whitespace-no-wrap{white-space:nowrap}.w-1{width:.25rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-12{width:3rem}.w-56{width:14rem}.w-64{width:16rem}.w-full{width:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.gap-6{grid-gap:1.5rem;gap:1.5rem}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.translate-x-1{--transform-translate-x:0.25rem}.-translate-x-20{--transform-translate-x:-5rem}.-translate-y-1{--transform-translate-y:-0.25rem}.translate-y-1\/2{--transform-translate-y:50%}.transition-all{transition-property:all}.transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform}.transition-colors{transition-property:background-color,border-color,color,fill,stroke}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150{transition-duration:.15s}.duration-300{transition-duration:.3s}.focus\:shadow-outline-gray:focus{box-shadow:0 0 0 3px rgba(213,214,215,.45)}.focus\:shadow-outline-red:focus{box-shadow:0 0 0 3px rgba(248,180,180,.45)}.focus\:shadow-outline-green:focus{box-shadow:0 0 0 3px rgba(132,225,188,.45)}.focus\:shadow-outline-purple:focus{box-shadow:0 0 0 3px rgba(202,191,253,.45)}.theme-dark .dark\:focus\:shadow-outline-gray:focus{box-shadow:0 0 0 3px rgba(213,214,215,.45)}@media (min-width:640px){.sm\:space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0px*(1 - var(--space-y-reverse)));margin-bottom:calc(0px*var(--space-y-reverse))}.sm\:space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.5rem*var(--space-x-reverse));margin-left:calc(1.5rem*(1 - var(--space-x-reverse)))}.sm\:rounded-lg{border-radius:.5rem}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-center{justify-content:center}.sm\:m-4{margin:1rem}.sm\:mt-auto{margin-top:auto}.sm\:max-w-xl{max-width:36rem}.sm\:p-12{padding:3rem}.sm\:py-2{padding-top:.5rem;padding-bottom:.5rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:w-auto{width:auto}.sm\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width:768px){.md\:space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.md\:block{display:block}.md\:hidden{display:none}.md\:flex-row{flex-direction:row}.md\:items-end{align-items:flex-end}.md\:h-auto{height:auto}.md\:w-1\/2{width:50%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:mr-32{margin-right:8rem}}@media (min-width:1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}} \ No newline at end of file diff --git a/public/assets/img/create-account-office-dark.jpeg b/public/assets/img/create-account-office-dark.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..1754f9aa299b78e8d448d04695d382a9db1e42ec GIT binary patch literal 68019 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 RjK#A507%(om;MUh|Jl*4p{W1> literal 0 HcmV?d00001 diff --git a/public/assets/img/create-account-office.jpeg b/public/assets/img/create-account-office.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..963aeeb87e6cfa0a8dac9526653404ed98538e35 GIT binary patch literal 74885 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

XHOxX2mQ z_kE-tGjxNMN_(#-&y&rE2T}b}zj8VsJZ6!Z_L+Hm?3C;^T=7)?+UbqHtI;k%6T(0S zXRw+GvW#PW_er2_bK&OCt=q$YIET;`|BE0jY;6JAyUVFQml>YH0_uBrSU^4K|6X%y z|G(G5ruIYt$OWsYa!j#-NVkaj{Neo^?L1~`#;$#1@`*T41U`S8o0cJBwT73mdDsY{ zv-ePeNoR*Ekq{psfsL(~`!BZs;Uiq!C%6xvJbd^7_kY3lB#&P(lfD#st3$@}>Z2>J z@EbW$2 zt;Ic=wMED6>o)MUNO8dU3ggZlp))hVDPaJER;P%$!5vkrH%jV>&}FO@Q%5DEJ6ktE zg@_|BVBpp>X%Vp0VDNb&@*1CV9pfD*99+b5PgziOF>fS>`I^(c18y(1HD|}jhE6Si z9lBZs+%ew7TIczu3obVg{BEJgra(4rN7_3$fZG>=l6kXKJ=K^9SmY|hn%1ZZC-b2z zr^W*95t+gTLL%jFGko3dqcApntjPG17IUtqwzA)PEcYUu_1)W+ux6WUQaU=pz|tvkXDgX*#A|pU1QELE@I=DWoVe9z0aGbv^V0D* z3n&;?pOA--R4A_JFMHRtX*gFe@%kX9dJf?MmZ-*NOJp-_Lm+PlTa`+m4w@;X4Indx z9bJ>{TpfJBjSdwK2-4+rE>N*Ea#bPO04UK@;LuuApT)ZhFH%Y5t+ep}TGCahbvl^i zZo~DZ$aw!F23o4;$*YtB?9$4h8q{#5h~R}Kt`%we(F!tdX9^Fr+Jo2FnDNw`zJ5{V zbNOv^B1gH8dfEV9-Cf;I4;Wvj!@RdMB2QAjRv`u?IaXX0bLMipQpriZEAE}JU#{YBERM{gWHrZ+zuxD;}`;O>^~ z+o#Qf0Jn2NL8k?G<`;HR$2Ke38M{r>n6Bn$&+I-5So=l0vrdGuvgh{!xZT*FNDq)k zjkG{Z{;NqlN+mhM>lZg0QR9F7t#lNUDoI*X$P@F0=Vo6Y*|uJ!wW{6PW_Z_TF2{r$ z&`_(IpXU8C+H0}cL0)62SRYSq52F!uBS|>+SFNNyHiuK#9cr|joeyegd1VT@ty#Y> zCfGOq^rJPyhwrri&~0N}0ZKX4$)<8b-<;lGU|86tfd?g}qG;w&wzpz3o!!tRoy>GK zxfY%zB$Q$xI>LtqAvBloZYmB93=;k@v5aoF!|Zy#~i-5@bVW< zf5y30p=*(@sx|eFNzhaAKfbh``3BbUsO)m|w3`?Id?s6+PnUb5{ry?Kd@w#XH(oVGWSU;HS9?a%1ldz$mu#nwXc<`%I!5y17 zKkViw<7jE8En`&o#KkV^Zs6!Ir@*sXCWD21RvOtLRd(FNe$XpG6Uf3XRZM}v{&+|o z*2e*Noc`ek04$^koRKcZY6GGOKR+f4nwVNU?aZAh`%M`V__! zFcuqVwAU}25tA^JjVwGUeQ#xv@z&q0fXt+@ZAAqHZJjq_gZlr5=S-KR`*zD9&TW_mk)2}_+1H+7shhCM@bCPMeBkP{x2e>hJb=3IlXcXT50@_1qD zzJd?ceRB=#)hkspfzmWS`~$REgrWekc+in{W8&AAXU?2C#Gwc4z6VSEQdCs4g3Xms zyL69Pn1&6vq=Lw84EoTqBltbSUpQgI>f<({mR09`p?=xPD8)aV(LZC6nG@%~%*DQ> zD{twS9!_NavWSfSfsJKKUEfM@nD~dIWp_82c{{sQBb}+W2u&}0XmKd1syftAdlJ8A)`?r_Or{85P%?nqLOKLt2xU?wNI#OS$_Ji~G+6 z&7NDg3m33%mwqmGMi;E#GWO>mXhUyIV?Qp$D5&kG^bv3~`p2fQr;Tq@7SU_tyv(1IZ9HC)Nt^z64Jb0h=yGu+zO+8q2j-k)ZKg&h$Ps7?i@i{+7hANjeB+C7nQj?9i{nNipvB5q)-RHM<18?j z;EorqL3xzgUCB9Uod>ov2;@lP1F)Vm)Om4yo3BvRykU`}T$Sr<5Y|c(@w5?3RFZ!m z(1=#Iq||bMTMA5DM!`n~wIqM-6Vmu)4hBE+hDFp){zrou6}_#Y+>r+WIAHp%+w57d zvi^(4hN`pHhv)0=grd$VxAxR3H2x|WU=6p5OaT?{ za_)1O4tAhwqRIao?m)-74=e+0GT5qb44WSrJrq}6PX-ZwMiI7lwn&RJ( zwwiIzxaTPhal$|6N4y1Y)sPh>w}xsv5$$IKE;IeI^0WVNvgV7$mIf0?0UW<+IYZqTmh>tKTU%dg6{>AuU%O2$| zQeec=J91F_Yps#BC5|BPm~u#80BTd*x#gXGHUptFvIuTpy{EX3$?2-ORaX$G23a`0 zoPaLcv{Oxj0hk1(}C!vD4%NLDe zltvduWk-iPlri(;{A#y)qx@wFu8nC>zRF*@m)Qafv}HTR!7V^ZK?j{}-kytLTi0~O zY<<>=V;*4xw7giN!X??3Odd-_CvQ~Di*9D?ZvHNzO9{#!*#;rtz<~}Qdd+)(U4RMv zwFTn|KLs}Z1`q%M{$;$oC5TZSYUwe0d(nz>zgeRPM1nT%txwIUT?xqCi5!iP|oXFdect zFV(!~*naCVAa`2Gn0$YwcwzmbnG6#>vm;=woQ#QnMk3d*#g+Tqk~M|txB2stRwFR1 z)bhyuQJW@+-)Vt}qm3V9OyK{n?RaE-*&;k5Ej)33dHZM4@qDA5;KjT1DSiZlaj=5g zT_NlX3as?we#Y$RWfW^%Ox#~O;~K6|!Qbg`&q!Hn(vG8QV9G|apId3b^&9qJciR?0 zEx+|Hl!wCCWd5IBQ^?j)2Q`01?~J?wtvKZ^(G~CtXC@_-y>%s={9^ z#${-!4HQ6Qi5J7frg0>2X07~gOqZ;R5s%VEp-i}P5L8*@*uBlpZbS2a; zs*dtJw)K7k$}c>%GL3ReIr1F3X(5JqI}-+eO4ZQpnKcCe!!gzx-TqcDl9%&d(*Avb zH7{f$l!T*+45DusLn08~vT3b?39s>Gw!RG{c(3(e7i{Ld%RcaS$}^I@#nDVXLg8_K z4H<@wK0zk41wwZ@S!@~}^%O}dJ;T$?dr!WDX8Z=mG=-B6*(GTNAfT?_r8i}bMYiLy zhk{anXMkZu>osW~o>iaqJ?^wWYn*QS@2#PeBmXJDk;f%+oFkg~5S$$`VBHPQ&e+#Y z-bv^IU4L(n6W*6jQE?CZbXTJH@kORVU9tB7$#y4Z_PiUq|)q_9D4iqyfj;mj_xyw^NpcLny~=)!H_UF{5V zZb!qW*3!v7CVety^>4CNv~{?!kzhzG4J3D8NP?7Kk8qq#2-7XyEtJfrXB=OQDz@)W3;2RVCi&l@ylK(+FJ?cXzEch3@kB?ow z2MSp3FcVaE>?>51pi|omk^gX3?YTdE6PaAo)oLrEt(o3u_u&*cv=E-tHJ%L^KGK79 zs}A*BJQDq#F2b@%x?r{VOGH%|-1fZH*&C`aNQmKUFogfz|CX%}7%;6cY(hKV6C}iR z%aRIhsQjVvS6INu2iccp%H_8)r3x&36Ydab%knX&?EZw`Slz7^LLdN!KkHB)p zYp>{@i_4}8Ynx7J&ryjl--M9(;K{|B7Zh_g-BUSf1bV=45alc;n5+(L7>)Wy2W-Yi!A%P zd_&vdO3*2KBg5gf>ABh0f>t&|Enr$iGFGqArSoU$XiD`%zBZHbobh`8S9sE1G^a8N z$F^C&Jz<^V>d7Fn;odAQ{>=QvmZLCXkof8&g!5OpHD>T8~X4!OxrQD+V$2|R#LgnBhuJc_Py{g*L2rX(t^$IPlC z@&y#5hz9;DitwuEEP>= z8ZBVXf85wnTRLBKpV80M)-3MC?nHsg(ztT0p`3~oo^Dp~uPMH36>B4AV+V-@DBdX4 z+L3#uS}swgWHaiosR+04BsfFz`5YY4)qeghhg(L|Ad|uW!q{W2 zj`E_C03r|(&72HXQ?nT16*h&Fc{xiUtMg+Ck}W~T-7b@K6jfo=Y3$VW#Nk}&b9zZN zGxv0WX2FfBp6ATC*)t^?B`~PYOW$XkRubD<8{2ko0mD6C$!wgb42b+YUVy&N#+1wZ2Y{shh%U18qOTR z2HqZYiH!=kpXHh@I5$CCpFmZ&;G~YQUc3G1=ZkaibC{+fh<7VlR|-8(PD8yK|(uy zlKjF>jd1>=V8USDM^(UL)w*b{jLRkJxX(N;Dh=-s`TLOE{o;MWfqn_5snTFOMO@c&4oiR@opOLra<$!WPkKF>F zk?~NdA}t$1|Nr8qx;GP2cOX{&thN3U!!kIM!k!E~5~OTR=qi@|k#j;AinS^Upkfk9L5M^ z-MUq@!T$pgLGQjC9#{CQGV(j9W}*|H$0Q*LktfgKHmTN+)lTcyIXZZV%WG%Mgr#QI zydC(O6Qhp9&GM|jZ_rXAjR{n^_O)VhEm4ti6e_7A@jHy1r0o{WZB7ueUNcgh>{F#1 zT&6j4(Aic)>RMb)sFoATg?QR=MM{0@I$6^&ack^U0m~|d@Dpj7BWl3vM?4u7tHiFb_W%-)q ziymXiJ<3z$Tg;}&F-L&Y7|RHOO_bUx%aKh!1QAUTAV7fvBuJ4WM1exCtBCF^>dFv} zk#^ayfb)N&-B{9$yrl>B+_~Sx(dv|!_V`qaQR2u-TQJp_&6~v|6IynZnj+#wRoP@M zz*MX4brUR!?2>x2pE8_LhNZ@6Tp_87sm{e&@snj*vr&rGl)ayZyZ4_KJVc!4?Gq0} zNJSES$v2ZO%?=MMcuAFG=51)vceu$SqAH@HDHA4C>Qw4asXnB-lIlLEndUB{B1DN1 z5olkj{taL0oMrpzmZjERm$m71nsEL83K8PUDcL)}BDE;rvt~OJt@dI^uzI%aDARK1 zaZg4@oqP2n;c-%`ri9&?oOCR;Ao#L{KbWMrYGNhss~EbxYBF+s*)~b?B>5Du%Whmr zVzCMfhcQ!z!X5W4jZ33yk~CR0y`Zu}DNSmH^0KUXT(=isQSA9kW)62L z!Z&r&E6?4tT}t%$*u*t;0%_|L$U+c=A|yzWEiASDM@UQQk~=!}BhqgzGwuDChMzrz zpW9CglsL&4XmEFaMk=Sd3woHz)Yz2l{DnB}JGbUb4>(AS=tfJRs^O%(j^l&l7AF=e zSgN%7Ug)JyixjHG#qc8->QPO%BuC}c#7~BWS@Dw@H^`GF`5j0{kp;+#FToSF%V>v* z#Ov;^B8+w;$i7bG=IoH}r82I@%_#lMRbTa${S18wxk@`x>m5ZVPE}(VMajNMn*8dD zKhm{iWed`+uStLX74Y-fsRtMQKTieZ#`)#uOHD?&ks#!kQx96CX)Tt&rCRzTawMt9K{BNbpHVQ>VFSS3CdHzzr@#flh>nJ*&D*~CJpB0ZE`MNQvcWTOoqN+va>nDKhy=twgyP zY&AbI<0{Gj0H+Q&TOlC?rzEQgEph z*Fvru^M`(y^1XN7Z#!;wwCc^i3d_`*s^_=vn3|QgZ@{mH!ry7#BN5u|$?)scsOF)j zgfRGY<$K!frC$+w+4FZs9#K@&zAR3!r{_U*McfePNhnB zONXh4ock*^)WgxEbt^tB#MQ0&mrsJ|iBN({oMhRDlIX);*K+30GPNuF^zZkMbSeAO zNW(|mPDiw{YV_1$9<26-Eox25Jy8hK?PRXo(1k^@IIA(zty+WiL=|iBJ1l0>=c%_8 z$hubMQ>BGbm%NJgwD)3vhLdVYgr9nM@;;PeC(gv>#!o4}MA+ZTN%A7Nl;g-tkcmDB zlj0;trcp&0e8_~MWW_1UtK@A>n&m2!Ng}NX-K12k-PunK?A!BiQPh)nCcDRUQWehe za>L-ohQwYA@aL?2ytmfnvO+ZCR;L)HbOc7`kwC>iLzcVs>q%?22@7{5+9?#7}Ldr}rsU z{5Vv#wPq@e9OG3h^5~3wu`jl!wtDnP!dI-7N^?nY((1>v;oaGK`5lcFQx5&_k)G12 zJ*ts|MQ?Rsqi-UVV(&|3=JLPj3&*`0>&i3zjZIBQwPa#&nA%m`bdMF)GQ8cW(LJGB zw`Anho3*$e&coJpyBSxK_ve0oMHy3#YAyD1c4_g8=u^XCS0xyq;waVImeggy{{Srr zua<5shihn^pR{Su(&Zm{lqzgS4(>e3!k)=WI?iPX`?{6q!$Q3H&F4|_B*{JzB>1A7 zc$DM8XE(@v$f0z~2*c5KY>cDbD^Eu3QtbAxcjkAjDtIq8Hu7Vnw%RH?r5y^1j+PdU zFQyv$n@GG|O_>h)H1|7v6s_+^yuRK&0#anDc6Jr}f zH+7TsF%oZSjlJuBo3$jqq~rUR$)eIvqcHU;%2HQr`xO5G!>1UoJdK}g#$Qw&y=-6c zDtE5<3WgrO&D30Yd7_>#2M(`KMt_IGsK1uurB+XjWc5Z8J>=VvoZO_=q;?c#R_Ssd z$rBSln#85W-zh#tN929Uz7am6jCm1{1(orKTK z>Px!WPigk6QW327W1&r=DwdKqr}rA873G{}{LDmRqqBcPq^Y+!%KZuU>aAGX5O+(Q zpZy)An2_UJP6Ki~*=xK07ZInqEo1)xUN+TKhU)R=O(acI;K_D~o{Hq*M}WI)zfux$ zML1CTco3;t{{VB{ikF!E&CBw6&rDElvN7LjAT%$PA(Q!;)~IA*B8X8N!~8Pw|=5ap+Y|D zxn6uUD^K2=&T`<1zB&o~t(6}u5MJ{r!-P*Pruamt__CTJxFL~`7GdGchN{Q4YpF^t zD3#@S$?8r!Gupk0)T3n!GZju;E>w)a5|bTS=^G;rhNXEc+@jUvpr?q6I%N7>tBJ%$ zoedur`XUr5ac!lnx{|(x*{JrkG>nVJ=X-r(u+oRk#y+D>r^R@#Ex#f5h`g4Zh^ilA z8*frFtH`GsB70hm)oSG9Pk}XeswXP1Um{A4t>js^skc?Tn>1R}g^F7)Z%>q?JVSiE zic+hk^<Z#mS5bIW~Q`hmFq|GCX{*@YJWZ7kp4)0*@>yff3V(lWx^z%7B|8lxh`(S2=ciI z@Iw(&Tp~;6kxD#{h-Dg4yyTIFkGtOVDk&>k#Ie=vt2k&+2-1~nr_7-)GPzbajW?k+ zR#NRO+3g8Z+KiRF%uJP~p-vs?r+!6!t!a086h3VXJJLFh){fL1VqxQm?(`!jBCR!a zu8o>?sy!U#Z`jzw>BW+pcN%sqY9|JbEIq8OUv_w$OzJ|UVx_IE%*UzPn}pT4-o;uK z9XgS5lI7v9{{W#EP>*S$YFtS>lI^&2CuPK(VZ?5#)0mn{+{i|c5)~?|+o?~wkp)Kk zUSo69sU>A$_Hn+P{{V8Trzs>>gt?WrxQ<@Vj5bx_QGY0&&9-@dl=oMGd_Vgte-g`9 zYsBm&C$oE_5iS;rD$m}NdAGq8pA~OWKC<*B$_Wr&^C-iFL@~>PY_Bd#Bz|Xdlz2pa z3vp!#LCW{Bhm*BG=Rz`%<~#WnaTL@lMou^4dpog|snlvoaJfY_w-&ujEZ21<=8Qa{ ztxc~cDw0k+afdk$ocoxaq-(YBHPo$ADm33`ZiY58NySXAmdxnM7^%^7R*FRq&8M>_ z$~U^QDam)=0u?K4z?~`CvZT00vT=e+GLKuKx>TVaJ4{kG5Se9{c>F_CUHdk=q7>=r z#fns;Tbg!$k8ub>7H!_$32l?@2|8xXUYx}1C+0=$>Qn4Fa3bmpZCUafqsNguy$N=l z%8{jO^047|rvXl%78rB<&lB|goi)jJWg&{1EdET4t7O0;^@y7h^! z?MZNpWBH_)@+ZO)m#&3NYSdSeMm%-(Asz^Pj;yIab`6zZy(J$)gm|m^kz5fbQ-beJ zBL%gxrKwsqCm7L^QFhw3&e2_|NW{udVkvEMFtChaUksd=I}?RzIy9GO%c-!fD7gBg z2Pix0{EC=~Y{m=!03+E{ZAPNCWVo#iK9=Fvi0RYWjYQ(t0u=RyR|DEEim4ewar4oY zDo^odpuCDWTuzE|w+WOh$!%0m$it{RNW#t95OSCFjx<;Ki9)B)%9DNijzsXZ<$7w* znCsS1kG#qlN?L0Er_9@nx?4VG7Y{i~l{FVGBan?mpeq|Q&F&#(voz0neZ;V8KUBZA zOnazLnIch_0@XMP&gD5$}L3#-&Hf-lad9cl042b_?&R zRjX}3L_(ciiqX^e~jY>WcjeH0NbX zU)c7IOhS$p&MrJSNcNK2l&Do!;^n}rDQ!8Z-{~r0XiH*np3}a%vb}n6jk_kD?w1oE z2DDW@G-f4K{7N-;zp6JX)RKLiX_T;ZJ4pWkm~zp^+zcG0!ZhDTtYM`NF8x-f9#8Qs z{{WUyt5Mo@D64TQDK-8gQ(jTAPBd3zNAYjQe9F*Pt3qjiPN=}j8#__Io{Wpq5p(q5 zP>dyC7fv0WxGh=i+K=#E*GDUqmkFpcomuVFmcLcXwQBZsaT{K|7u?3dxJq&RJCUbW zZd$jXq-@hCDe7M<8$-CzUoE`~7wN}XQHdseb{PW?}5s@oFm8~T*UD)XgR5#NKe zOHbvLsrRFJ%apj7snVM5Zy6?!^#j+}O7H5Jp|F!a-P zY0gvmWZwtqdr$ppduyy8{1`aC{A~XKuR?`ct%R@A8r-QlDAc1Euj}J)L)lwbrA}-A z04pL`RPBd_xx0VKid7qiA=$nXS3RpuIVu}zadhSX01U>}if)9X{{Zea5l%@}#cZx> z5&r;^lBnTV3uwjKH56}k)WFng(@k_*GJ=o2r=J4@H{FKZzoCD~qe?EGGNfBt!L6$i zz2@aN=2>Z{rd{Sc*_Y5a1cC)uryWJ(vLQ5->tA(o- z#@AnA^NAlpkD&YpX=WnM>5^*q8-=Vc4G`NS#WG!;$)@Z{R4$f;R4hldLtKctk(Gp& zT5ezB*o1~Wm%-j1bpHVUEW_5u!WEsOQl}e23MmerHn(1v!EBxJ-{{WJeO}7k1S{7PeT|cpi;Veb` z)NDeG_V!et_4kZbOhl^Ft+BQ8Te^EjoV(a(D{Hk+{)tqJj?Gh5u3QM>YAIBcl#;TNe2iCYsZhm6a(p2@f0TPx4aRh7 zuRXmA^VX$FIP*~M{{SUg5sJXmQD5pQJzMoG{{SA1NIt&uFcYV3sz1Gs)AFfKes;8f zc42Bc{{V`kPVe2=d_7r#qe4nF?>8Rfl=kfX4`@+VsfSaKT7UFmB<$s|`b}7;vwfv* zw>w8_P@Px(D^J|^g>QRelK%kNm|9)w%5#@i$zkyu6X))-Zb=(48KJIHVzSyPZ0M{; zp0RC|XQPWJPFI9dAvI||NkQHhX5NiijcG0fTF_{?oSvM;(DE5CrsUez79><$ii_nO zc&iXzd+iKOa3bTxmdi%WxDj$Gx_pSV%T)W2lsId93$)@{euT&I3Tvb4Ds$S{x0-qw ztTZnPzC0eNzvj~W#K2bJRVUI~39GG8$G`0CPv+2zeRwkg8Q*HNkJGoI?JOl)ju<%3 zmebjA<6{lAvpuSE=`~~7@uz;;@9a5#RVmNU-CxO#pBcuQ=^bD0$A_NWCq1^UwBDs^ zmzAXa$n3qVTg>)!<@j-vpZ@@)Vkszge$c;IN;^#nzr?9Jo=-*lA%BIbMx0?wX?yTi zl0B(QgsIkEdNQ>ec9?q9@6l~VmFnvX67`>P75i9DrB!6_u?3^`Y>QEz8wo{Jzk6ve z9!#7+`4lR{&)$#lVJrKUp#JtSbd~B={{VueO)$7wPx`H8`?D2Rs-7w|b~)3w)&A$Q zsmp3OXn%4LR!JmSb{y*S(UF@^sFExtmeEd)ud69q{LPN^rS>+}tz(*GFS9GMqt*!` zd?v`fV{?>|ZFvf4lxLiuD-`+aL2!x@O-AyvU0#UxWiAcWf78SFWm#!X5vIR(PIA1Y z+w&GreIkqGB>SefBOy3(C310@DaqT^lHyuFp}&bmHmp;R30u^1S4n!Jy(M_cQPYz# zOY>m~`TMNF)Jtn>9=fmKrBPlIjJ+ODe+^w)tticTtC$5wq$yH`H#oJlqpCf>hE}Ii z7>IOwGNn1};xLt<{FTW{7omicUsRUL{p4fn`}Ly*(mnV4vk!a8I*+W~{{W5!mAEd8 zMV1{)WlL^fOcvAr3}mHl$~2c+j_>~fSdM?0UZmGW++V>`o)yr7QI5+>++%aw6mQwr zjaAQSYx|R@`S^N}^Ihb7DaX4vIdtLtBO8ePoF$i8cNhJXYEzf^x>Th$^l@7@`<~6i z`?OUNK?|PIa)<4QAY^52eqD4v-U7V9old+BL<9Y3A z^B7rAVyqXx5RbTl%vqE;M?ESwu z_mS-c;TrR&Lu=hqds5TMXi}E7B|5+Eec#yfGw zFa24t(yfB7rRduJ4{KNatUqTSvhM!?3sVsav8h`TwAaX$qG6#esMCUdQn!Vvvp-W) zLs1W6$h@{+1S-z_kv+fZM`@=cTT>hzq}vr(l_|b1#W|tV;3|leJp}beq#jsmUiC$O zi&kN0QEH->UMz?DaKD=|6+UmWCixTSG)t!P@LPFCKcg=l2wAM|L64D9a>-=Mt48j+ zJxIkQ>D$m#sO1SQU!yD2e)C2$n$n}v+C5Pny^56e>k|c6g+!l8XeZ#{v1--m#&+Ry zly$=5YEtsP(mlI|f0s(S^3neQC$+H}x-g~w?SF(p{(WiG^7mu=A`ps-;FXt;rdpPW zq&V>AKg&dA9h6EBW(AhX9$ZS4__7rc*0C1}3yLqJM$ZEJo@P1}n}c#)FJ=4~>aC|H zyrZF7e2H@@N07Q$kEwoHzJkg{iEhdA8x_Qb6}tZbM?)8e@>wwu6XaaKBcV0OYl-AM zsz-#Mp;3F$Pt!vUI*MCPFU(fsa=kBdq>)}fnHbObW(ubk;QY#SSBp(~Wb=Ot;_}qc zwxV%;S+m279X&abYt5TJ?-R1)#8TCgTHeGKjE%OF9}QWEoV$@RYCo3DTqoXytVfQh z!{Q-nG+|u!poJbu5%n3=*MTBD$n+Z*GomgeN0Q3?vP(3D9n1cP^I0zek8zKvgtBAH z%P5*~5gvl{CN;?N&T#izMR@V=6ra6#ke3N2P7d*tPsqkY-fC;i!^_``hw_RQS8{QG z5woKc$w^pncNMPqpEoj8#cgBq0$NY`^Hs!FeHNA&6N$ z>t?gKh`vXlhPV=3vt*YI3h?KDQXe#0DNlrvZBsFH{(G*EQZMr<+sznSzU@Wn@YN~4 z=$?;8S)ol1FKE896qUyZbDW1)mW4QxMiw>Jd5Oxgx4YT&7!KV=Q#Puilw)F&DUf7Q70irvxlJoJO8wSV zmWCsc2NXSc&#Sy+jeD@JH$q8{5?f(ExW6C)_#k|CXGtWOUZ>`9Sk`v-|CWq5< ztUcK>s`r)3GUDt-@MT(l?Aj~G-bzLqe)o6Or8V7>ek>xdCXt4Yk?%64Pa~;LJXsmN zlx&Hs7aVj&NV0Y+%0+0F;%zMok$g!_652M9;_g92?5B8&aUz!zGUiini55O*mRy#s zoVbu&M7RkHcK-mRES^Yx87_>LXhYq3Bs0%(Z!DhT+*v@0ent5cLtL|DSUe~Ef`{|;EPj*OK$#G^5j~U(cMMtG5+s&2hKK$DvxUq6YS#vII zR7_Ka#}{+DC95M)QI&;aB4=joZ5o?PLQ!SlO-OAO9Eneu;Sx$>;Kb0bA}fLyHYLD+ zr=evjNg{+|n^$Ee@}ig0iXTca{{Tsb`b;;{VY(P{fk&xJsZXg7sHgQZ9Y}pdKB6B{ zAE;kgzM?-+zM*|b^$Y4F^%44r^&|BW`igx@MIwhnheC%!kJ3?pDNYuWLK82PIuDUG zn0zq!rpAfR`;qqbRxL1awf+2TBL9B0y`oks$CM<6@+<+L(2aEr=xDA`fk0f zwD_hW8g9CHImvNISc|5t(1()fTtt46l1G+IXsr$sCcWfQmok(2ihDls3-Kbj6(mWL z-%b`BOX^+Nv~FvuWF~8ISW2M@M3i2Ganytv3lqMBnX*d6u3WZSjL>X**ZnOc@RQv} zzZ9~2_rX;E0Bb)L=CfH}CD7QAdDB5aD{L2zCLq%DEm*5YunY1~^Rw(fUM z@pER$vYU?)M}bkXz9Ny?msv$I5JuC`LM~e?ztlA?LOz?8MbWRsEZguu%FodJN8zCf z@*;E?h!9+}eg&pUMAK72#M(nsBd}{?<5^US;z_YczNX1@WVTi=Yq@2UZ!0XX`e%81 zpM}3!&|-23r`J?Ci1t1_z%$hNqYFJz+M`)$FgkHv3L(^#)9FNqG)%@ zB92mfn(kO*c_gyG>C&jv9AjaU874iEjAIzaGFK&Gk2jLZv5b){*v2u8V;*0E&inQF zb-eP~Hn@oz+`J3Bn<#r(Xf!92i0`?k=9%gvOt1QSRM3PWSWH(Cgdqq*5gQ0ZM1(d; zk0c@@5QHHJLJ)Auf;sp4UfvNZi>^^s^T-8Z$}ZVamoOV>h9 zIVJGlhW!iIpRdI)14B_WLhQC|(7tZ|75@NHy+gaXe-SiCYUPn}{5RpU)urq3uOz%H zJg$a@_w~x+Lhvv8o}U2N-^BMB_|o+>_!p8w@X)iqO&8u*G|9KWf7JV{#$<^a1DiiZ3=15~a z&oj*P7g2Q=QFRwn%=0|*^UKWh-1G4kUSjHZS@_3y#fl*wWEV1|xD%Hb;=GrI9GJ(v zzf}Lk04fjx0RaF31OfsA0|5X70RaF301+V&F+ovbaeIJZh8Uznf7?B4-Ei9HNb5hpH>Ya0;cR>ze$6T_@Iv7M*h6IHE4^~9XvY0|K zjF5zSQ5eR|I)Y~M7T(;k^gEV_&wRM${)>m@F%jk%dJbc?mPbvNI&bhD?1&-+9TT8A zvQA?jxjq?xc<8th!V4Rom?T(#1<$8QdNZKCk|guc1esoB`;(K-JRx*o));< zV&v!z9)Rgxf{A0+*g1kAv!gZ~bYZsh&@AX2#KgHcxu>u}B*_NPMq|(*Y-4Bkj|(`F zVoy$`V9V=@ArOZiv@wYzqEbhrJ+e#`ik8ntSdRwgc6C`3Mt??h zL(C-N$Rid(azJN6B#wa*Ac!V{R!NT#BOqGb+bms;mRsB9=yOckmUb-QTMKxcA`XGG z)2zhV=shB5P3W6(&nvvUW?60M^g#eZd4Th0d&6DkVz!wCF`bKXfsSJZ-!3h-a99nH z^LN3ukGl}!#32YIZ3t1~G~#A5Eg?e04qzQdWW5V4&q9>?lNb4*mI`{N#Q1$fi_iH9 z#vXwx8MB*UjwR+hL9j{F#B@;_vD)s9;?fT=GU1-nm=^8Ck78TfrEf62MDYY7)C0G? z2v6VublW1{m!?EpJ#+XS*EG0<%=7{S%qH^(xQ{Xzb1AOe4YCUuC4>mXoF_VQAVva4 zFh@~|Vm2q62z#*wECYx`v_q-fxE?J85kx*AL`i`$2QUd`mS$y^QkPfGa`XI==w;4s zSO~Z$q+^od{uZsCzfwlT*yZ2TIfBlZ78vFhObd$aiNSKpnWs%fjoA&g=|%C;VF3`G zTvi42h;F@$-x!C?n6qFH5@S!JK%1~C2x zuR(+BqfAQW0ruM-J+=rXq!n zE`w<0wz45h5ygd=MVaZEVDSJ!dYU%`u^}NME*p)wbKHC@0JAK(wCGuemg5&1bYA)s zMk40cDQ%gak3s%I@o2!gZV+9e_)I1R;d0ZDbG6(`4ecnOcLDg8&O#mfd#w$gk%;4H zEr+B8J7vW&UoEOkw4E)Ny)>PHkdTlBD~iJ%rM63zCV#=X#CU8xJi~+>NgYF@ZLu=~ zEV2tGdKOdWx>E14dZ1|S@^EeTddG|n#MhnZh7b9aEZ1Q^X;BISr6Kw2!pj5=0m_j{OF5hTfE zIfNkz?RGGKXmEpxjLEhcZMGzy{Rrq5NhF;f8P4h03*Lk{%C9zoj)yN+Hp3TiNA6F! zJ;m-P&rIk>G`AigR!rB3+d?kf`>oDw74u@5WD&xDi#( zo!EnmBl)w{xoSLEs4fhpaM%#DNhTvF@K!6NCAINq&Ok7Q>Rgz65tj>4(6sTk2gKvu zgGuMAJnlv1cid)*892QQ!bBzjOPdJnNMML|T;;>J88IR*$bvK4P|^Z+k=kKomO?+l zJ+8(d-W)Fz{4=KX+q_n#qIxp|$50j|xA7uayIc=8nhmODa*ii4?3dlgmAn&qTRyh% zjp3l4;zPQ@(`0SI=;_Oul+p+TQfGU*H)0bY0>J6N$+9Hk)M4XF{B*}3HiBCjWj}#3 zGliv%$hHzvdm9VP{{TG%2Wwl4R)j&x5SanS8f9! zEy!X+gr)Zs1;J&>XGdk71Bp1W5#mZXj?#1-fhGA)zmX?y1mi5?ei6chup=P#b+MdLcNk4&Y0uml23`;k> zx6E4Y!YEQZ0D{T&25><7OB6{yoIReN%aVQN32{1f;aQ|&ou$mBiyx$F`?C<@S+dT0 zGCTBSKyFbeiFzO4anN^`E*Nr$3GF>Gv!e`jb$Ax@Q||CmJmx=F%%T46lS$!g`n86> zvHjcMW|q;^eGq~o-cv{HV{?wrLl^nmZ=>OM?~-%ZTMCY_RzYz>r$J`-vJ9dQmXw2ARRmHduGZGG%j0VCZPRStj6fwNIe5E^t z1jB4S4%6qL78$oFo-#C-6D7S*5M7sT!HqUH2;pfrLph4U9RZgj;g9#Q37x@Zcf;+! z@=)8E>Me6Y;Qs){rX}q`X#;z8e|ES--8WWNMI4XYd8Z*7lyPkkq{L|{bNk-XZ3^h+&(Poswr4Q0C*z zdAn~GM?i>#>JhepSvG{uNVYnZFxh!uMd3r*$Y}lxcwF?Bkg4IJ$?}LF)w&<`ukPM3 z`dI$0;~v#zEnccs9C1Pj5vDUs@2lY^A0ea*f$7^BP%J2UG1o^TXfw>!J zpx{b#QY0h+IXINqr^YT-iA~mA_}kdNNWN$DHEjsx&JbEg^akxLIK*Dti6A&EU99>+ z9)KA=HZ2j6c60;SmRV+JS99}Z63DjOHXTPx36|qzQ}Q16H;K$nKBGPPEHEZxSb@>x z>G9hTC72#p)VRM8?{Hp|fES3jp(J*>x?X|Z2EiOAWb|DJBDBaB1E{6hJ8B?d-XF!~ z!SlpUev_D87J5(W;544^?Ai#=Px^(evVKSQ+P^?x{-;`%`F1SrV*daM1&qcy@NC(@ ze5N1WjD`DbHP1%`vB^C0y8!wka3uH;p(n7sl!hC0&i4_n&RhrL=U9xY$D6V$r7$p< z4kLr6VHi5VJl(*J(_rgC470NccZWMh+>hZ151Bqwd7e{rQzPrEA@kjX zoeC|MS-9Jl-L?UCC#vduGi^AFdVW`Fp~}$Bv-h+4f`e==kKz9S9Pw-y&HY**tA@^e zvz#pm>)P1ucl13HT<*z+9ULJEV5DG?a3*?WBY?kGVawaZ0ipfH>C?swL?HG*+i4$D zm-JfzkI4SnmpSpE{Snrse7j-d7|;~qjmU!1b>NWClNFGF`*ZzSiayW%thG_)>;Pf< z7it%77Ry)?2@Q!o0A#jy51VJ`z%9Vs4cx<+9$AiMz;YnsAuFIPEzRLP&(a8Wt}^LJ z+joZJaFgFiukQS?sp_+VWcmMr{jiyNs|VZMJ+)=9ID6_-(JL zmivs@JYK}kHq|(f4kQCEF0Ylvb1$8r`kLp3E=FDF-=uOJbn(&Y+jm`(MsR?V<{V9( z7RWfcx&R1EZ_VDX<3HWSpm~E=dE5{Aw%~K)kM1cw8vg+D-@!f$e{S8;eixS(_kFTq z{9*zRVI*-sfozN;=Y-(=AloI~^5OkiIiGx=?i&FepuUTnEF&%Ir7kw*jvyVCt8N9f z8Q8Zz__DsGs?%;(ap(cXJYIq(ES85hL^xOK2qV-5m`;bwA?RC!(BP8BECdoShCU!} z8DsL0ojml;A|5&{M2-nOOxtYuocWyR5o|W#PkkFAaFH_p?#~hecz-J3hHqq<{?{_n z^XbGo%Pf-Y=tafcziVO;YzZKkS%~v+;WT~bv-^!={h0*wzQ^@;8F_d=xa9ONC;GHb zC%_3+(e~%OR^xD5&mE2=A~xlf#9v1&(XjU6`(x8TmtWP8{3rs&#vXt4hQoaUc0qnD zU&4ScPP%=-N_!BeW?2ddr#>crb7L|dFNj7iDAPw>w=T*lcBf^(Pf1w>Yfld98))aXKaxgp|Lm^v(& zRJV>r?`y(6&XE(pqeqASz9z{&I4t+x)^L^fGCgz@#uGUbb7j0=pug(M#(eSr0CM6l zlS}?j=wBO;>h36cbpG}Uxttl7tItKt*oB4Vf`YO*lzZXOVB%XU7i-d%^ADCiNOo}w zH#moW<;BZAy*9^3wa!m7*)B5F_OSXkYJ5Op2syi)uoJ=4*`Z-fhWWA&;ZV0ap07ZH z=GGR}Fzr0?V=(O;CyEy($>5nMc{&)$E+Wn>=**=oy)qnLcYGH$tVlro$%J^~;(|LS zXBK0rPxyg3Pe62z1d@li-XuYT2?EC8b&dxtTuOJjCg4fdN*u!7$w0*ZW8w9)DfbUj zT67ZE17BWj9M{gn_T`%Aen;vgD|rxqddI`=Py52Kr-0AYY}eC}lmox0*oP2(N?>jl zNPc1YgT#)~{$zptLqYQa;tR!>1bDQ%Fb=`^u=QyrGiwxM%nqD6w(qj7$-~Ue?Twbt zq&mgoKyd`?U_CoVe8|I~dOIg~r?PYqNzjgy0tglbw51?+v?b=tPcQ|-v6;46>OELq zT_-D&| zVdlZ&BM%UISic5;H&+rDee6J>@_*3Q1QT;N{@apKjo&xu%bDPc9WnQ31fN#7mQ5qfIE4!{#i$91q_A@>?*eHoAsYi?C(x%mIm(`= z=b{4J<~$~ScM9Clf((M}faoT5YtSwbau?;zg87zc=aI~Ac*_O>%gg26SV@Ks7!dA1 z7U4dn+vo;d6QIugc8GDOd?H-cyeyDDkcaDdmzG1iLGyTIBARWrg5|5Upu0NNVXzkQ z#iN~_%^Y`Tr#`un=GZ(44;?g-V|o=M*|EI@GulTU&Bn*8W-J-zEuG41%na#fgSxz2 z23#`)fgJ$oLk?NfbCT8Zl6D%&Fe|8vD($?}?fCnT++zAT1!a~fLsM3J0%Q^P=p-89X1|^J|VV1$ZKk{$Z>FsmEOUIkfg>AZ3&s`DP@*=8y3^F zIgdyln0}@8Je-tm7oW|O-eY-{d(Fo-nT!v8oNcy7CIfIiQ`*8bAorET>h)xhL?MW` zW4k6;VaN0*J}&6Bzj=@LUsz#gWY+%xslK05z16#r{THGA-Wq*I1y*^xYCs?0`6OKP zDsWo8@?3R_dhNRwIor!%g1r#mCJOZyosN!tw+kMoHP?0VXcoz9v#z^Cm2NZFjmU{i zy%V2sqLmndqi7f9HN41ep&PdCbZ)W!386_WZ2H8wTbb997qSua-yJQjCIkF4P zA`9o>n8(~-YySWqnq$x6-XHES1U3f;FV*KS*AtZ+$h_h5#sDk72W>xa2T=?+zn|37 ziQqmzP?hK%`RSchJi_kIgGXlQXGcwLEy;nlhitVufE=)i^(6SW?)FA|M0_L6*>`Og zyb-%h3l<;4@JrxDh`+0qZ_ZeD_BZChWGKi(h~zsQ@3?p92>wXx z6*vfcv*55CO#!Z0V<9(-Z%=L#fo&5kvdr{mZb@t@X2d*nod_gnYm;yjsOli~F##~) z1?DoO-{2F(=xo+qi*|Eo7k5Qtb`}_m1&{nplQ?Xc_BYDc`-0HEC|C2z(D_`>H-|fK z)sTjrpD+h*sXT~90p4t2gWGO&g_EeW-*R|a2${j?hOALDj&2r1e-Y1C20c^YAp6I& zV1{ptNcLbBAK~4we)+i;%KJkv$GQPxA(h75Eu~Iiv_e%$3Grr2i0mA$=lFN1L!On# zN4H1jmt=UjZVM~g!Vor0p6v->mjpQKt0a>$%QE!ly^JO}7+R0bEoiRVP%R!06-BN%#PlyZ$Zj%vKNKvdq;c3caCCu2-fUv^fGo&`tCog zzA-|xF=Q!rksoS)2f%%Xaah@z9j?a)| zZSKgr&Mf<7>P+zO7(fXg*Pyu%1nt$cv4p*>P`8#elZoGWD<9$ zO=BLl_^*!mWQB8eJrklJf(RlM9|*B>?e8`Ykq87K=2qt3hgJczj7^D;Jr8K_Y)UQk zTaaE&AC7F(us_2e?3P=5qw*L2Ah{RFm+O~JISsk;a9lhT+>qzwwFGkU^)HItARKWd zq0UOa2xpgzzAMBT;JjtxRm+8x<%88e33!nG*beN1$AZ_yc^D7#{vXnQ5ptR4+Si+P z4YAPRj*Q6h8)0MSHOHAd9wY)#h1wTc*8f1B|MJrcRA zoryk0o%IZ{j)G>fwx<$sge@UJKp^NmM}{+s>m#aQg6x;j;J!=on}mlQR}GA5_gK~e z(2j0M?fi1WYaX*dT`z`W7UX>HUYKMaV8@u2D9&5HMRj_!Zhr{Fl=q%Fj&WxMI}$QL zL+4;dq9V->!S&gWr>57Q9}koMIvba(9lp49AmHXc=UuicADBh(dbG`5hTINJxkUPt zIX579B=&58bDr$(s|oqCTH;mjmOQW&a%3~w-S211X|dpu;@6e~{M(n?Ajo*$BwOni zYvLH#Y&d-oV0=&PvM{oPh_j2f95Lp1<7ZQ6(rvTbpkJ5SKZ}Tt-5%57u&&$O#jQ~iUWCNV^)E0I8POr;EPIP53{g2HzG4m_!jY)+ zc>JbmAbSVu3R8RyfUyX{%g|ru zVbTl_N0L%pos|RP^$`1BDp}myd9fZQ6ZMDtWWZ0stxe9%@X35k^zUMF?BqBw!Lw)Gk9J7B zphXyzxVsxj!i}8{q3SHQYFh+c3%9Gn$ZZt%*yEhGAz)pXG_kh-0N}DjTN9ZKKBDy> zs69aVodea`uN7h3XRIh{SU`_62&NsN?`bD)h;a`Qz=*MYhLWECe%_@Swy^TA%TMW? zjB$Fv{PEF(T%O|Hr%cUukZnY*4^Nj^91V1N1Lh{&2Pl$?t zn6$|<85k3^`w(qYV7%D*y@_7TCz(CY`My~CK>`h&j~EPdI>MB8#@ubK%#Wx+mg_uS zr1*}99g2ug0}ybs2w~P7*u(z-!Fyfze0H3XA_!ph2dKS5_?6;!i2X0N{Q-Cg-zb8)o%=y2}rVPc8Dt zx))RskeYso^vA9tB(Ryh!uQ+B+s+%~Z#?P6@Ivs9S_8uPU#Pp7paGU*;6x`YE5*#g z#};H+YFt|e*!}};w%cvC-{H2)iSu{IZoAhBGI{~(4^euJ@dM&#g2Xw}6hJ&Aol${v zmk{n=n{2tTVb9o$0C<1zH$CG20JPKlBaOu`zYo^q(Fl+lxd74M@vv(?4q;pwEjz#t zTNuy&CZRj}VoSfgOS9BL{Z3bp;7C&G2ZX~Uop)3d+xPbAMM{7uMIdyr(9zHdy$FKJ zy#ms^NJ5tYp|^mcqZC6CRM0EZ2_U_LbWvI$^w2^mp*P=re{UvhWv%>?m6^i(zaOQ>hKei+Fq~Q*IsZw0ZYTNOvO~3YpB`apsYS2T zZ)^*^tY!6_2r{wh@+RSOtkQ)UhX=S!dI;YKf+I6~A8`lA8O?HKCMTt3NJaoX5Y|1v8MuX!*7~tP%ThR=73_QAm4(+dJZe^`1sPRhr>2*Bkp8ICX895{*H*0dBn7r&Tb4BH?l<$=7e z@5p#M$b}XRJ}n=uymTJa^qlW0aW5=(&W#(X40Sn&)j~w zfgwF<;xW#*GNz|GY5LGT1a?~|4t8Jm?TPX+vE#?46&r8vdMVA~_obC1U2+At#h-M) zFwn{So)7@W#bIi8PBr?@6Jua^MpuIndm8howsn!IW{vVSSy+~12-FEj2mwLVa<(jZMa(3z)0KHz|At@*|Ug9|SGruo!Wp3G*$ntB$hvN~*woFe8+Dm8)k* zDJ=dkMQdyXI%MRG$DV&C8XKT#UZJt1$+Q~#ShRLu=g%^0A_02nnZLj(Lj4;PO?^3B zc&6{PXXjd8hPcr2`1N~Zc=+SHx3%Q1AI@NDJ@RaNug`1xRVL%iJB#Kivy)x|p7Z}2 z6|y4KcDH<6VKqgugn}_^I9HNg6mU90RjNQeaHeB|f7!|3-ND8*M%1V^M3iz&Mhl-e zOAxC{*hq+s+I1GU;$=r$@)xRacG#2SzFQOE@4^7%>sNz2P*!;j6-@k`W}9Q`^PDukG9ki|@_``31- zeHepW)adiOT`lV*Ul(2thhTvmg0A%OX;P8| zTZ*@`yBALQbT|IA;!WQ-P+3R}T~7j}uREOoFndmef$Z4Wy&E>*QxXJw;2Rh(li#QX zVcsvr_jk+TF6A!-dgc_4?Rc0v!`%fA^Be4kzdp9-D!6_gzVP*?t+zgFDu**$nVzFx z%9jBLJw_5DW54HnZHge6GEy)$Z9e@{DLZCv=|ZV`3@Pjr-98U|(;7q^Y5pJ+n-}s- z4EYctc2#U#N?=J{thY?xwqi~@dtkH(Rqr9?H7=-`RpXIAa%7f8RmF`t{sYH1b-Toj z>5R~&@Gn=AJco z@ASyI=El_?{Je z<*}jreg&=$xhGdTuIlxNd^Xrj7uEN2JO*05wt~l&cVd!jQ52X`{>zA`mwe54+R{>H z;s~H;cuFt6g0mJ39jrgdJM=HbCFs?nX&1>Axr*reEfg=T`I zDxqRSE1#0AYtroYE+M|55x$oYA2p#vWG#-aW3#1{cnE2X0B&bxk?!K{f1a7|8V4_k zhZWA377}lW0M}i|XZw85V|$(^PpOXNY|fgYTsOMGB3a^(IQf6X*H`?flJ=-F76%(} zqWRGHl&(^Zx1E<2lfnzcFGgkKLI#9pogD*M(-DXE+Vq6cBUYEi82a@LQ}KTR(2zMZ zrBD31Ij6Tr2L!q&d={?5v4SLcFXXnaxo*R1>eHe3gGD>wXPf*FEqVE~0J%;}4R_Q# z$`h7&kG!Y`_%Chd7nKBZ&2P?c4xX9S)smQYqE3LE>Y7zlR7{dFr_9x?4s?~3ky0C9 z$ebJF#1LjIA(~hnaBqI8s7od zcU$SyJb1u0oPelm+?UUf-!C5F2!dKmh)8QW>D9Apb5gI@8$@N%2VqEXtdC9Rn9!Ku zCI-vq7>|WXVX$7V^-?DugMao02QdEA4Zlwd`K`&-TDvy`Ax8B~U_WygGs#BTEL_rb zbTo;|4;zFx@NCnAIyir3W@3V2xQekteUL0L*>Wwy_iJ*ue;47%Ny6rZh5!pja2mf! z>b?ROUOuib!NP{K0<1NNt2o1&ak-eN!T3J6@@*ea16e(}??)q_Bt(v&$bEzm6C!>kkg>Lfl>pUGt zv~SuaXIj35)Br08O^D!m%?%BH`W_LjTmDN)N4{Hx=-E49)w0I?85quXk~cEL$f0rZ zMW@N+$~)M=>&=?+5LgRsXlHV?(4!{|A<>6eC)kiS4>scI0Q>I6bM1ulw56f8i*TXG zxQ9D?mu4^g`@;pN=2M&dF32g!|1yRaxs9&kPU1Y_5u4?}%%3^r?>4q$*71+4J3SVe zwflk7h-I~;&d_X16G7IALEsiN4;i^mX%-LqkFGS;*oS{B`mN#C_Ruh3=pY6!6{W!EPKuy3l z_&r91loG($-!Wsh`utoF-_$ldQ+piWtZ{N2i_e)ak5?@J5q^#Z$>WbY!Z zziT#UzcgNiA21YMQQ@KOgOTN1OYCM>uyZ`e(^)E*Y$X+XKBz_{OOz_kf4O}s9LaRZ z{toG&MAteEqaTbNo+Q8akGGLGUfyshgPSv!8Hk-*^jf`jHfB4U)XFQ^KogG zrFpx`NY1c~b4{Aa%FN1v{52^t)3IupvFj`jHI`j+$QsMQl)A{E4-fF9rePC*q-|7Ci%RW1YbW>n~Pjz zE_B(5zv%;&P6e7xETGaRJ~FgjEe3BIbCB!LSfBC!XQZW#vH6cdY$u|wRvioZ^#>Y- zYyYPD_${-EjMz^O3%Ml_RmV~_gWYgjPRrH$JLCl0la4LT58>s`B1=5W_B4E#Q#s9R zeY69PGp%;To~+rI*!9_yg2*%P_h%|R0l)c7e&;oJazaatxU6QD0A94i1%jD^fg|Fq zD#1;!7xp-ITC{AsseTC_vY}xZ%w<^p_Iqykp+?@h27x)aByPE)%Z!k4EwS%)%n#PW ztH!pbwwfqVoI%%`rX=GBY|2RrDT~))bJUoS$V{~*rgshB;e|PHdVXx4@_tAQ_KC1L zpLNqzPjy)D^s)x4=m8*5hDY2#oB-?olzN(_D7`ZN%C6VYroUy0>19*a(hQO}Cuq6r z*pP=|?`<-xBaSyhZl$mh2^)!5ul6FGBtDMp~012jax#1?i^+1GSlN$)$;o~H_ya8M0g zNkyB#DU>yA3oFg<8doY0x32n%gYQ|k?TE-Z5xAFbYc8)rIF(17!-C$S@#dBwivby! z4^h8%s`J1UD-mlc((>JR>xL7@CxxMvW_N@aym^U^f~kzc{dK&?bKBp7^V|a{*DknA z!6`V%;KoJ#lzk&eiS_$=bK`#}cBm-1QSlirtr>UuQSsq@5%>(>`w-c)_x7#6fhkw4 zvs48Hh1B29ZAVdi_ADFOA3+U=3pYbV#vRmjefHttJY&-=LqU2S(VASpVfSd;=;u4L z)*-N!(`E5)+HS3Q?hwv&2B?h=)I>e@N==dCxRji@;0e-C5Z0OBh{|oh4fe1hY`PvA zGfAgj&)Wog8?QenU=`xNbK%)k?_NlDuY#%9t?o@ZQmbdo&$YeMiEa9F-ge;Y-xj!5 z2p5$3WjiU+h$Z=X>tCRitaLDh6{r`#`jR%lXD+VY@_CAiy~SlbhFU3IZDgij?oiTe zQZ>tqO~Hl@6}?|psr4R1y-EytU#B@&`j_ddzTVv%q&Ys z89f*8uZ%Ztl4!~9?GSey#RuI^vG$$a0sQcHWF?cpC=B^djvGY-DR(Jl${!NDyOE$^ z`=@V1>@3FJ5*v>WE#qy@A;DgN^-IFXdr zv0$kZK)VH-Xpq11AwPfUHh@8Z=?J}9YJ>!UIL+?M*Our*jShzV?#q)|)nt}eV>QBj zy@Q#e0+`hlk6uo|zIAC^>+3#~!d$j(i;$EAdP4dct&FVCN zVFGtA7lR$`emP-&H}%Wh=Ou}`b*0Al%MdVS(8JK5gY{we7U$E;_a2UL{4=yqAcP^3 zWYst*>%2jHB=v({-*wML61cw+AFeJ~f3NJO7bi)f>8hYGXRYYx={3jrPd;*xS?VI#i%*qh-ijr06#3fKg~fNo(t|&y zz$%^XFU1#;H!fjj=CKbwmmTs_SO{vf4hHVWjb2G`cvxe$BLE4X0umX^w~vO>@ef&< zMi;(PWz%~PI*qAKGEI$p6J})vFZ))%_RfL4G~J`7z+VAvjGf^Qn5tNb-21max*6Qv zHkm4N+~OR#wEN+hP>YdL35cm{w;GA+oQv-Pak<%UZ5s2t1igyn(;1A6QEs>zIq+if zro<7OG#^N?Bcp($5@Z)l7P_J(@<;-(>EsJ!orxkcg4{P_hQxI!OBD!tP1waGUr4Qx z_*aiPVa)Cuv32ZZeo ziQaI+V~ef+zZ80rORlEf-TcwF7VW=PE!*F1=3^b}gUbj>Z)n6=P4w+1oCx_FXZkAs zV=dz)qBV^VtjJ~ksd+G`(Ae8chd|^>zs3>}e+piOV5k@m8*#0@~0H-4@z@_OvtO)-Gx@+F>dRQ{x6jCruhQ<#&6mRCgKly=B)_esV;m*9YIO3NF6E&y2exydQx?;EY9S_JXI0oWT6fw|k= zTmh_aI&KH4qTo`2j-iDODfWsvUj-sKUjz50@GF?1>%jZsC>c4zK}{Nv`Tk8hC0%LP ziprh7#46k8T3k&|N}er45iX0;zqFN>hlTslHo++YTIrpnii!xNwp0Vw=o_pzJd8Hb zLTafiJN#qJ`u`0h4d~*VGyT}VsiYg_Ni2#o{7&Ii?OEv=C!w^Jx@=5 zFH^|Q!asK!)q7i{+KDMxjgRl=FuT3wMQ!0;Urc3pq52ZVUs3r z^7*lyD>*5Kcr&b!Cf^Cw;Cl$G%4=tc+E+;ak5VQ4y5q41Oy^7~p_hda1d+ ztKrf20C4;6LZX+Ds^Jd^xCw2HOhksR4DXVPscw77M++u+NGmvWe**{uqBiKtb+--L5>pK?!jsKS`%j40FYO z8b7BT3UVbQmh2g@KTeN?JXsb+|Ft%S^T{ijo(+9c*DA`8=W@>`D>U(DilF^bas_Pn zC9|+_h#5a~KwWZ(iCsz?RT^49$O$NQU{u~)27_v5H9E? zHJ?KLa0TXkJhmnr`Jsj(jFZ*{U_iUzteP!{>yYGFZ9bg%_J=GC1b}Vy`pm1bToG&) zas`$fT2;=UY3A)cHQJ4AaQ`bk1YRVE@X&dN6W-uVPB|Y^=~Y@k?xoAPyi;n@YHX}| z)am}OefEd@J#%LDiPT3~ZWTlNF6x~3Hc7P6;i5sEe-^@-dfhSbbEZyCDu7596=;en zCFDv}GfdHbOP;CS$J)${b>QC%EXb@UjqwGkJ1S<{2m_Yex@A6q9xCAgX^mK&LYx9< zTdBq#Y_AvxHjow5&0?m|b|WV?^S-Exa>JEcO#K$xN(_kK-Bb{0bjuUV>X^`|Fd&R)h@Zcb@pnD(v#SEyUeDch;(Jg{$gthpnbM4S9Bue3>t~k_y$T{3DPFxV!Tu`e~MLZZwX1a)(DODfZaL z@W%fes{6|Te_q#nz$)^ikVZ=~@Ufxgc>A7}Zr=jrxB6d-v^sg>ac*R@^C0y5rqb11 z;P<}f*B4uR1J+?n{S8Z1%JrksJ{Ico7e_9!?5p%UjhO!Rx<6OC>!Grj)@BVgB)8;G z*s45{4hiWI3l6-$FW=z&;yQk8z0c#GD&C&)`iqm2NJJrm5ME|#8P>19vfzm~$SE7> z&k#HXytK*gL)=;SW3k;YDi!Yojd%2ntaY_F>(TtB*zs)NuNU?ikt))rR07ETG^Xup z8(Q(n@fjqfD22%L%_#;s`8~A@h<2S4`)PsgMnB%$=Mu5o+^zijd?CnF+#oHjK zWrRrK6YIYe0`upR0?o@;S^{)@*F;b6g*%ee`!324%!W$WCz#$-Pl&PQG4_taYe_8*f{}5l)Shc)vw`?>u?^Zx)2}#Z)K$Y!`ZT7toDEW zB%wu%OyCNK*aN$Iv)@OhHC8>g7lreENCrRC$Y6r|x+1pMh7cC>m%?S~qs`64M48)5 zl#(^-0|NgBBk13Su|=e1-(MNu=gw)0G1&Kg@edg<$k|Es?T(bYG>|~RGI7tDY62;p zHd=!*%+pJO6a#kRB$3#>M}@%1AntS!HRr`DY5Q#=|L5QWXtmBT-ZlmTr)Ri!vz`-m zsdNJwC;2VK6e#b_upmCFnK3^`f|52w5`~*OaF29)P?^sr)wrWs?SSq!SE>fX&O0QJ zD%$yrXu-T77m$o_c$&`&chsDT;UnDb`HWqOqP$*$3Jr=kN_u8g|0n|Wr}`HpOu0&} zNhfG?jyU~dU#j86=}%?vESr=LKQlX_;>+rPc}-_7DU?Y#nNR?cx}injyf43nWFNyy zeW>qO|MEh>gfTMAYA;=@zT9k!RJS_1^>pOa*U4YKxoyrO>b%N}eyCTWU8OBrJ#z=L zwK`BfthV}*;#Y#k%r}zb)o_`zcV<1!F_syZ)77Wc^Hk7s$njzaNO58pq5Sf*zFexK zDt?7;y-O`xl=C#pYXE7;Gnu@5fvVLjs)hxmi#k+t*VaJqzMyLO zl9cH_PQA!SHp6QmCWB$OC)FR-4^*CAW==v#`h%*Jlfk&)&7Bj$PEe}dHTL<{qk8WT zPeg_3bDR#KHmqE3`@JTtgxJm(BZysuGCY2ra!KNaTCP;kszfbopPSlNU?%0=ywH~N zuEz+y$E#Ddx8&x-SE886r02QJ%pdJ@4dr5Q@vDPO=}wgjA9fTz7&ZpXq~w3!Ciipj zqe3LUoOr)7Nc7BZdRenr|1yAy5fnG7-LDeY)i`j9S2zXog@(58W%ogvBvI}62Cafa zuTd=SQ)Gh70}boU3zrjn$2fx3LM+VxDodbvP+;%T0a$At!;A4*o7%1AdV3IID2#qg zU&-Gd=?9>_=tI9?^lUhq%eaqU_r#N84DN?#GN^#u|p9po!oS<^H67D*Mp~ z*32Cgm$z}}4D^$Ys1i2$z;T4aP;Zrm_8x$=0WyF>N`(u29X}A9VNXoY<>V1QbO>gCxSL z6{XEetYV(?7!N5Hm>vfhY}}1ZAAYA>XSgh zz2KREpaFc(PjlnWb$W>HDMM_Kz~y~CpS-r0iCv=+-{M}kL#cJ)Q(sn{i0$V=y0Ts{ zJesPJLTt=0;91}==Mo(Svb^_FU9y@u`ts3^6uxWdUEA|Z?7k;dZ1^l%Dt>NblJ)%~ zh{Rfb1k3j+i@ciznW#9oJZi|*o2S1!@T1WL(=da+!~n)weSjS{hLC)kwv(Tu)cyFn zRBgJH3+a1i|{I{yqZ~>YkLMo)=TU0{Lz0HEl|~v_6Q?8C6dm-UDOpW2~Um=_?w+ z3a3uRr$!G+=8$PUDv{#N0^Ov%g})Ri9xY8r+Tb9=-GM^L^xef=)hAhJ zbk-&s8GhfwANHg$P0lz;L{@;8vQpFsb+c2}FRFFoc4}G$iUTUj&l0Dbo|hkgP?V@g z)rDuYL}v6$1-<=g`f~MS36y8Lk15)K`g5@ck5}-j#Fw?Mt##eiDwe|(87j;3s;6+M zvGDF3r}e!iDY1UmE3T41-9;hbnTbA&@(9Vdb-@jSJEhAjgP8L=l1HetLkzyZ8u&qr z$HOm#%Xg{qc<)lXkune21`y%urTj}F^p@Vejs9>NEt7t+;~0R(scp4_I z)(fE#n05v;BZfj&(9dN}^Y>JLX4Y=4DHzSnuz62@a~aJNzyf+cQu9Y<6zzvUv49Z! z0p84)yBrGt_S!DIUChZ5jN5;(f>IVdi1?nS%Z?Oj8QDLbh2V5sJ@RL|u<`CsOyx(n zo6e&nA0k=()6%!TBMKvZ2sN0X!g)TrLRRE7$!R%+EgVO_TZ^;=_0#Lm<7>#EVEcp7 zn5LA}U!Q24E4g)Mc>G^l=;j0~H`7vuyXy>4c!xEw6|cxR`mh#=#xoH@(9)w+Jv0a} z$%}p8;xPNXkAafsRf-VidE#aNzS6hh3o3bjTieBw^9+x;{UQJ37xj_q%CrIb#cxgecYj>3OK3~kG_x&>_1uGrg;gs#&h zqZVY279mf%=_4T@I@?1z3lIhyDYDXMfa%@2(nW#oU)MW@2mp1%uHTNV&mhFm4WUEk zR<$kJAoo_SWy^#73z7fEA)fWAQgb@kki9ZXpH5Toe~;aS`3XOksrBC@QD*gV{1?1) zf4#a_Nh<_25V0t3+%e0^31SucV2r^y-|CO86_g?yYG>|)-PEV|Tp|z|s^9i!c`0fu zZ=I&fUJvIPj?-Q5uq_}@ngzc0Rp(y4Q1UJ(FhLX)2St@mO=U_g;7re8Uq$$f}@L|-qPCc-f4yed-ZIa5pcd?6XXR z`MDr}pspLJ{Gh2IDHpgga@{4gyCUB1iLEl&~bziK&C{ZW_)HIe|q|TJ` zbxgAAsBcKI__VNLAxPFSB>AK@Z9iN#i~!MML_pAEIwAH=QM|qMw5@nxriAyIzanp^ zDx-H$4xG$dzzqcg%*g;FPD(U6*)^_Xvr$}XOb=JA4H!{FB@?Dg!jk4rq2mVq*Qb#T zd&j265panF^2V%pft(GHZS~yLh*ki3#f3J@UcYS|2;vf2;*x(m~VWMm{GeQk1DLux!O z-cB3^PyTG)V}7=6ROrKcGn@yhB+;Zq4wD!CIp~8WBM2p579=AP&=Iq7sy$uzT0&)* zKYiv2SH+o30sWTZ=bu;MnPyWh7=C=0zCnS` z9A~cRnl@^pP$aI-T@a;y?s7O-hZ{lBKaR;M5!Bw(-k@AQ=W5CkptB4mC?v28JiAO& z9~MY)440`tG=qY9lGRTb_Hx{_gdAcQ&AzXk$DV2^r4bjR=@tdTuuF<_^jSYo zQ_+K{E3?;E)(wg)Xp1}uhIi$_!Sr<#Ww(2`LE=d6fyrpg>Kkm}P`r`RxQaVFq&>65 z%G+c+>u>~?CAeODLxq{WmAR=gP+cl^vlkv)t@r^JYI%_c+NKU-u*RM+;#lxEI`CoW=p%WDYQskS5}K= z1%~|RWR2ngQO>XZ_8hbCC}D(>qmUnuuAe3!%o03GdZvGO~+Q0n_paN@VF%{ zlV19rvQF-jUA<9jfnpDd0|$419Mn{Z+j#pgGu{jrGL@#lRfJV=8-3%j=`1?PV-FR%z_^B%Y1M9H1KdJsgtqaAn$AF#W zi>p<*l8D8eNJF^8bcXExr5LOMT)-bXE_<5**lZsi z+o6trx(Ueo*=~n=J&Fay`VG=O>jWN{{fX*7Ubh}~= zVprv@;VEJpk1GQvN6_wi)dNthG;1!WF}Oe~w6BI@-;rQ^m>g_v##PmS;XF3lgdP12 z&})ZVT6cg@s&lwv`<{dAG*H&mhpGeQGq14Hu{y_Ah@Y9lW(|U)QiCzcM-(rh_wAdd9Zz{KNkn1j-kX&wrBmrHmowYxRR)xhB0%HOvB_}Zcf_`WYSmH@O0Q%6{QK#?=wjm4BO48-+O{P)-KCaKf50=pbx*xUgOZu0%{ii)q|h)p$8?7G9l4$O@~N4|E3sgN5)GqG?@AkM+yeh z2f>o`(!U-W-9hta^0+SR94>26=jEb$ae*_L+Wmi=m6b3*8yRJ>Rjb0IP2KkFw1iMS zpUb(ui04feivDQ5MwAPMn^pJlp*moA> z&wMnVgsqH_x2RkM@<|mTQ3tJVYE87%FYRQTB^uZpv=1yVxMDLq7Xkr4*NT0A^)*U- zVavZ6F4k->x2Jqy#jS`R21Ud_=?3r>IiBf@yweyALOZZ;JiSYfwnKqta*IoTX)L|C z2tcCh`=8zCWMbb>N;R(Am9Lo7b6~<*1|g68l(RJ-Q{wSa{629hVuSz2YcuCg+v3JJ zTpT1JfmRKbZa}Z+>|LINLfHJF-(r0|^HuL)cstZ5`7ZDwE;TqJs?s`RC&?IN-Df9J znz&)6nPV|QBjSF8o3@g~EG}=tq?yGXoX3pLATg_r@EKu9FiiLV1~&PlVZsehednav zHl5geNymzKOpyi$jhPyC#L z1GZYpI(X6|!2q$iac-1mwv_0(HHpma8SL{&I5VBxJHd3-TBzn8PfzpqG)r5(h?5`h zvtl0Fd8cORp#9T!+O$eIw0AF%J}fHv<@am&~9ew9S0=JaDGr;+pyO3&H(Omv8}RAs#iUqEofK#EIN|FWIrhArbr zr0w_Wkz8l!VF*vS6C+z_yF};xj?IE>xl1Vz#JOppOQPEH$zO^nI%x|@4qHVBPbE!E z==2L~4@iDr%Ae!BBUM`y~`F2`r%H+ z91TN01wNBMi6Ft+^C~A|`CXBmIZB&*m8`JoG^@Hs1!o&D&K>*@T1A)w#Z({o8;lQr z6ZuA&&ow_6rNTRuF3;m!kX)^V5ggP?p#+KJ>b& zzW5j4kEEL7U>o+qQ!4kOHiSj+U@56H`v>(Yt6iyV_&*B7N4@PEEebAqO+y0D>%R(o zY0=vXSD;4pt65sUHrS%EL6#8N&AOl#&@kW)Gu)9Oe77xQQ1?8A|MTu6zvS#RY zr==L-9~InF-k??5R2`2Dey%h~>7efp2L^DPzr&8NtI)soO^N8-{!E`Uz+a?-kwCZ% z4rxt==&hxEzj)n8G@XH2lheB{2~)Q>cG04vo!v_;P2$HJaeD*I+PcciXGh(}MN3X& zX{C*RAF_=ix!0aGsruR1I_>C_}6+ItVj@s{UB4_bI)*7weMt!pJ2b%uWwxV$$_{GK@?hjZ5K; z8bTg2m}f23ahvGJlGTDXX8X>|@MU*D^KP~sjYPL|>rL;^Ri1Sn*iXO7B>a_=^82tV zZ}~%Gj(pbHbRk9)Jn)w4CaU9Mp0=k)DUV1(ULb~jsS1#ivgr0QYN_dClhp7CM#0ei z_aW>*&BxtUN4c)E+K%!kwb4ubJhT`ngXHCFu}uILdFi@7P2nwu&?Cyj^jo_Q+BN`9HW8;Fqd*L zjw*I>C*C2)Rg^dBh>@I525Xd8%Dxj`$GR@V){mpji=L0fxfdle3U4yy24|h(-zB+A zaDvQaf7I`5I*T75O!N~#p!A)6HGLdd)*O8kRpx|Ir!IOx7TGNCJ{;s0tJ+{#b5Tx{ z$XJrDROAtB7?gcn$?00DhwGP;w3PRPE_v1Dug)6hTDmbwfH7S7OEBo8(u#Ss3hlxN z_-iBE9c5}me%N-C?g&BgD{r^sn9ijj^%vIcjTt1iApt%9{%}y|Gs;5&ZK7-9gfuD} zeQYOw#7@PCiSJfKnWVk4UDogiaOM+nnht$QHOf*S6>W_8e)2ek2 zuBu_y_+v}n$cqlKN|sz0jyV@cdEYTqMHG{P^=4lv0-}Rb4(5o#4S+8&LIgC;@UZzP{g^x`Bwan4MX|L^`$r`yxl;*1N2826C50D{nQ28!s0B@`W z8lRS%oxq$V6_0hq@cyqYoBT-J6z_uk?x64ba`-T+AqDLeV&Yi#03iSDS#?dWbX;b! zuWCm%xL1clJXauKrFJZ-K~(ZBm5W)!hLv)Y1*q^IkJM(G0ShX5!?TPt7A+Ox)9B37 zrN*!`Q)u5jHQ3{<9+26hK}CjlWY2K%mBnN!D}BpzwDk%UJv*r zRb_y?vT+y=pAB|h$DNre@1jBGEKI#<-oBu6vu?woFH)ZIPgcjPhkV8u*||quzPtk9 z`O>$IW32IIS_-dGDd?VzYl_9QHjb3im+r$evWJKOE@gwdP0f8aE%vc%URY%pOIuG+ z-f2AV`QuI|6XBJjjV-tK>Ppr<`Dc&ZKOFv-p8b%GUQMgHZ_ahjP4(xYu^%j1^PRI` zWl+v8m2Nz}B!R(@kjq~rJ1`x8qn}@T&~LK$K@MrWah%p+P6*47@q(o|!CG!Vs#3X8 zpQA!4@sDnobO={YRfOUqy9~R_i-CMHUe#)d3teBt&j8zO>vD|ehSi_W$w9_{p_0Id zKuf3)s8lUh{Z_z~k#6EzR4~H}DK|U6-J}+)YHXIae)7A161x3e_3@0*Bucv4 zhSPwvH5Zx7r}eiCHV27gm4vKN;P!-&?hXv8=G{+gv5Ozqo0Tde9@D z{0NGVLDj^RV1~Zr68&H?MD^iFN`Tv7-RPJPIXj7RR(_RzuR$m!y=%PbtuOi|4XJ>X z`#Ryvi&i1gN3p%YhYl(YZj+{_MO$+!Hn}2iXI$8PUEqbr(c&@+v#Nurhi6r6#=jRE z1y{a`a@wZh`K(;50XpT_OAI!oLZI_*__qs1FNO^*q49s~NB@=oLBk*#ss(pc(^GNw z_&Kx65%Nv)u&a1b#-tj!@|kCl!dDGtos2|R8op4`0LXJ}s1w$;NAE|^?2hlU+jFT? zI!#M+N%DA1Jev@mS$0PVHM}2r93`WPXHt$<5EtSzLsZ*2F0;B3H&&q{8R{6Ew^Iaq zp#_a>Ij|Q+lwCv-e<5^1Xy(eU@fKbf`AwdIm4l-EGy**|zKe`^|HDid6#Ss;Pp^b~ zi-0zzsyw|IINm3hjcQ}b(58NqHm)E0PmxcIT zm(la@gtuaHtkTb|$Kzs47&x$wa$Y8Q+ew2UDLg4KKn%Z6SMA8Z%Z{_OoqXra2S+ZY znotR-@6=Zw>N3&)QfD~)KgW6ojWl(^bE{*^!ze<{ru(naniJ|7>KXT68a`p|Ct+m> zNkkRl{~tBPGbW7zP)2TrBI^B|abU|4PlF}53RPc?hK)#jozCM1Nr`z^s|Ji~ZoRtv z07wGoq-m$JtN*0Bc_fvCJBePeB`$vz<{dCj{E1T?;-VMUWBWD(njurJ;gEIHnt1$3w<=bPQP^o#D$5*+ z+pu!`WH0$y4=njWiQ^B4QgKFjvwyJqxLx!>k!$d$pKhYzlQL76Ii5RuA)fF0{ee)! z;-{PzoKC3>^#p?jefrSic=u4eb{Oji%=a_~Xso&IStT^^`5 z=Y=Lo8fWsd{>f3Q-AoUx?%vS4mCs$do5hD(4;Ec;)_vna{P&HN3n`4|_~#&JfIP#r zpB~Oks#_zLezT?lDg5l`oi}T*hF&W5w|Ccq75~$Rm6Q$kpS)UNW__m zTaNUo@>x}DZ}(ScKMmj=a64xc_!!(;QvB>^ta6HX2T5%4Y_x;VrAKtgvLr!WGN_6B zDYlRUT-_C1wVIap=C;Y$Bhlw(_wMrg88M~1oF@cJE@<-|4mW??IdQ$X<;t98(Hpxa{Yray^LU?x1wrU-bJi& zZ^=L6?SHC&{m2S>$LQE8%vf~fvn%)N^r~`=`OWxD>x@p_iA2yRmyNTe{~eY|sOEi< zmtAYk1QTnnpJ$#Ao?5jc9p$RK%^?|?2V%C_7wEJ5q2F(3!+vHG?gU3nKaD;C>ho)? zzB5YlzOU;E{slS%zj}Ck=FNnzN+LAT!0*j%S)89>Bd?@QVj_NW_u)^nkwftvSNS*h zr{_Kwe6rr_`8IO{WPOt>O1M$Be8|;YEc1s5=M48-uwt-W_S@WtE>47)fG3mx7<~ER zGWO1mWRqah{P}n2$y>XBhE?AUIKQ-*0efUuKltCDNlhg_HT*p6nzrG~^s-vd^=3`B z4OY>`hcJeW=yjib3!K~rp)6!+U^R5Vt8ta}hB8QTBRF+jL}4z}+0`RtPS^ctVN z`oxZG^mcjUZh&#Y**7t9r~93k9Blmw?xAR2jJEKqwxam4sNRIIw0nN?>KnG|YHhUC z>csarE^R}s^tM!YCh_I5-p!getF$+;8;l(ljz#1}qKLyaIW;Vy-B{xNh{^kDx0@~C z>hgac?_?NOpIMHp8ChdSZokO;2z#-W;Gix4rwK06^yAOespP`F>lntX{-^r)%8X=u z)3@^qOuCYrILdIInZOUr8>kYk+4YxJY%uBLg zIOknO&BZj75`2BjOui{MXAu+14Kg@Qil0_Lovvt(#=cw4nYwph+~`1~ha|nuOZ%V9 zPmU6Oi~rZvnMbp=e*eGUd#l=NDPkzfB{2u3ruG^>SHu)kRB4PALun1AsM)VICsL9S zigLv~ODHwfHAI`FYObi6XhT(rdF(Iu^ZotxTkBcp{Bzb>XP@<~{p|hT&-2=VlZMrZ zNH?j4<&tK1@PJ2s7!?8gJ7@j`Yed7y0_epC#ttFb(j9Ra@0q3L2)_fLR}$cc3kK8i zuwH}8rIHAnX+p67=tk;5Q*5NbHOl1eoj=~Ol>?m=f;H28$m15C0o(Vvlr;#px+gC3 zp`BO8e(Wq;kP^HEDl(q>XX#OTw;XVWOcz9s|7lhvezD!_OkQXNai;L=obQ=@+LtSw zp5p_j=|^Y4y&^<^H@nEO|7?s8P5CLfwz6{$=u?p)~Tw@}Cp>*BlJXgL;owa3Jof~crn)fu?)jGYvE9=R|oqOR8)@mUZRtT*Q(7Q!-^$*rm8Nt!-jjz*ID#=s+ ztt^MTy@#1@19B22XYiiZks=#;CgFk%>pj@4>%($~ZZ!7ds3@DnN1#3PCOAoqaQiMw z*WBG2?zagW>E0a@;WrY%v$As|7`W!864?pYU*{S*4O&dX^b&)|^VGJMrf z!p?e5o(b+{EWe%O-ueV&#EUJ(WGw4BVo%&r@n5AV5e;*OXzpaQ6dx@j)vw+C z^;Yt|=X|G?2lM^v-V|LED--bm&MAqMt>B7&s`i($Jlep(03Ga2kk**QegaZ9Z)?!i z@R!EZFR>`-eLxoB+sC)L@N(XTTKsky}h;+-F!a<+L_NTW1})sQ&Amr$Gwm z-~+a3@x=6pVV`cw6wjgyWIbs!J>DZmTzu$=XW?yk$0@IX&B|W}RdC9Q@ZBYO<@l#f zi$#1XJlu0OHIi_Zs~8MH+kgXsK3rNQew6V0t6F`_eoN5JaB_ke!3YjzqBlJ~maU`g ztE4V2;`<7actYJL#l51itf|%Todv!%=9%MYK(0<8b2=MqRVNGMnFAe*8YE?mb#^ zpoRmF&17mLymN3X#IB1SDC)b6`O)#tw0Yy;m^hKEdRkiYb)#kEliVO)2~Bm)ipr&j zef3H(oA2eEU271Y3yb7c#?pb$@*`_CnzZDt%K;12irIPi$)Dna{6pfx)89=*xRZEM zobJUa)TVir{ITN^XHdsa~;5ox_sS3Pz!B2Je66}j~D3s13Fu(8itp0THJ z-V?hmuVCO6sT@V6?{3`amF zWKH}Wc%?Y_GC4ysO;nKnT|ZL`0~Ow!!erd z&esdOYln&z3Ab4!*=N0ehvu;Mxi>pqqwMSU%Z7iQyV@U6rrW-DB)utmdeA@(+WFl70R{#q~XPb>wUuZ zV^I#L(fX-Ny43cmUCXSjvM|I1>bEqqmM~q1szyC!lWiT5EsSg+|8y~W!|H~H(ZjnC zfQ14Ke0g}NC9`_EDOPSTNo9_5+Kq2_G%kC*8#r|x={8iXhoIHTguLrp)7I8oC!abA zFf&$Z{YkZXP{`vAQL^=GTvT;ZG9@{tS?|_g z36HLdj3GaN9dFek&uSd`KXNA2Ijw_UHxI4`YO8lv`Ug$a*5vcGD-c^dz~m91l@OWJ zjAalF?3F(OSyRUZ>QZ;Cu#3T^b$<4}ae(zS#UBG3jo;vUPX zsnu?-H`aJ|N2Z14%5hv*Ld16}iCqfq4?oV>xn#lJvLEV}gY@3U-MEuQnB(FSol)v2 zcE4ZaI!u@ptKU-8dR!42tS8~~#XDtR)|+Vl2lg zsgI4u7*QQk8Wy$pNpZb?Y(&hEqOx)QCtk(DGoG$jov|aXONs-|`bGFS+}T&ctj_8;Mfen(qfAJaDF6HZw#9cO|M;qNDg%4M5xJi zRi&-YAM;b@+OI-4UR4`Blhmq4QaGGAd25X`W)vLrk0SN$uDY&YPglyM-j(a-vzHXA zK|0y-rfm{@;G;0+(X;=K$Vh`cH~7xj-hXfGJ%hry_hUnhqsV9}8MpV;91`0r=2f(m zoSRMNNs;wQk=2GZuPPdu4;VDhDl&>ry5}%eelnsaQ z^2L0A!}Mwwg$Gk=akX?BU^jaW@9@!5x7|mc`#P*R?H_nTk815Bb(SmMo8b2B^|reK zAkgg%;kGcNY2d|^cgtpvRVdnE6UC`L(n9&KbGFT8kZFXQccG5oJ z#z=fHxBW4nVEs~7{+>);1J^{gq^v&}(qI?D2%HK{Gb7Viy6*vb>YuINXR^)eE!~fT z?r7#&=&0lsVK3G$td{u6XcV`fsF!BucMaOPUOfHSm*II&wRB7L>j$&Di~_o>%;}#y zzGjICqkq!@q3k>iO~H)VrXCMbCNvdGi=h?FlDE3Kz5qHjqOtpm#1aQRKh+ocUaydz znT)B)J5wsFi5aWb2@T{~wU6`U;LIMzyHQ{{@+G(|DO&dc+*2Bm<#Zq=U5H9 zViM4(2l>AO5a&_Db6!zT9b4ELch5?X*dvI!up?z!R~c@FmF#AjI@xl#I37Q09z^xd z!87CkCSzp9)3$2~Fq}e;k{ZKPIE>KeOXdsiF2&Du2eVt8g_y%-->}T4TKqSJEM17C zMN4)Ex@0IL+`&<}{x8WtrxAM7)Jq}idW;-pn%XNb@;CG-H|iO&#ohqtXqg>CSSn-Q$io_Qjv;8)R?NZN9+Vl$4}F9WbHXw?@g4gn9j z8_6*>@_C{dv(IQe3!@P`vU<`qmhs#+1^ROS`6OE2Spt;LuOalX9(AG~(PEK595BEQ#b|nG8(>j}eai$g2s&EK4Uba4nF;j2h zoEuo4GQm7zvNNoW$u1e5ZIDQZ6EyasuUT!ar-Cmg3*ML~&V&NaF67lTx!7(=CAf4F z4i(eXSJPyw<%!jK=8 z_+(47$}h)sWGXeQ;<{$NdfA>@UQUN<(nc66Qnh3ye2S4_9sU6qS$8-IR~N}nBM(}J z(3G)Xn@oR~Rh8uHZCE%l5_{_cU3A}iJ4oZSRsGMA2FR7d-2RD2LS*)sksn+y&npW% z(uQ9}PI)ui(}eQAnJ(Th+M@kS006b3ZAy%nmgPF{?C*bNKX^B#cf2x@p}_7e%crst zNS}|739aG+0s;+z`h0!Cn#+zpDQSWk$%S(9s=v+^jna?O745NVYcc5|&9VhhYNSEi zhs|&iErPpJDpqLF1p@&7<`gV*W;`L4_I@p~v-->sX3z`yv9~gIS{B=;5m`77hhKT1=wrUs{UlBeREI_50gNY5))O4F?8*Hf&E%C1&FA- zY!+~d@F%Sa>2tnb%2R;X7I(1k*p!rXeY3H?`K96S5E$(bya^7YkYy)s3ir@X>Z9%( zs{A@Pa_D{fer1`tBhB2oIb?bz0`AIZC7CCDg*!#EzXT$}0+Uh7uS0dM$?k2U+N0{5 zGwR+VQ`tv0eOsKpuJx=Fh=5>U@^?E%Z?rd56w5$*1v}~c=s85y?jqK1jr+7b{_l9? z8Ni0SG&{109>}AR3CC7Q>T;PjbNrqiMwHRipI`90)%mn#?{T)s7GcGQB!At1Z6tY1 zYs15^ikW6Eb3e5pC{&B?KUNy5A#~;pd6Q2ocj=P+ z5kZT&f^XF_9&vKUU^|?(tAWW{3(5IFMYWsxlD@AT=kI8Lq9KaOjJE@iTQQd8NecUr z6?6%rcK51Jle0uaz6h$KT!~SrcMO*l;otQ?$(cDRnmMU)voU#m_Hit|gHdL{vJ#=X z4T`TQRh;Aok_>*nZU~Ds>w-}wS13GkGHUyWgBb5_w zGF$Xw`}e5*#l>OrlB`I>@JXzOE;d>Djc+fdC(P=8c}~Klaqz-XvFT-)$L4BoBOJ6( z^@fP3+(0ReQhu{|HGq7pdk|}RTM_zJz!gl_scK0!HNY@EQXzHg7`&tR6aDM5(OEmzVfm$Z7fx#~3 zb}jFd`aQzT(p|c1Dv8dn;_g0CZ(o-Wxr-dWhwVlA4#CR%5xwz*qbhk$nPcYw37*()+kS4${GTx{I}X zx;nC=E&H)DWaV7CuIwy@kAwC!Y>044$t)DF z6yf^}6_ZuPd3p|G47pb}PbAazB(wDRcqREW-hqm!2XW^;UgSH|s}4}8p4A!G{$v?- z|3of?yJ0XeYrgl6UcDk&i?Xf-rSMP=%W>`X!EM!P^jjeKHJpR8~@k@r=K?B5}Pk?TPF zn3uuq+a=>^YyA-;`o4wDrWt~1N!C`+bmKH6vjTQZuT%68pmrJAK#iL~e(*#-nt)QM z4{t%LH%e=bk&==WOp0E2eIDIFZp|2oSE!tb-gzjbJhdYY)`e<`&z#tZ2s!}v%~dK3 zg$;!gu9(!jA3QmcApD+A_`#Q8n@uxUYg_HTTRD3z{STZ;x&EAmGrWu!M9iz!SHK1; z)#Cg0&2w+DKX@!si z(c|11zB0ZB{>KweB6fDY7A4|`u{H|udtNI#|7WwVvZZjIyL@-e5!urkpnRyWu#beJ zro=F&ce$?`34hd@Am1&S2qLzaXiS9Uth)sH$Od^t&?rDVZ3Dce=;q%rUPW!>@}~$~ zd9xbd(@9Etm_Dr6GR7M0cU#|v=<5MqJQuYplNaz4?CnpH$(a+4aOJVQHDBVt{PE8sU(1N7`#b2R}`{ zt+3dpU3HC;zWGBwEc)Q#|6sIGyRuDh*e`XsKJjOHTXPl|BuQ4~$Gi22z+>A*DSXhy zN=(^sh?W$oEDxS^!_J)VncF3EpnZU|x?EOhU(L-;+{>TAi+BF05(sYts zJL(Ud)r|WPEWWYeUBHQxi6ndNXUB{MO{62zout+H>fyI1oGw0G&^1)c6sGP0OhElC zd%8n6#^2KaBF*+m_?Tr8-`ayulJK6*16l;WKbnSf6R^i#Q5bOGC>`fX-$2>zCKb%) z6b>2p!)%^~Sr;o9iSk|C97j$GnHAu?3M<~^nzy{-4oCCLl0xb4d_Kucn>ExFTNKWk za+wF}X|GHYf!9G(3bBfg@I@#!!X%lw7CJ|7vub{qW0L%XHT&*kFUGDMfsCAr`@v?+ zQEt2hCQ(jif}c!!*96X8<%8-tPl;9z)O8o+Yk~Cs`q<)!M6p2~((})uf z1UmB95@SJll~&2hOfxf>M<@+NRdrTl_;=3Rv70lQk0mfuWm#yYW0YF^uXAITF~siy zMF(Q>+@tNgXRwNvdHL~4_XR6=SUi{E`MX}yWnbn!TtU!1xfYo-9N5>>ArA;Bmg6X| zOOhqRKw+RhM7RL2w{e#-H#ab@Stk~iMGIxkKNfc$;pb5npl(m9x>)kZgi1AH?N#_ecUS+xUUsCQqn-BqlmoNs*jy46-%?EH?vO z&2?gp+jIcXABeb7P@QB^Fy&yys^QAr14Y^K$~`FT!$erPeEhDG>riQ1gwheoFKx~6 z_pGA$g}y*wX5sx4h@e6}cL@RN9YmfNe1?vegMT}nlhR+F>-UseZNx2oC@ zdad({nlG2AK(p-V9fv8-(#A2gc+NU^A?1SRAs{y|7C~nHsd*@77NYVsGquAQj@DQA zoMntY4zB(_+&$BR2Bv8$8=G-pxiofdC9zGJ z6G}aSBxvRnF#MjqvAIi=_db*k%xmy-TcUNVw1oEQKI%QS&E3BxcJdQIt|LjrM?d!f zNR(!tl^n`%U8*6TCq3BQ{M!4(?26a9Z>yv` zkOD)ktT~PK4EKfmTbn~}Qt}Oa_{rzr7Y`pc{Qfxw>$!NSA7d!rkiy(;JSl9}D{PU% ze@?+qrce)4V~TP!lH+^~u3u7AhM*)&e~0O)7?kv(4SDrmVlh`n{lwIT`fDVQB`>I8HOE+{S6h8@DFWdX$6;H~ zKDMTjHii5r)<~hYX6Fipg;J=kYzREO8MP9Lh=iMsc3!DBN%DQPFT9@mxz}O9I*^s_ zlG?+MlI4FNa*deS4fDqPHamf*^Dt=Y)$Iqn;O<8#8nrsJJ=^#~xJrxZWdm*@28xD) zUJA(ej%@Je)W@hQb73@sy{3Cp!sLvnGT7`36?+4d388vXvYB&_8#-drWA$@)#8jdq zc-G>!BQ=7H0k@2NEt2WiP|P4utAO&X3wd?O2vtnAojuOgk5nccx&`Jg+hFfcq^Uku zfZlMf28p^}kok^1F&zA0>$_cNOB4n^jj*zF9p-uAS+k ME6a0APrs)AFFH}pzyJUM literal 0 HcmV?d00001 diff --git a/public/assets/img/dashboard.png b/public/assets/img/dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..ad90622a97ed3bd17895d95a13f560bf49a3495d GIT binary patch literal 62560 zcmeFZ^J1qtcyP!tdtqmhwH zN=+EK5uZ1D&V76CbN+$v_i^}v7<*sW_3GyTB zQWEe-J8tAH_=DI(Rr?+(_~lP({R#j$0qq;t?>#eLn<7hRSI;=vM5Inm@^I1+y_C3o z*~qfpCW-JYxYOOIjPp6EJL#cOl1iCC*X3{_a#GTK(yn(sKSKg9UZ;tmi=^9_coHJ< z9Tul8E^#vEs;Zy)vtZ+c#m=VU(YCF5X_J>tLt)|c{VDX&Ou@>=vQb^m%&!*!5h-WT zzkPGQ+J7DRmUMJ8n+6I%i2v_5MjB4Qn)5$AN6OjXK|~znJXtSE`R|W`OA$dk{%y10 z2XGdG0^d3^bcX)#UcdJTx1;#)cK?^7|7GTX(9Qp<%D(uo zx77&#f=c3%dvdB`b>)xZcX&@aONz0AT6@9&aa~XeVp1UOZQnIoC=kp_Z0_5Hp7fo* zjKin5JbGU&T|czuv2~?#^y2e2*8HpQI3XQRu9sa5|6fN0)eQn-xPrkK?ioN~x<~st zA$^Fz%|d^di-sn7+lY+Dlw*^M@kr< zH-%hJ6aAHJLhomI8I8V$eX;mN$vM&2)?R`zdUy7<$~MB=oTWv+J@@vut+tY1&;#xu zXdD3Hv^oPJMqHj%Amo+1`}DyYcR#b^4$lN!pWNt-lJuE+b@(0gWpU5&V5UyE_GXye z_r-EGyjIJ@>FphMY{0}xS~fYQK$GB|kCePG>sRddbbIpceWC`=yZac*p|2IKXAcD? zr-$m~yAyZ=mX`Q9u;K)y9HtS4p_K9*NSdl^Hnkd^E*dH#l;5g69yNm<^02eSe5ovg zqo?a92nP06(~U8#(!DrS)LZ$B!O%xUGVtt9MYqx!@7{MRI_DjE&VqFCf)WrMcfQ9Q zyi3zR*`^haJO9IacOYx%RA<5F4}HeQqR=M(2wDaj^&5%Ok&RWe1y zK>;m3QIDKCXo1|l*k0z$2Jhr?e{^gw>n=;5-uO-2fj00hLF7l46g?+UkeLita&zr@1A zUf@iWr~0hKr=^|iZUD{18y$o!xa*sP;Al#_VRw&J~=!5Ab;-Cd14<6zwFnAhY ztI-64D?p9ziCdH<VWS|J_NLf64-W_+G=-3I%Y|dZFk;Xh^5upX}o&lLw4<|H1j>9j` z+=N+T-6r!V&0k%7K)(A1q>zc6w5kMvSg!6;N~vXSfYf_(K&m)EtFmja(?6WJQhAWc z{oIj_PQLqN+$UK*bx8}-_mfrq1Kvy$l_!!)lKv*YIg8C0V;tS3g=7VCe5p-Pxx(uI zeYrRAC0QxNj}8zgp|OKQPe;tHU z)reOrpEHoKQj5Z#kIxaVH7o0CI)R;(t#n7?&H1B#thXXQJ{o_(B2teRvhu{Z>?wAX z)kKp5m6Y77ZB79`>%|9(U*`sxe1;X!9#YYG0}>*2G8%xMSErtoGv=GT-$+q^pa@#n^hBr3aLcnCw-cetpH(u-E$a#I6Z9u5KPw*OO@I90(&U^x zZjC2RIwFaVvr%v$L;?oUnVuAmgjayUjOL~iDWsAGCLH`{1A}ysr*1U~5dhIR$mPm| zav37hdCsi**w}U(AFA09f^b=13eG;XiPmGR^kuW2A>pvKNP-QHX_t0^{N|`M%8&fi zKo*D2C|XEzboSqoM5gru6!&2&#Gk-5+b6$~Lx|si`XV%)!p#{Jqy|+G6n)A!eaL|C zU9k9tbY?8wb%<9$C6}^Z7)IJuU(0u2OSqCnnGEVRhb~6hVGJpZ2XVpWUgM^61FV$~AVYSD9%U7_Ygm?y7+{&1 zN2~4Y`V+(EkB=;uIjr5;h^2%gfU?kxTk(S2P~c%|$-8%?!?(bVyv%OBptVzitf%>? z+5WJ%{XU+f>f!~ij(axuWOc_~$}#6RJy_dQR$&NQ?03cH8hBSUdCD%<9bOaFe!HTbD6j)=P6!ZdO z(h~!G*F(oXE1a@3`XlP31TeLgH!I*%`sRPp8ko$={*_#PR;i!fD3S#tC zumNjYl{+n8Oe^Pkui=m!zIygeC0!?2`Di#M#wIOC{$}bxH6IqIf%93EP>^iM+!hjp zO{c#Cv;%dT`sacX|H9eg|$|oLTmk~1$$1Zn1c`(s& z^u7;gzRbbec)Qs!-LiLI`zI1t(h?q+yeXGV2H@7rx>bQ-MbIJPhI537X-Mh!+pEJ- z*iz%Q=2kDh%-s&|g3B$gOU{!P3b_7Dm+dFw3}<8SiPj&$cU_wo(K4cLBS@T)Zx7N=-`(;Dg#;^?~ZPlnfJnyRDRRh}9bAip@>aFjl*UDMG z#5?zIJ=oC1K70(Dso~i%P1wrYn6k;$rC!yH47tbSOtEB?v}mK0=HJw_7Px4KbxiV7 z(=#*GKv?xKHZICeaagOCgll`gDdE>YDHv1qv?$$+xWN>^>N;X0{VlggHMC;gB*W3gSq>ulJ4n-MAWH6a@twoY;S<6qhHD#muDL;8nr z$GWOJmn6j2C6WL!>l+o+M5GB^pnivncY=s8FUbEjVN?59bh*DTZfIIJ@BTvq{bSUc z29o7xlgqoDNM;6;I$nz;*G9|OJw4y-!tL*)gh+~()T*7>$^O13x7T103QS>5o!p|r0HW7K2+`-5rFr|7i28=*3n$XuO!+r#?2xX@xCf{rncI=;5;m)xjwN5*$M&l$2v zA(JDQ^tI|73&Z^%to!y}!Frf?cezh5dBRVITci6tL+z4OGIMsy{iQcNw(_%{$QDe# zTVc*PQGna$;42laS$htiwf|Hymk=_8WVyyH%X7>j%MsZ068VNG6c)tLkVpWMr4jB- z3(Ycstlt?2;Z6D&D$M^Qp%mWWQP`-j#lWWPV(fzVjovGV!v?JDU%xTD;StXfVuBEz zQKpOzb5SOIuKmjW*+EDGu~1Mgav5lvt0+sAcjGo8O)(sI7t$lm_v8hhA}=YUeLRxI zpOUXn^uSBM4&1KjT^_7bcPUeGdlLwqdgx^yoLbm|S+&%966b9qxztppvfVTm5YB8cUC(GIHHe$F6rV(ggWX(hkSt=W|cogpZ*t~z;K}1<9wq{o*K&H1a>Mi_Z z09b7J9}H})0VPyKpphyatD*;(g)bsBNSlV+OqifAOACB&Wp3Aa*}I&7_oVPu8v8Y+ z!#CHiqdyNaH{uNgIGV@rnJYgT893G%!chTIM{`3Z9UgqxiiQ1_@6R%=WYHCpeClXS z|FHU6I4Mx=*-tF!6Lz~~vy`$hr>SB!pA1s{QM;>>%`A7z59LGSUP3=|4pGkR-9?DD z6j_P^eI|?+8Efx3`pu!UT$6#le0Q?ysjq0iiNi&dZlFIZr5YdAbN0~ zUIhL%tsXhBaF%68?n!WNcb~J3(Kr~hC4N1aZ|aGn+PKiWBo~Sk((zD!8DVI9PRc2( zK<73j%PW1qh1aaRd8;ergDr)_T3pS@cIr#TWVWWPZF&6hwHqwy`vFv;vIJ#%?s?M@ z;;Wd3M)Nuw!P2!~q94@kNFQ3a=J^mXAbE=liNk2GK8C5Vt)pKh970~oNU^OU)8s0v z^!3wxuI@BrAp$YmO(<@mZ%=2anjfzusPR19b_3_v)`$+LuF{EypFzc>bd$-dx4TWJcxjMW&UyCV0ERI`>u6&XL1uTPOSH7gCMP@6C#?zk%sS zvnNmAT(1{EoIuZmn8h@R%iMh;~!XRhNibsMH~x z)0(Ki_woecSSYFXdaodmke0VmiziQo^VrzJ z@4hcYnn_rL;NK_dy&Q*s2}C5XYQ}Np@M8ok&TqNtP;3*-k$zS6TM=fV0~@j~DOrL8`p5M~`GtJ=mBhgvnfe zKuDppx!)wcM_Kk>48?J8?p!j?`cOV2RT&5GxG^v%8<64h<=Vq-+t*`lkGVlYLDypG z+<*wZY(N>@q$V-5_0Bfg{!F{%eN<%SV*PWBXqnI1Ae%@|!)H7@{mh?NMYukFaP&+W zky#ciRT^@gepa9|6d9%eDy_QD=3vQz<|ZKuFt~x3fK3fqMhW7{8^~PSY$)|ZGk6hW4 z@O`Nxjsbf|Uq0aR5wG8Mx+$9WY=xCjV#6ICGXzRb$FMas3BKCHGr<5tE zrp-M}O#@La{gah~F{dSZrjqAd{U+lNaZjX(M8M!63(LXR!RV6Ibf2j2iamqr)ao-; z_A8f48b6-3?J{&w=MZ^w%Gr^?gUxooU+i*XJG~c&W8@kYMG{egAa$Y6M zBP}VM6*#HUP_jt)T`+fV7$>j48osiI8y)Dcml`rq%4;Llq3z9_|yGJt%BX>l$ z@au?Rj;+*erd9;*vbc6yb$&r9+7_CGGeQ&GDOW2{s3DYn8-T1uXn7BzgnO zh^fS#4%1!z!b&fHEuR*d=-X3jQCx&YHlP6}puR&1=X&G%>@8(*j=8;+{68FH@p76p z2ymBlN2y6rdcGLS*2$pOoi~2t>1Yr959dLWJ?%LO^rp4P-huz?B<6spwX}Tpqp`XA z?|kh_UT}?FG+cgPO<7R8cESDVR^>ouIM*17b5Mp?=IhF)GRKb!9S3&ghEQ9U_Ljhh ziEuNk%hs%pYCZXs3>$fVg|)8x42hy#vr?VH_s%VG&GD{EWgLOAuLX>KJL`VNQP7_A z`;(kf50tMy-E8KnLe1ljo~Kpa(D7)`q8zT0x$Sc<2vK$iuRVdR(8mnQpeUHH_Q>4m z;jZhI0ER<35w^E(npDfM8Sg0ycO&%jSNgwoUz z?9;r6gwIOF!m_d#X7%yl{&3Qq@ejMgMxkmpC9iSU2Pyrr@@bd{q0+K$XRp;*?FWQv z5E}Z(ik(x(u#y}z*fX&&b|u8;JqDK!d?Vok-xHb?H3NL<86{l%1{r+qVg2e0_MdK! zrSwP5_5Tu`kABFtclOr9^Na1j$L@x5&BJt8-g+j%w9(s zz}`XgY}HjZP?qP1tLCozO}VVutS?z>K@&YEzaAr0Na{Zcugg+3x7eLz#l7c{nmPGA zWRswYyiEd@PHDg-UYs6GfqBpRpOG!_AEZn{yGQ5Pp6n|ZDPL_G@-Ogg*3C&If;yXJ zH!NLZw|DI@mB}gjSW5N|#8~j;CFz>$5*t;)LA#3?K)+POU|?zUqhdeM_;yp5IGE-o z?C=blA8a>mn79xgNW=GVNJ_o- zrP2KZI$N7XIjU;p8KW~LiX}4`BOm+d(qBKVP*P26<9S=nYt$;nYyKscRtjd{9~iBV zy!^;D)5APbbX4?|=^%oo<~rCU@dp!X`1@~E5aOE*{r=Y?L_;=@3gH-wRrtwcR;2cV zpA&@gfT*;&0*OPvG zYoDJlJr%&T{~+W!C?y@_JV@GDTLmZ~>=^`8jFGKS_d@}~v&~JxrR2l-)5U0|!?}T2EU361K%9m4u`o#&lg@`ktM>K-W0JoTFkXL6L zT~A4LC7P3=Z0St$4HIG*oW8Me34k@%5BNj$8#agfmb>Ix+P(P-^z&nETX{38nCD{J zwC*ZHENgTeGe7DiA?!MxllnEDhxv$ZQ#WPJ)}O;SO+RMF)KvL8AmMohFDBPY%OB;X z))^%mImX|T@J)wdZ6+N0z6kX&;aI~k<@a`XCg>9!(km5ZL{^N}BidtD>sWR0s^$$i zOnN}6j7M1Hoju&TWXoF#)#|{YVddm;SoQ(C7QiUq@QoTmtO^#})P}#E14T#si*hzc zd{cB<8GYh$*0@E&LN$sF656}<52}vhJ{-J5KJ_R`W#j62E29~CMlsq~Q^wSgt+}5t zNmkI9TcVz<4=hiOj8ft#%qxa(;ABbUqNIU@)wOh^=EdNd?GH)xF#C9YrRvH+wN>uQ zHkm2Um-ymNgooJ#f28wQ57xzl@rBi5w{B(tmTJ#b&99HGi%suAPmVdVw^+UQIYGUz zJbZKP26ye>)?bz#jcTkQ4A|Uz%5htnh;;b0cxQg3=SZ8M5abH*M>_bwKw^`XkfJ`y z=;scKHL#8p!64lgp_yHE!UX`vvg%$J1Qqiq9?!WL7*_(F|V7 z=Dyw3VaNok5qT|a)On6WZ7}L;@MrW%c3zc{R!zfxC|L^KXywm82oOd}^W z7jj6ov@AI_T|>C>6GGYZHtS9)x%Y6%Kn&#l9gz1)Q@65d^P_?m7X^JYGtrcVSd(f0 zR#}bC(OyQfqqv_YdHKn!%s_*S1|0po$;Du6O@;_c)V9xf#epOXc1UO%&M$gjU4k?5 zI7;-`8^v{}UFWTAr&jcP>Oh+RlR?j9&IQ5Q?uilx`CQuCQSe3rh|i3_@_mLfZ!e*t zXxgg}3=n!JFQcs1>jV|LJelfCY!2DM=+;k412|NDqyO!n6axi(>5*uLo2d2%cqTvN z)IPrN;Wj0w^DIWRk~nBQv>5&DO_af?2bL5d1A4&x`ccLz*Ad1s8J#LPHi+_Kdn7$o z&|{Zb&P2!esuSsIe&=TXkMnnN4I=dsWI&_YjTfz=3bHrJP2tBhD^q3E(g~J$E5E0y z-sV`D*4A#Y!r3yBC**#hl`cBbcYcS_Dekp_TYvHVaD`$7|5E~VfeSm)) zL7f~?i^Vsg^juV_TOUUp^aYbQDVoW6+lPR9QF9l_Pkof?SCt(E1ILD-(^U`5(mf+*6lj<}B@KA3fYRmw+YAUJ{$X@Sjokw! z9(ad6yZU2~g!hMqB~#aa)vR1HTot=8x+*z0X0+SkfJ%81Vqz0vg~H{0;f@CSm;9`( zvEo}yt4^nrA^YcP0Q}8zHn8rl2gRx1Y^iHe&O;lG<=9Bnu)%FVYUM8xirDl3rqa8a zAlwRw^?tjwscvz1rbyVhphG2{9Jz`=onM%vETYb>YwN;X1mV9 z)q}v6v4IYG?bHcYu}`{(T1zomqS2ci;%CHu*3n6#{7M36E0_K_|6SPXA@%MpzuWiB zm);e=^NCVhPwB>JVpeONNea>7ZCe!Xl5hP6<(3-h-j-u+?tdnkc$!)*ZA8D#8%gP%gHrfmGUOmgLzHrJ zT)HK4m+wOc3~=at?x_8)$3lT6yQp6<8sOm(8=Sn6Xmfi6_fcwBQfB@vZQ76pt)Bbv8URaN_bN0v%O(ns-ipIt%onVQdoRSNjq?Q@$*=3&rlrb$y;FJumi;YF6+nopqa;DisGi*H>z`TFICA>hOKLeoT4Z=H(BM z4%<#kWxAOSPN^REynZX41A0U#x|@c7T~~I3akNIIpw+)amt7}G>TMpn2j;Xhno{?v zxT2$6x(hWJjiDK}nV0bTKXBIWL(p!xzp>3w=H0|9_dOWXr8 z#V!21(j#{^yt=s`D^c6q>`V|Ky_Z7Ie#zsbyEWzZ^D=fRMLOx{d3(t*p|LwZa%$|5 z*YfMBbdFd8f2RPqO2>U?VwJ1ZY6b$5hLr${<^ab`HX*hI`p1sR(E$sXa@e-)RDTQ( zTk(P+-~5Ud!D-CjCFFPjiaTdySeH1qN0eN%$eh6IPbC-C(={R;aO$w^K;$50>;%p^ z=w0X+DbV_0w~Tt3kXKKpB_A+q+d~7aWU5@;d9ety*c}KZQ|=s?W_&rBZts%&M&uOX zEmRZ%2G7Gz`y;(|F0TdrUl}iX=#3~gN=O33#2k0LC-xJbY=8y)CN|TLwu7Yo>3N>i zKs;VxeeHaGK%TI|SnsoV-;iFS;p13|pCG>1Cp)0%4~POo0IELgh&4Kz7FBL-VK_Cn z5Z3#PQtnobKK-r+5Zpjc1B}9n`vZstc(RVRV2;MiaST^={4Q83v^W-|>wDX^2Gveb zK-cf6TuYqY0gLN?&D!@^h$MH7jNTfue^l*4As1PNdft6lda-IMDh^z%^g-{YGO(|Z zBQ_aE%=!e80bJf5I0~Z-kdbg||mg8u-QHy?2WrG?LZ(Ulg%N?)q9Jdtp zhXYSiq4&|}#yE#aL`$~b>^Ea6>vN-d*5tq{^t3B4CFL59)Zp_y4?XHsu7vH>`wyPH zV+*rK${^fmI7-Du-ZTUd4j+lkOLQ)USRuyCW3`Pfa|-gjavy88Eu63IX6}5BpLUm^`DmiMms zJ^7m#1)v7gy%Dv=+NI~cCZ3%v0sAtdfKn*kNv*Yz0;^=7lAzMN)F2FstPuL(t6V42 zf|>nt-+a1tk4)yBm4od%z9mDl$5wT4pQ64-E2d&6fcq|zKu<@P1BWGEO1JBLbQ@wB zJLZbyH1W%@FDi|QKCR}3V%(Lre5jASUV}{=^PPg!2Nup+OBXD4;DKJdmv>l--ajh7 z2;78AqD3RTBhsS_UHcztM6WXL-`DqU^*Nkw;Y{wRFwzD*JRwI*}`#!s#BVnIZ(`Ge)eVS2qQZFIBW-yq7ee-dn6Ei5+hr&RRxl%qLPVtav=IV{IRYTkxo zz|BS%oP6oy8d>(4As&-j_kAZf1}7@vQCOE1k_U#j%h5FmoNV-cQf1GZ6CFEYy)l3Z zg>u6Lsl=nHsE?gsvVC<4GZeUj+D-wIU5(~s#Zgwgnxo1QSgd$A;aLLMvD!HuTk$>_ z@+B7F2T5~svShEsR`kjah}3GYu&(RA^h$?Zkv0yC`6zO|vzO&4nfL-Aa#y5BRe{QQ z0YoL5&cA*Lh?dTTy$p0;d*G;#*{2}8y|v{`abZuzkHPYAp_6a zK9I1h`wxswr#r}tFiZH1D4+v$9Kv!-dI8pwd?x+h#mje0V@5S7@o;0<1v8&{RjkaK z!|GKD5}66lm)@4x26hHEx}0kC(t-fO1I&b~8bEE!gk&k6`~scpMQNC7hsUx6fAySP zOY@@omA5nT{;O94dk>H92Lv*DnDO^8cSbr3%JU@JjBMG_&Mc8NM)(s#z@q~Y4iHLk z@PY|ag-dKyVeyOEH6uxNYt_&?ligIBfEX)rT(`t5+*{k=*A|SZ<5<1fE36 z$1K^@b2O@5@eK58Vg7i^TM45tg=;kZ-nuv7M%HbYP^yPu!_G|2c6P4>OKB51_sk}I zr9Hp-cZPEor2$$&P##!_=D(Q66$D)+HLXJiXtXV%Ijs2f+3-%e{q!M+o>M!M?0RM& zn4et)qp^!u0N69#b7$dLor-3&ubK9qZ_E7$2|U0yQ>RgF?Cc}L3k`})a-*L3qwr@@ z#upduTpGYm<8bvWM;*jlK0DNE!~DwK$btm0EP2Id@kldM=)1){FJus9DIj?Q??%Jzuw!o4nJ+-U_@o2eKW^`n0@{@xaa{2}7_A0lPfF36{vA4P*Z(b!BCh)|&Ul;QD8_OW#*P$57&ha6r#H}< zRrM|}I(glx#vZ2@TYQ?cT6dDcdXx^s!md+ohnS{^($GsXgu9xqHOB$>KuKrBO?Zom z)%Yp%cSdTOUjbrhnzGGkg_4@a08y)hX-9fLQ3dZrhLdJ5-Oqc;SOJxj=uA_hl6|2Y zGn-52YyEq!UIr4xap&FVt{49%pp$Zf8yv#6KdoR;gEgo0ATMo$%u4KKAyo2%aZOy7 zn_<{I6Hnp+?|rM>dO6o^x-=6sd0HZuj4TqrH_#4yvv?n?2+jn>0R5gB{m06_q0=Dz zU63}BFQ#%|Pj#D$n|-3X()f>X!>Aas=$qTz(Ir7)J6*@KSElK5TuYeL0w*M=D0Z4k zbV}UbT}!NZa~^o_n*~Si&XZ+`r0N(ADWk}2OfU?F$sGc7DZ-a#yi`v zdTxA$Z)be2?)K@_+?vxqsA*2ISTmp#h7ekax9PS4>xQLat3 zRX27qpaMV%j%8vO> zCSjdSaroyldB+l43?Sx^?0?(~c5m4C^-6t?gU$6k&ebM5_T?&grADtyHBq*lUGy|_ zXVbS5u(`wpNQX*Q1}rkL>&RAquQ7wgvn53xTn^-M@>|<5pEIfLXt)769ELZDt2hpg zY8)KapCs$tlW<*-FJH*hG(O>+RX8^Np5!VwnA`6$T8mzo44AFqoj&5Xa$Mopc-Rhh zg6G7yid81KKwVG5c4P`zZ`Dj6$Q=vwwP2@#RFx!UE~ zB3B*1sfevV4zB&!ayp#*%lstf%?-~)AmCF2+j}^bQ~)1lWn@j|ykuT&D2G%7``2&2 zg!@+0zVFdD#<=97$1piQR)zN?^3Q?Ows*mz1mZ}e_;lvr-^P}I(Sa$=O!zK-Aov@{RQ0&ja?N z9l(V6LFG)o)PG#q9F&>4uG7nZKM#mDq`(qv;kfHC^M6_x0(NnrqI}Y-|A7tAECjgj z$eN5peC%3>R2VmFEAlfzv<_><&5XvQ%sQr-j>2J!bgp$p6G&n*3a_@GV7% zG(PoA|F-ZfFBDk*^7%A^{QH0ZE7pH1?0?1j$Hx9^t^cr-|61!m+{J&L@ISonf1U83 z(DeW7*qYx04Gaw2VYyEJcdUg9LxFrgt8;&RB!VCMYE02D3LM)1XHL>y4P3}b%%*E`;V*dS!>rjM=T`q-Lyz7L_G_%yN+va< z{jZG-96_jI?5z@c+BO5{XR}_>l)Mt}@%sMkpVXW#|JTg~@a48Fs5zIJ`9i=1pa`mA3U|+xvy_vB&^g>&G4GK??6fztarq(978N+@0nZ*{tb=-HYpnJ~gnAwfHmC z>VKm*XgsKFX_FAv(}o;03s0o{(bybfkz{q>0zv;TZ+rzJ!&l6NKd<$3($IC=P!hwV zn6No9@a4amN|WCLzIBHX^XGX#So&{jEISga87w>kv11%c(p zGmt;q=?4p4H@OqDbbjA|&(Z0*tCCV03igMVKU_6%1GVRkH|NM7YtnC%d8m^HS!UTk zaN#dT-znYNmZkd_B2QcEf9}PAvU4Zmx}N45v!pO2YVG5;kW~OSfd8y}iq_`^pg@Ws zf5>lAsw$yi@k{!b4mq9L%1GbQjfwwd2MyFRA3QWSIDC8hqJD5p7V6S=eE`ROVN4WL zP-e!Le>t<*70}Ks|1h)dE~gH_$hU**aqYr$HQLu!6ga8N6p^$ zXcZgtfQ9?G!*Ef`L)b#%1IaX}s$iqQDQ#GMq>Naat9;1jZ<{u_8+`c;)DU{5)xsz7 zl7oPL<-gcQICT9?+c^&SbWy247tS53Gm1Im3!=sbdxWr2~EDe~JS-w5!+bfZlu$|(#(cFh|OpR~#%}K3WWWG+Q zyzpD>JH%UHHT*f)CSQqUa`@YM3z80t1L-FnCX1hXN+qKecdc`kW5$E{S>duh&n2!_ zNPy29umxWxg3fRn)R@?eTq=B_t_PCiZn5^^pR)k}qn=qd#10HVcW>+6R-Y2jucgGk zL$zrz<)+P0*vS0{%*#1vm6R4=^CPcG!1`{Q^7(JpqOJKXdnoJ$o`W*K$Un;hk98EaGQN=1<4Ver*h2 zh?Zt?78}=*wmYdF!Za7VM~1Re5dKbG3n$!q$NLM3YSZu6(%I*U0*Eyumm0FS)-tw0yXim$?B=GUB(bB<}V zR|9=l%Qi>81#W)gxsrYjS2}v_YOaaP=55^O`th~p1sR_x?e%Am{D`+`y6AvKTH;WW zpw7&vFm@FBeS}WmiH6960V&v6Z-H7^AdSi_KSFm8-x}#SCr7v}l*zM>h74(#H6JrtNbo%=9m9 zGRhf{x37Hfq862NeW=fKHb@(NF@izNxv*eS=Um{ZV17J&sparZ{o#kzrWyCc`Xgog z-EphrVa^_Uv9Cg{9Om9Hq%0$9xvX<-FfqH;;oZONt*VNJpXz)F-#&;9W1pw6Poo98 zoxb2&JVJIBq-p?zPpUJ=7pcjvN8^87H?O=O&KUnFS#ejDGYt%J(kkO=fLJ3JFQ>t! z;JukZiE^Vl4+d`6wNZ#NTlHe6`ty%9S>;@C*NnF5as^q|01#UYSTGoZc z5C?4n8miTIqf`Xq*Uk10znUH%6^11|B7finnWaw){LH%NdR)oLV<*459iRRvT$(Xl zK=e_cJwJOqBN2wEZ35dcCU_Vg6>CUp=dt%w%Mhsp>=u)Y>`>ieiT>$JVl6?`#$gty z^VsCa+&!X(oH8-gsI4iz6dxR)?o88V!Wj*S_2@!jz~WT)X$wi6tSinU_2^Vy!}?Gd zq=L0B;Anb7c%$_@$&mM4WG*h~jBaP}IbSKmPpup$SX6GFZL9}jAX_sP9q84ns@7&q z98{6BnILiOLAvjz$?D*RXeq9|Fen|<&%^#>JjtsAoWTmu^x3Wd_(VfBK~EafR@Az| zgTpi(Xsi%U!+=7SU{2+T=K0r2pGu?y5`)E&@JA(5bvoo-KOjlH`Gl{iR>q?2Vdn$t z<3Zf#yJ!lNKGqTL)rmM~_*EO7DVem2*zsrWJ17>{7U#@Bx03qxsK&4nZs(uQgDmgf zJA)zRO9YETN0ai2o&@2oX3tH}09D-%`n28MUwb~PsE>#?{9sQO+Rf&RR z_oiI>MCxS2zSYgpo3dvi1&fr@9gCEaCpZ5#Btdih)!kx-!-!spYc^#d8}5DE*)SaF z_s-3{x$z=$?qk$?{d4V)aTjARGV`JkH!;drKWk&mGu`%HIG%Vv%!-%P5uNVqx``o- z!&T&jz-w}ju5~sKfn=#?)xrzPbHf*k(b<)#<#?K2dR0uvD<{8C17RjTw-6yI+fL0D zXWH@u=Z&I~6WF^jT(qus`jowdp7C^AmF_p`jd1pOt|dVNc-c9t3+T6naY8Id*{#7r z^(#8FQ{FQRAsjZ3JXnd1b)n`I6`#%rf7J=E4q2(H2_p71WZOH2{$eX`pc4_%ahD$c8L}hqS%}t85d=yd8lQ9vrxVP#T1FBn%ZG+if zb9j^a^z8G9Fuxk3r`nJ#NA05COgv_MiJEL6j!4La#cV-m;)iE^+wv!mP*J^_vq2@v z`HK6?bBhrkB8;lb#-XcQHK-ekvqOIT8+=^D*Z2dS`wgBKt0`AvW0IeLu8sZVpInpa zH(+DF?x+Dy)n601REx^r9!D>wBGjX`#~yy)BfZFFpaG;vOT++Wugu?rQ^Z$PXEVH~ zufBVD+G2l0T2%LAa76Qv(;%l!|HSHTDtzL{XEmqtF)bYWL|Nm0NRD`3Dl*lcO+`ZV z*7%tJ+PQObJxvFBwTQgT<3^9heG(Sux|VS)a_=^FsZ!1P40Iyx9=z?x#7mN(mg_05 zujm4~UazJ;y{%x)H%r@z6wfiLF>v0;DmP z71iO+u1|L}3ZCsmyNb8gt=Fn`H}6l_Qu#fwk|2U2k2i}0S^K12egu0ASc%X3+i(z9 zoR{PVoG6Gp^&iURlQo@{{hgF>z5x9piK3T!7A06opUAo(*#GimdQS2S3>7I$}cl*!uM$^!G1ZLTo4f=y-t_@~okhHwjApqFlvp z&ws;T+GKDd-Pz{bb1@&~$Nmo1&g2+ojRs?YC68K$ovFz_u{1 z(a_Xp+Gokk)4RCt$N5D&B53u*ER|1~fj#I_kcz8S@uBxd=>Z2-F+=DjS7b4jz3=9c zbL9oKGeQ$<@_G|pupZ&w z9PJAzjrcK~Z%4K>2@<8VOff>RsaH!~p%f9pfGNyk;BO9K8yCbI5~fu#b$QuN%i) zy}rCVR3mQU|8(f{(#iNr@;2WLj}9_MgeNP0?jS*UA|wH80$!mIu+j}34u{ip2^fq3 zVvddD93W`zKmXL*JB?Q-$--?51z#ekx%9{7P01>K}3szkXt4YsKe#+|U2hB7BxV``Ze$)kofwI}#* z_;ds1>&E#={c*7M*Zf(UbeJD4*0H^@csLC>EY#xvh8R_e+YhdE0C zEVczB*MN(nWR_S$&(R`!PsI|}*D$ln^Lj5@&~)eOFnnD8W?f-l@ z$LUZsIMiiVE=;t})wb5UyR2y(iwt@ht9)dc@RO|EtIt}WaPxu{n5LZ@0U0q9k zPLB2_>R+FxCXb1FL|dDFuC0AOd-?~p(qX>O#z8%ZFU>g~(hK##4K3hOl^gOGP?|Cm zRToP!Ak)gYdsy_HE6>Mgu8*y_LUx(#xghZgCNKb;8)qeGj?Fw~_gVYO)%r$sD5@4! z6QO{*GTrLaa^rm$P?rCG^Ks&iaGSDKoHLDGC}^X9J~Zf_*`JI-n=|DpTd^-ofeMl5 zr5J{Qr=FgvvD}(ehjZX?zp-JKG-!Qg@kT+(nchib6OZT2?8tZGh}0))5XmvDUTa^~ zV3l89XiVIhZ-Tk2ua`Uqu6QQfeCkX;tiIQ}zh>a$(-pGh-@aN@t#od%rb%&QsgYR8 zT&5tw`KpuF$^NJk+2f6#(v*#jvoBiBJrnQu?%y|L-=6_pUMUsWWOWCJhI*M2e*B%M zXI%^inexuw&#$O=RDS)l)jh7P;`FNiE_wh@0+p~uNuTC+F(02y(uN^2a$ObnXPmD0 zeLr!}8uyDfYa)q#DP^S@EgcED<=+_-q}|=+N0L>w^Cj6_+O_GRhDpICV%&e|YM*pN zQZ@!Qe$Ybpt)_JSti)!mI^ku6bmQq*i=Yel+kFsj!Nt0CK2=B7ceojKq&)RfWZ^Ub z3o4e7{EL58Ljj@?@?im>3Pp0^5g9~ZcI8QF{~R7U?GWHL;TqL0p~dCurWcm&)bCnV#mGeNE*ErcIufQ z5?7on)!@$`r9$?qE72T-D%zeEN}}SzIf>%KIX!n-ej+hdu8)tuKkz4cFsAGDfg!#;0YZe-xCU zY-ho`#7%zwkZX}=phT1hK0gX<>0U4%Gz$jBIsbrU_0st*P3@8NBxc#C3D=5kt=RfV zRW*It?VCX}O0%2wNH|wk)Sg6Q*p}pnlhXTQu2OdbKHMx z=Cdnu%KKVjNyT7Rst|39Uk4nvSVRbu^*R&)zF!9!~d)e{Cc4y3Z@RrBI$)uQdeAAh>B5+96 z8KWMlJ=5|?fp`lXP3XNFU-2(SC=`q#2_g~-MxRXns(e)W*>qq01-9&k%G?gon;hU* z!d$etc4hXDPJI&rr@}(#*SUpyTa&fzRPth*Hdl)20F5L1z}?J3_@Hg4|Ie7u3;hGf z+CA@vy1mDxHdZHOKpY>x7^IJNX5&^T4!Wc1^Rr8i!C%I+!_msb+LYaA`8o{qz~uk2 z_SR8Vep~=My&q)%p5k(EwGc}a2J*-Co_wfyp&r-ij3da+ zPCdqLE=RO%lbp(YY4Tl1uwPJHj@gxe!{7nHvXPla-mo!lrWb z^50&{wsDqY_E@bLRK577vXr6Ob0Z@L(COHiQfP(p^+QqP)6?-!J9?oGgo zUw(d13+zYtmyq4L#QGude>C7O}I9GeN9rS$M(KW% z1nt7beU|@ViAtrwDq~F}Pz*FqNMP?$5nw68P-|BtyouaJNdBKj6dB-eSYe4!F~SrV zy~RixP-KET;^0X@nx7Q1zW%f4ufXOopoqZJI%t7j_!0ur%Ze9%r$s{6!;81b{vxC| zw7?b-kI_#PM1UhJp`&)JR$dVV%n(O7iSeIW6$5B-j)oM#)42W6XOqFtwt`$&q%ERT zRaR)(14?WuGcG{(3FmMV|ee^rzl z_iC(!=^sge&|CULx&I%xl$r}mwb&ZYmxiy`@99Sb>rQ=IJNzm+TD$S|c;>$CgeW<{ zmd-ir4jP{7$vn;lvtJc(E|bdOaTykL8Kd%wBBa?Mc>fP=eCI*^hHoh4-8m;zLGi2j zPLf($E+G^>r3J?3B{<#vbM{B*Npemnf(g{tpwxozQ+^x%=BW(9MjtgTES5p2Wt9 zEs`=;%o@GxQ1A;W45d+HfNX-eKvj?YM4aspZ&F17GdA-D&nq|LpV5Y9w{FO2?d)Eo zo68__YpKu6JOj@;Hpe66`f=XA>zmwe?50iOaH!bRDfn-_uoH-eO`+KRbJffa1-dIv z8*UPkQtbG$JUbWMR!%Ka^&SI*+bpD||LBks4tTEBHc`bnNgu($Cz78p`10W}LkbsW z`G3l4|5^S5yS;Q?y+$jFsw5B*@{_x4=N!@& z2cIqqrQzfOUc5?@iTFoP{=I%&zyi|4UzsUWlZ4qvK303t+4u9*o~@|UAwCE;!32Z*cHn8WK-#}A=2?@mLU+La)0o+ zgeRr}yw9QHaon24a&Ml6qPc4k?`Y97hTf7iJfiBB`I$Yj*yT_tl49L_kztL=Ox0I1MFfmeP^~&99mHDo9$bRmnSb<0J*RN`bcg8s!+WvS(aQr-RmOr$!-eyQhts3UK1r^AcMKvsufGpkfxna4O|@SOmr{Bq#&wxX?V?ub~=tn{YDkc*0tQ;=FE_ChYNt5*e~b+mjjgK+53p0O~O#eBOqIz_UF=H{tg)K z_ZnExgp|!6+0D4nl;G{{A-g?&nlf6?u=LF;3NXFuzAiw(r0z7?it)7Nm!O$gN9MY< zuBWk!?Q!984e!EVLFg%j*IlgE^N4miXNKy-)Lb555p+DN(Xt>0MjX`e&iwtd(o?|U z+7M`TO4axM+Cjv@)(KuLUIE{SmC8O`^O<<-TNR>|lwfQy2immY#lrp=y>bsC$m;X( zdCLf(>Kk-Wr!Am<3JQt~#q@S{-w(~-;V{PN65$Tn_)_@nvTQ{p_;6_kMQLb%OWf=1 z>qLVP4=duz%oE(U7Vu81{zO$_);lTg=D}{8i;Z|Uoz`!=eBB|v@(O}`13G#uNb3+l zgkU~^#KDT!qQ#;7p3Xt!y_^5|Cv{&377C}19V)E=hqZ1VNQ@?&W&zZ;DKIMA#cb_^ z4|-`89`HTl@b$tIb<}*0dlqv+Uc^;+?`?Z$ht?jRoiMtL2-2!HV##NVEN2U^Xw4=a zSBYz`J^u*eE=9oHZhuH=p&45|Nn^0UUZ`NIFmJdeU!?;CDLx2&A8!J9m9 z-Il2VMN4i_&3)zEzHabjtvJr$+PzZgmltt`cTLZ$>Xsk=RLE9C&wv*ikC7i4!(KZ7|`gmV@NEz`8}u;R1i&Cf~h2-;f~<% z!^m48i00J6#Q#Iy)lSx?W7eC0UHZq1eB*<$KBDjTM|>WF5hf;by_-|nml=))0lxjw zBl0%OP5j#)_T$42<_QH^xR=k;l{=t()1il!h-Vjb$sr8>SSncpLkz>49g?`*XD_{- zIyC|p^>j~51nK@Bf(B0ih16*uFHp;f7v9t>)jZVT+~D@3gh?gjDd=hV!B(8H^S~MR zE~J^%@HP|q1DKOoKRUB!bXdmEc&)xKmdRo}A%>cNzTRwo+e-hXz~9`YyrOAyHb~3q z4Ht#|lo21>!9;RJ3QXWEsHy{9Br!#O4WB|6!diKzMXRQmI$=Z03del20Gm%nZ)XDdd!MT>r#1FQW z;~#CxcA}T~aj$AsA~et`b{v<}AbwW1USDOrmCLv{1&?hWTYpxdh=;@A3TCH)h1ji? zp!W}Bw?C`v*c37g=N4_J*lJZFYQ_}D+ExI#q-rtM!^Q?hdWX>*B#U)X4vH?Wd$~+~ z&a-WB_J4|6uf`A9ZcQt3JJU_r7N3y=R%XPk>xR8U)B_Ux(c&-@0J z;IlTv8&1O|On6v!qBTQy^F7_`Mb{V!rS$eESPE!k3W`6S&547CAMbz<0jy&rA`HCx z&v>yEyv(cokKCqeK9b)UZHo!rK=%od1y1gl8N{WGA73sy)pE-q?)-qcW{oaYJ9~hQ z1JI4ndv#?i$%|cLTG>G4hBHaFy&gHmTe7R{mpPR9?xZpTd&Il=Gduw}Ms5MWf1(Pj z8vyR;AtC*`IrWIIe?Y9kvX$EqOUB#vt6Q$oTdWN7%ez<<0n9q)!Cng<8VPY_YZ?`5 ze0JDMw!-a%GfwRLg*>DI>nytf3s#?ztC02iMenq*Zjrs5aHaC_l^wbrp)I1(yYeYT zhOI@C_d{dkPo0?Tje9|tdD(?&dR~ETfmoca=Q=vnN96vES&-#5;sqC)_OTlu9oY9T zRGKvvqVgQ-#+|!UIzCS|x)0-rH(5jk@o^@|kF@?%887?Zt1t4JJ)@V9^_tV>(5s6k+#ZiXIf*lZQJ%8c{rk(B`KqU9MzQ`K2$8w{cdy(SJ5?j` zohK@o;wzX6jr0?b-ngxOu91XKWYg$)c}Z5eLN}z^IjY7(f2l6jpVmfn98Fv%JQ8A? z-Yy6zXR_42E1U8qh>E9Y<>*vstoE)p&rx}2QP3?sSRT5k?i~{NE;`klM1R#$JXJZh z5==I&Ubuu6@hZaBt;8nbO7V5JkveoiGl5LqbfglxX&aYoL+xYY*n3&U#w_b);s#ml zjK$^U8L#VK#18WAYg_b>M9+^ty9eap8pIcjX*nk9vBGULXxz)%ny!`7;9L@P8H+?w z;P7$TL8i(p9JL(37xh8iO_4zjpd+bkZctZ>ARBDZP|u@b*o6opS(aV=E7K6X1+ezX${GvdmQg(K!EzkD#V_^WfKQthumFT@`alC+kNk_-F zY_3aaHNAhU*nt{rSF~biO)`1RLU@-fEBO&l-P;SF_rjoGc?P0S9#8#ub`eDwU;9knGNp5jgz^y7TpYe%N~AZ@xouaod#Nx4Nn;3*7E{eD zz_4q+U^e>~_;Kq}zavH}+ph-+ye=PeEO50L7caTm$m-e3y4gx9!;41nM7e)x1lc3l zOIP;6ba%`?Zp`jEiD< zny1opiIDoLbbE2cXyf{a`?v>cy-t)~C&ReDF6fkdDB0HT{r^b)fv5KsLU;HDV(JxE z9gR-r#`E!Xkv!3J?c#R?H<6>M@O*V;EoX5YUq0ZwkEMcl(9wX7g)k3>&7EWS9Lk>gh8?IG@^O%!C*f2X+xhsN`Y-NIst> z-HG}WqC>uXMA>@KBOT_&_(gLaj6{;qW(((3%%+oJ%i%W8i@K_3acX>jqf6}rLjcaoMTz6uu~Bh*fb zv)e#1u>JJ!e$np4r>1N+7Ts%3wO#2l2Im-aFjb%5Ud@cdv#(2ws~jN7Q47;TP1R06 z+-fyZ6v|`e!L1r`ybK!DbTVHBil!y7LFKoPI13)~?d@;sq|`Qlc}euK#J7@4E9A>5 zQuQ974)blb0(U}4J+CpF?Qa~RbkBG6A`0E^pf3@oXu)`Us3<#BVM$eW#Oxxf7sCzq z1rN;1X>}s*t7E_x+3b1#@VPh^tmtg9VE$^=$zawpMrGKDZ_318#2`%%(-Tk(%`}%p zj7kBBYg%5cu|DI_@Jw-a^5Kr93rH>#CN5C^6aGE&@zuVFs?4a1za3x%N4`$nk;Hd*X3Go%F1)`_W+@p?<+%~5U7K|^p%VU)BNt+KYf3N zr0f!h;umLSS$c$noA|2u&W?Vt0l0K5Z%qmGhS{lwBz->*f#U~9*5A-a%UyC^(s1i z>kR>|t!}@3u4=g)AG~(!((T9Xcy#1Cee>)j+PVnIW@jiirun)%ww(~NGQW9Pr`wXn zzTuFTbl05VPitT>Trrrj6#9|L(f{GnI+HC^X*49$pdGwzRGdB{M zWNzwdx?dpW$%xQ6MWHvg0X9~2x*`8bA3toHFyz+VG1lRpeMk^o0!JzOdIxejDsdZ6B zriPEOa4-)3BNepJ3Pq#Qtdy`T`fo(G6r)c!Rm5OgmsqBU)`8o=Wnz4~o{-R;|3K&Qn7{?j$s*A*65G`dCydnn zYIB&3K?=H3czd~rPYO(=5;XVJZ9bw|gcIQ5&5eh0#gP1XrE4>c>FWY;$d0V5Xb^3S zO!|99AQ?|fASoAJ9kiRD-xSUu+wt+`WwjlPy6oyvJChceTK?})kSSDOYEMUheR{0B8xLCbqF|Inzp1F=>m+v5nO zRi3jt#hDIHo$9OnB{em0W}U{*?G*$3Y@QL*t2$S8g*pVU)g6HFj|}xqTzKuZWI-8a z#G#Poe5$>kjlQwxM`b@IcCi?(*9*G8CTP=~dfRR9uydkS5lfX9vZ?ZZRJHqyWO~!% zNzGjJtZn05SyeN^oY3j%(R$v}M^|NsiiwuMxXR_;j}*4gJIC z)Hoh-FS=LCt}9J#+KfrZ5pLV?nbDVRyjo7+pY$9P+5OQsj}Gy7jo*}Kq~D9OO?Y|3 zIa=vak=|3#%wOkAcJv{fOv~|TYs{{yp=4;@`tox6_;bARq5RtpK@xUabjMXAcz8Oc zY!uBGly!=4j7cl)gGOVA;=;|T@Fi=fU7QJYH90vVWx>GHa{5dLs_Kl^iIt9E#H|b3 z-#M_?9%C3|?8M(GXh(J5i_w{KVWnO3iwAA>%C1VX-$GLaq}P?Q zik0fZ02y2lnTs)KIDYQf98J)Z>=YOiy;z&6_JXVL)?wSVST2>3LTl~M6()@7Z*8d| znN;VVm=J2?h%X7Ivpkn<%j(0;6Aqq4TD$0mnRSC34O{5m0FnoX{W_J>mqNp%>kp$7 zwtGp&uATu{hkvT}fuL5)%M~yy zSbKnzPb#$&U`Av4k~-;vW}e@z!!j%7c#%)EGg;yv608b-akZ4;ujrQ`<6#@1ips_| z$t0ZUe;Cyt92eSFwYlPHOUM2_@Q;G zr&559{l0|kK-TNFN8L5*nVP>+S&daM$aXrlSO>UcxEZYgM z8M-7l)bo@F?rz=W*LGo@3pQ{zTiB28*^Fsy_*9!%>tKO(3ewpG-8&#gRtjc1*?hNb zFI^rn;*v7#q+u~u4m0dmPjR4a0e39s)$lAZi(znHbeTeei9gLB&4@c?+J~V9SAGI` zRZO*fL6;>cX0t-zEt1om6jK}45~v=y3IyhEKDds8A4#_tHloGRu)W!|^%E3|@hD}I zFIMkrTf6&NNbgunjewqpH#|);TXMNu03PUU=8d_1RcVZ=G|=rd!5&BCsiHSyAhp=9 zHu}(@3wPgc))z7c)g~TmH zZ^y5ldT+Ud#w{@Kd673WuP=Xaz^ujjNv!kzCpWF$Kj||MCUZ8U5>|Ds+qcmOS8WUgf>vmuLR< z%)+UDa>(|y&UFoZXP2IKS}Zv6k@_;_g5HTb1QD#$?*p|$^$9~A zT(f%8V8W&VMukaBgmEjVQqfwSkCdZPk_FCD+r{I15c}+9gYQAv!?05^4|}+onlqb~ zqEasO{MiF~wOeltm3|pF>-&4D_U|{j5*V{ra+OHTs2Mx1o;7E0Xc!Zj*tmYZ_zlVB zLP{K@%X@ftPWmQBbI+AmjJ;&Oa9@7)ILW1zvfWARr^_qz!X^TgY3e)+{6inq3eMx7VlL zs>;7~MWK<(CCY2;Nfh7AnXLQhpiJsrs-UvUEqN{Qahc54woV`qMFI0U3 z~EpVSAKJ~>2|ghGCF_}jt@Rr=9(Cvy5z<=0hNGZg#=wj*l?spx_v7JeX` z>&>H2B!3i0t+OP0k5Fn($<+FME+Q5yBJmX%>R{5TY)#>}dlT7~W^0}P1@}YBWm3zB zLYQ>;PdX9g$0N+cY3~Y8yL^;Qt&6SI ziILjtHwq4^EIf$?OprWOc0KEfL+;8NJ}Dytiv5l6Jo|~Kjcku7^ezT-<9U4|cPAF#E3)~l3H#1LI@hj_YR>rL{hrq&tz-zDaMtMETKsSDm>JzWb+Y=4%FTu zr9511DnT^SXu~BMo%EOQ-QH5vI}4h1GEBIZHi=95Wjye^JWUtx)&_Ifp2l6_6OA`6 zzt#%ija0GPW3>1~@o|j@m)-1DR8RKIx|T9%j3#ky{7B0XdOSw2X`xR_@9@ATV8|=s z5WG0lOi{#=f}){0qIDRde<$l8sL`5Y_Umg4Sj#7_d1WB&b%O!!v+Hl!tWErTwzW_t zaxFBz$mSaJehMFoSuJkkP1YuH|6Tz;G!b@MrtTTo_%pEgfxqV_dyZg4GbUO5F8+Vz z3v7Rbg-(8X=4-Z>h2_9ev1^NQF?1b3%TA#n%T5yL5g#o8Dv(>aLS^MvCiN&ws|DFk2mTRR~-gtgY~@*DJ8RR9+@W z^D`cc=o*|8oA(f{Lnv`tEE?#t)^2k|WyyD05&uB>>6_4kD6utP0Y)PEvMV-8lK8n) z989#}y~XS|eqmoR!8Eu*%6bhBvcN3S!29!&+`>C~$R^iZ%Jmx#1#vkk_OE%134|*G zoJBAKLeQKyH~%-zx8_2g$9UaYwfYvGTQ5|<#5{QnR9Jc;v|>XL7F+S=GlhN6Iwcb{ zJD2kL8#rYm)G>1jdCf`J`V|rC!-z%2eY7+w{@a@35Tl9*G06mej|miSNm1PD#y~4T}t|(Ok}nEk@?A8t9)zo zyw(6}+X#-gY-A%P6|D{)72$mBvW#u+U)}5FhRniO!JZQC{TS)yf6#nJ_cfT#aZ_Qn zdAadHruD0xu#PsYTJw*0eIabgAW^ijpiz1NM>d(Z1w(fs#k4Q0?X?tk%wp?#}4`!(ytVO(8$a2ni8=V z<;};Ry0i>J9E#%1&hXvxxJKK>ar5mNCK_k-Q8#?5OzZVuwR3+n2U4V1X%i-9KYr!r zq~zG(gAgj0*K_NngZI-PR=eQ-*FDl9#R*0#>m*DE3_iWAT)x(uJ0||FLD^e+FCOf0 z1xuW_Z>6){^fX#ciuWnsQq`wI?rQlRQ-|!-3odPk?%0O`H7U2$_sOH}BN_{Fk(()< zdq1yp7bonE`Mf)x2;Xsk`HtMasCua5Yy$0{DAy>b^=(}ufgcbJDlFyK9WhaErJXc>VX$t_i!$Mr1{Fbwdfx9RBVKi!V~vt#h9|`*|mc7vhU&krTV4%MMzoR z%0lUaxG0^^x`~|`t!vFSsY}=*N`0RJeN?9TpZX}S ze$kLNASx~0)@Gmk#V46;i5FeFs6qBH+l0Y@{4-V4*-?(O>Q(m6k40+o9$|X!+Wtw> zZ;6nHNtes?N$j-fQ|!lBS*pC*tt;(paBEGLD|<6`6iQX{_X8m>^2iRp$)Bo|kHptKnhOup8hWj&P{wLQ+Dnf5k6CVz;9G{;n%sotE#tK^>O zRIM8LX4y_Vf7=tAiCV4w)&AOw?a6OPZa%g7@Mk%KL-nZn(jYr+uc%jMTPv13xFdCF2MgE5ho|Bgx z7Ar9G25Yp!nn`#C{}{)Am)@+U8p~#+^d6thF#aRWL0KBz8tabuuX@r%im!Pi1ZKwN z@y$D5_@e%|y%C`N=?i01Gc%?7#XR5KH|)!le|w6xX;hC$i)yUQk2@Z?wHT<$BTdvb zwU6G@rT?<0{++4a)iEcWVbR0fuIy7>gGTTA>Jz;+63XR_T(i8TANg^)Gu=PHKXTCp zxe|ULczGuEe@C3YSruRY_5!%}BAc2CteKQRpgN!+`k6Mh@HE$2-AFV)hO@tP%8xhV zgnYCM#cPt_y1NiiYW~bT1j3dH-2LqUG=T&77%lp(8Ju!vhf-HMX>?TEa-!CG=b7Pr zGZqkRwfOk>JME1RQTZ{=vQhC^nmjo-@0r7mI!!ZGbFgj|@)BLAMHu31m%scS zulCrVAq0}cF8J28y#Th+NM|xYYcT&S8%~Q-!(Qg*#Au_*<&qaa%Ho+kVN?5J1SLyT#l$&VTtkpt%f3 zibr4g{fnkh2;PH#r4tT1bTB^NGda&2(5?>h#RnQgoBHkId7S(P9Vd6xG9~fCIW0d1 z;+?zgbCRGSQ=Id4Ap|y-sTw4D>bHQyQ$Dm3XrF9oUmDr{0+Ms{MdF<=gVx0#Cr8cY6Mt_!bzvBjIaOeL@+UMaIrhbl)ty~OA+vLKN|kOezD+i zZ@sazh(OE_&|>=){~T4k3CytR3BgCN0w)mI?)miN*%n9S1w4@(N@C=aG@#EBwV{RudkqEJ^KudX zi$^F>5=o_|^~QxEU(j)yw)%3fZBn;-AD!rApFVjePL3vYW*7q(Eu?kfoC|0h2f=rd zG|*~^IV18)usD#SAM*+JVfKlSjlVlGefI?E#C%!dK-UuW+5Y_sNki{{QN}kBNa1{4 zQ#z*aE&S@GTL@HZv#|7VKM8ghWsOGK` ztwqy^P-;IWOiwWbv}e`es4t<1@>D1o&VU)yNctK_{0|dex4y!m$d?vJ(8%J#@r$LV zSqu)|$R%%QuatbbHaKrehinGIP0A$S!VHu^-GZ&$ekwV_XF#Gm|1W8eBTzzE;2ys_ ziwHhSos$O(go1RB_l^A8z4lJXY4BUoi8f<<^kFIiYF9Qr`5>$Cbn`rmJ7>!PV`?Eh z&jQYPA^|bV$8OLp(;aKL-KlUznEnI?Cw zsfBs&{8kT|RN7SUFZ;(^-9#48AvsDez-+hzd}(Qb#m8Mu=*drr5@`x%ad4{4waFDD z#g8%`cBjw%j?B>%=)Kd_;tc|#Xe%O2#3d=ik4aCza($uHDbAPXUj|~KRb(hMTLqFM zi}`_oOEAsbyB*knlvtbrMsXy8pkV>(pMA;KKFJ|d*JE`@EiOTt7C#z1l2!1~ji9*X z`#bm?SScU*S0;P!{(ffW8=}jIOLq->Qcp}b({EmEi&fnc2Xf=boXLR+GSY1`y@}U# zi0KtUCzH!|zfxf(L7&C(k#}gioLBfcmd8Vs>ckXtEBm=7h3=8D*#zYnU0E7fw>A-b z4dr_$fg5lyulKyWk9RQZ#6iOSG`x!)Fw(_3X1*18*xp1RUSml}{kf3S=yiN`niu{A zi}@+Nsr(DG#E?XqKEZ%gz1S z5X_~R-IlY1l(U-`FmYKgJ9WfzS>nC#*^o~ZC}H)f;2VhV+Pq(n{E<|3W*@CWvkOP( z{lz~?9)f(cEL18pQyenS)kRP|6W8>`H)fU)dXYxbp!l#NBlx>D;nVJ7-pp4H8XwnO z`F5YbBtUW0Z-@5}47|*pwn*_}+*;_4$x+Fgzk|UX_vB}qUv$Z^$9lbFNm>LI+~=U( zppEfxE9H#UEws{U@~8<{+}u}O4pGVsQJ;O<;v#r0+CerYLVHLfNb#ZN6^BJDUDk6b zFfbJMP=O|292r5X|I zy2GVBm`7%oAe{4d1!oWf_DJT93;qMN00hQ=Cx1q@4_j#4?)$UTBgyST@2kLISmT2?3>hjJm-~rx1IhVTLkH5(ZyL(m1mFW1 zH~g^5x+Z;O%*3suZj2CemeN*n86?F>NE{6ZpRBJ)MY>#sUV|!AOhz66_Jy ztv>N4aMyzKkWd16ns-HSf6{}rlgAYCS2SmUwgrY{s6+80duxF_U7_|qM`PTEO{h1I z`paM(jmMiEdYDpBOLZ|T&P%8q5pM}f{BoW+G+=}N9Nf>b@KG3{kKlha1O@K9G?6MV zD?stcriaL@`mSlZ?u!`@Ra8_+2F7cg=C=D3L%4c>_}zgRy9L(B@KFv#W+KQJ^i5bz zkH@ul@BFt-n*Ag~u}MCTKvhk7drapw-KTVTLFw2^+xe+Tr;7ct578~=Nibfare+b8 z>UFqnX?NH{Vc+b%v?X@7C3gEuuq+fkFKyKs zS8Ox#stUqnkUFvgHbtrk*c%wB7x6u67>qQD7F@#qZG`cGH#78PH6cJTCsNo|OGpJ% zYLUb(-V|prh)i7?tFr$reTO&Iy{5I!ZR^KkR>~y%@;JVL;;q~TvS2cv%$gcPPqgZI zc&BYG_+4{m2_Q&w4G&xGi{l0#jB0vN3$Vf z(PTX4Huf6vil6zc`fmvSOnuIrJdz#TaC*3$W~{og@_xOcbRpS8Jv}oSR%7_#nK{8D zW+olnx5lDp$6G8*>7&_sb2vCSW6L?Gtoe}YjAQd_g5DwnvDGcs7own!!JzDLUMZ{2~U((X@Lf&Liv=kBKqH7e+dR`wB z^WdWE(?)(&pz|&@H!cCW+s?4!uh8f);T;TN%LaQ7fM6t_Zi`|`=mQS9AUYu2OixH^gZzb~ZMVbL}zwXZadM`lB0a@7KN7Jqnp%6D=Ah%-^aW zeWSA+DolE^I$FWH5N#v#!R@P&UZ;#xHp~3dJJXV}3PTPl+6MMyy>soZO9v5b1fy=p z25>@eqz7+X0|yGi)ZbzGE#NNEY{=iw*D7l(Oj=TixxLX$gf>8>WRW5&Sxxf$I1fOMcz#Ia^f~&3xUo`Z88LkIRvmzNaL)Yo7*y*R8^pwJo zT9=dO)W@lJt}!dS_ewLV6>F64b_uWNSIgv&p8a4F%gK%z+t<&+PO{FtKBsznt?}%% zH1@bK=si{w@GBa@w|9q2OCojqJJZN>cJE(vGbPhu2=c=wBiu|N$ftmFl5%Kkq=3Za zkhj$Y0T4~MA0!M+2*WGx+vnL3u!%HwaNx+0O`&Q|mjsgbza{ndea(ud705^+bbpS4 zll%H16C_`h28`wPxfB^GCMc>^csakUoY+D5_5$N}KTR!BteuFn+_8dCtzO7rQfl8< zy@&AK147E8sZPBvY3C0i7LjIPW?loA7&n{_MF-qlM=G|5wW9An^JvmS7}U;4K5o#MIsObpJ;pE+E3Gsz8Z z>y&0@X4>E;LAUgTYsrPI?KbP01qR`8PTV(vMiC&1U|gN)Ff;k2K^bozM+bEZe7p2F zz!myl|7&?#8J=wMjO8pT85oU$bD$YJE1pd7<+4W=~wv(ARrRvJ?A4u%D5EjB>J0iwdw; zUa~Hs6(Hxo6Hs~X(b?MN7D5OqE6?>q$mbqp%#ga*!O+WF)mBd*a~ ziXjjW2$sw-LZ9?iaGv+vY_8L{QYN4JFXxz|ND3 zgGr@|U*-LP?4G%K1!MRz(24Z+VQFBb7$u^(0LxN!6(Csan{%~5OOE^>La?kwDoYf$ z=2|BK-xan7-cDines%CzYS3u&EI{KLcle&H5$?lu0J};;YcKSZ2DnONLG#8^^-63~zx+Rm*@=+|y);ve(9E&=i;$VUG)y1izB5XqJ07o9=;9Z z4htYW*x~b9KyyCJlF!9i7=%_Vi}vBxwRcgO4uAb3Ta>(0NJI~HTHlfV6Mu#MiN6Xt z`z(fYmJ>d`!im785+dzPPfyr-i8nxqVxFea2nZrPwxAbF%b;Kh%;u?qQ=02qcp{r< z2F^5e5QYMF+qvM9i{Z}jf}1%A^F+2TM`s+;zkk(N@DA>@MNYH&Iz2)`HkTcDL( ze;WY&cDX${z6n|SCmLc&eK~obK>ic?IpAvh+j{|b>xXBaU1q;wZLR_>AxsIGKH#G~ zFty#h>jYq=NTwiK{CE(--4YUV$4BQD&>W%;ky^WZ^sD)6A=6nR>wt8VQ%hj4J_yrF zHv!aMNwc44N%B*pB$Iqm1uIa6B>??jX;?>q=e1}I~;f~uD+gs{lq6T9r*cVzip zViVqly3AT8I$h&@)oQ6b5?hWfKBbekH zdu7Bp1UNhmn~zZ=9#~CP=AF@G9NpM2R)*jCwfRb7XlzSB7#|()9~bpvEm*)6j1VUbYYLze|saH|+16WPbC5tcA#=9@bML_)<0_$~Kfd<}h^R(KpKH5JSx5rvK zWZEDxY!nFJ2eCa?ZeScb6Aph8AY2LTg2Unx&mJKvB2z93Obo)fGgxMk6nIULPKg>| zA2;EZbFdkj9GRsrNe!72{fmvaJo|4pMF?P#dfc?}0dYzR0OU~T&H$C+@P>atk7@T~ z1B2$%`r#Jh>H0nP#&998!zUw7-M8C+HXn#I-NF*5aw5{wdG;=%o=x$^k^(Z9e>>Ux za8W8x@#%~z6J+3X;=DLsv$f0hyu;|q19%WV3QOFq_3mHTifGPQXdh%eAIdG$Mn{H! z5nsxdDAkAm3dY)#1}G-RyW>1*Tic+(_bYG3y&ho$u^EoWL^h=}=TP(GWSz-`Ib7n5 z8y!2vrH3MNOnQ`U(e4A5`<94nDb7ps6?P8k=bMmx%Db!x=>dF{jP``vLJ~0t2Uq7O zJnMKwYTHgsKZ?BGl5ZdLsp;b(YG>P1anG@-?xYv-}Ve)7ZP5Y|&$n%}h%$%2kS3Okn` zp|F{_`tdSHq%22$IkP>?B^grn&2x z_*o*Vgj>0Jh1?Aow!e6L`9OC9!~I4pkd#S*w`Sgjq;w=Ub}F4Oy6z^{Y+R)3d+;0+ z=e6baR{%W8m6(oJOpZ`wZQTFF)_n~qq)0a`zlGbdixOnWEt;wm1A0l@4^?vel>8_i zA8Zj1e|U~*{W-;If#LNNrh_{D<5bhJST2)529xn_=!wbqT@mq!K5P9s*#uyIR?v}a zXi;sIaLi`!!0_tb>@jIkhM)cZ@4;}R3V2Myu@e!>j;_xdcYrBBF>rR-9}0Xb zm4Q+eXvD7a+03%-G6M~O{;XOa;G>#i5UvWQ^Vd?liI}tc?W2`CCrrVo9XBj>bacL5f&IK6k|GJgjgaZzuh3+jeN+t= z#ed9np3tx~8IhzA-ULcwEy^~(w;}XlZg3A|mN~8-k1H;wj%`6|`4&me(bO2L-F-Je zw~>*Rx=fGaB|oypZOTSWYR}@pcSB{Q6NTXkByHF6`bv&RX`vJ3##T96Qu2^+rS5Kk zKxofx4von|xi(ihEF-_FWRfw6TK#yuI8dfPMgn{EB2)^L>yhxK>(d^~6a@yD>NEDh zhS#0&-|YlZ9mly}5&y)SeK%03X0Pc29;w(>dH*sB`?`{u?dY*cnY!#4PTj{JE}F^b zvO#K`cHI{exy{~$VLQ(!s>8Bp`t|&Gv>7GRi^=alb=Kr>Am1x|zZQP9-e~Y_^I;aa zY4n`BTHoMlLbs|Ng}1F|0xjf4@Qua{jZR#8_E*+-iBJq!``cw4)yW7|rZWY>16PfM ztQH{98az_Z(7-!D$N|8|*|LOD56>@@F4U<~0G;Wq0VHgf7;0p`v!wlS8F*NstRa%( zwL3Cz{bA`Pz2y~@opF9f`lW}3sdr?9sOD?@GDVU~SbTR^?S00!tSYtXmt>ye-_(u2 z|Jix-E7SWnBj*Xtq(hc^1_5ji-WY8aKPs2lEM#E#{m}U3Q2=`orZ?K6B?Qztz)zMN z4U>#;rOwR43*B)%8uMP|;_9phBb4Gpc6#Y&`d(%|sjyM&Mz(hV0RN9;SPZCT{p^>$ zH(F&sl{hkWcKXz9Hi*AcHaRgPA>m16{_X{tuD@8#)FY&X3t;L-vF4cCJ)iy z0POU46nW|l<}=WQLa?3op%jBNF|5FjQ2YmARsyGB<-KboEw74NJ)LXlAuWJ6{eE7$ z|L+h%o|uUQdF8cuil|4cilV4WYM?YPcsCi!E!+6e5riYM27?1ZNSLPHX$OG!&oL5l z!QU`x9ssBTOiC+>8|g=VIQ9P>Cf)v7Hs?26#IDqm9uHm<1)4dyyab1be`RniFG;P@}v#~qra4W9YNhh z9r2eymUQP?ww%gm|BLX809xLNKWMY=&6H1gW-1r&MhmcLS%$tSKM(-aau<5vLN+Z8 zp+I5c_gVL^{y~J%SiHhCx{zWZS3P!ECx`US22@hU>NU9E)ba{%^S=SY;;GKdgPZ&7 z-W(@~J1pXr>9PFav~_B?s1DGlrSIDYZ5wimY_Ac2vm}DwI5ZA;s?2nGU&BqYgEPBI zA*Kik8no-Ie!#6Di)BO^d97UF%A_zk(ekvfOZHOtlRHQ*P^iPvw>j#?MS5YTrOi}3VG z(0GF*@5gb|F+q7H82@*^;y3yq`N}IFkgurH*Ecy$dL23Y9`(Tf!V&v`v$G~&f&UXH zMy`~~-mf`XIBTTz{6(u4n{<;FUkt>9$8ux@FwG!dLplg;xGj>sBnAtQ5 zz_q^6-FVKD0Sd|+;KB+11Mq$U!%J^MKj8!1&ha(dLm7RzlHQS*>x}78gin|M|Hv4m zn2D19eJvOH3_?v$JVhVMJ2^@`d zZmyLjn2j8>m2Oa<9`t@p5g#jh{barB`HGJt1(~NK#Tjlq2_Rq^yxoC`114bErm9tH zYMHv?v6~<9js8AjNzw#){a#b0>pTOuv|6v%_>SVZiQci`J7v1!lf|oJiVYCY=qWBs zx@SmUWAQm$GEl?=d^X^sxD*mpDeaEseuU)>wSRnCW%}X?-=~$bGhD~P&eaTCKf?`> zF<%V0aaK@|n5H6HivT7BE|FbO5atl0cO@Gyh&J>JY-|&92vud+nYDA@V^GdI>;0vi z1zGQkG2*2CV8$4mGC~*%MTeYcGgK9fm(K0!|DoB&1|W zrMpuFk(QPoOj40

}9!P^1x%5a|YK>4tC53_RyK&pGG&-uLJC$3G7Dz4zK{uejE= z*4+X@x`wwLVkd*ThO)2(2bV*5F9>rmFQr3*e80zdpK}2olOlL|xoucs`4Bk(haPnniM(zPhR`Te}!Rhoz%NI@$%D1&TYnUd<{rRg`);M9D*DX6x1-5s( zM8M|&LurD5lVDCrkmf~76;&KqI=F7%sD2se{(hec4$MUCzS%=|Jq~EJh?$Ls9o`L| zq|D7bu1=_A1YYGdhmmA3)*tnK$At`BI%cg-b0jD#e?P|$jUjTwsRLkt=4?Hha79`3 z*tQ=9XPrJhp+-Kr9a~j2J`ytWtB>}oLLBSTPtPY|&7I(qIy47{l$MkbuMi-lvCXgD zL2tiK4x9O3M$^_UNJ61WZVmE!xY35oiq(_0-l@Q7Pz z2UH&nzkz9tuVU)kYH^41MQ^}|;Ulqf;LCN`WU=Ts|5teR#Fz`827_A`9*=SK=!gDb zrA2f8YM~lX>tkWQ^~1=rJ#GgME62dyGAFmTr~|SUVw{c8VAj}qVu;Mc37YQe7AHb^zZwCiO<0A&siB!&N z+5YHSw02m(WCBVU_|bs$Hqq22Nq-ugRsVq$(FKt`2|CbmH@7_5tD7SL?lGiO#B%yJ zq)3x%>I`L`iA9HM>$AbhGSvEg7w}NySasnm@_zb=OT! zLx(XccZLZAf$3hwCEygpFoqlRoCj0XD(EmlQm$nJwX9$Um<}nzHB&0Vz5rBHi1O~* zi$R*iK5(5oci#Z?5^^oLuAoj~1`u{Qcj9(xM#;Fgg(A8ErNZNPQk%vuMht zNr9A_^-+Il7YMvL_E`&gUuK}J)aA?IE*@bPdNj7p(N;OF&>SCbhx=T(_+WTQx9b~6 z#nhWVpNhksB~?-)=(+AIqC=xC4e1lqQ5nlapicw+-$0SUE+%#wzJdbA#1vi7Mn@4x z%aBu|dGvCj!$orEjdi4%Vz~oaDk6wv&X#%>;7PL+T|nO5W6yEly}|`C0LQ_P z&Rl=qJhy-V(nWE$KsJGUO&LnzjstgE*`4$YHBdScSWgc{%m90njyC0T zN;NI=D%(Jx$<+t-$c>QY!*O`akP@R;7k-20^BsZUXD%<*yrl(b>SfndrZ>MZjTM3d zDFYz#YC!>10oJYvNO9E={=d0ReSx%phA{tJY6UEg(GV+-8|8YRmQCnGOWUg`iUyHr zW0s032!qnkq6c_Aa2>&)KY$5o#)RrM&Bfb9^qb-67I_iZi z90D=wD@g5%g9Ik420~GX{u=NVSS6!#7|b6xn2BVBDgCB{@bmGuN)R!$S2`t+}E=GD-v(p-Wi=%+6qyCLw~DxH~e^KKT~J>DJE)3 z6-b7YfsERRV4#Q0gbFJ7AUuCv@mwZZK7so?*JVB2Xs7103`X&Kl+n8ux+YgHq7Gd|0~Q${WOAsmLmQG5nv;~e7#hE znUb%KV>OY{w$qKjPyDyWxI}LCa+PYC`>yiw0)|gE(et_YciL2c*9|1}NakJzZ*+h&(IB3d=I~9`C$b?x)?5m6GuY zeZa*sr2BS;D&&JS+ABX8q%pfSE2MSY_qOLX?VTw8R6Uk%|001ktVi5|;S+{W=C$L} zP9v~3Y}S@glHk6}c2L>V z*+fD&iK{}|ZUX}{o}-ZrhkQJ|twwWf!2@G)vqST#H;ul?z$wSE=N=FPIcBzraYg_m z$>ziUiwC$mOo_!DKf0HSE zvQk-Snv{EC++*c=0?yO*_Al!FAZ5??y6jtj53nXZ=cJ;3fMgt->g5dJ0)Sd2I%tAo z(<&gJs|-`dsn(-ED*R+KU?kGHw^Ey!t9#pJY&WS|)WvY{uD-YY!BYL6InX$HJt^O2 z5S1leZflHf0MC4`UULVOjQ%}C|00f4-=0_daf)JXuV5Va2v2ky?~7bsWv*3Dx*Eb| zO#j4;K0qd@#OwIYT&heh{Nc%qI=(KI@y9OHq5cmKqGqxI$>dj1;t|`2>hKhU5;vy_ z4~54ZC34(v2@e7Lna;VU`Ww?Sl^t$wA?%1z@VMey4cp=^G(Idv8E&_y9 z*4_Oxx735$Dkn_Y61MS)4}oIUlpldU02;(-(m z{pOoauhw|Yx1apFczRf{Vs}&6#G71n=hNJ2j=i_}oaM&XM8h2X0_N1m@9xT95qReP zSZt8+oxl6fDKWG|RM;9d2+s?>9d_WE7A9`>qdfoUd=M2J*}eJ=Z^S(7=9XGHgGcsUKc zWid{kjx-VnPF+LD%8PPu%Ouy?5_c7KQL*2@D$&e&;2%P2?!}gLmNs$H)FptVCnFqGZeiErWZ89*(?wJJD%c z`g*%lDS9q;IPmzu-K^+?ibP|6@|S%0zOq2%;nc@YNS&lM`Y$0M?k$MZ)Km{{leUn` zjPqBy_&EyUr$!4s6`|SV`6?s1;-%HnOZrKQc4>;+CDmgY2NCyx(JXu9$)dsw3^Pma zN(9A;=?QGbPl}&>x1342e%*e20a8*bTcA>%*P3%y0T zu19aK&RZ(+y2;3o{#xXD(oSUQrQbhd=%gm>CSL+gO+rTFnWzu~`{aTxHsKJQ=**o_n{d z=1Vz-^uYaiRrjr3C9M`Rx(_!h4@>=R(*~S0w>ugg?k8r{=pMx0Pt)*a zNIA}CTee=KSeYT1K7Xgwa=_Vrl{q2p^sa>a=j~iQ+wR(L5@qz^dsV;Ve&nurAO0#X zbei0mA}^yzkMVTr`0cNj>ECssE?)JP?5KsltZ;`Myt8Je&7TVC&xYdqUFKsFM+|?C zDP@xEijtbx1b{e|WZ}{G$Dnx4`srkl269aP_V8c6ub8g zZ2SGLmJwN2uGi%9v*P;A??tpd-Ui#}Z!8TR}z6mFo@Is>H>)O@>{g zxNflSl|g?m8pFo^3bp$yOkZg0>H;rA!FN}wmuPU1ShdWz_*pIjgih{_0#KJjy15OM z&&LOLpS%4Hq|ab;OXzjKJ-Lun1WsAIJw@hgG|@B9)V6GgrHyc zT%U;6hf_{Cbq>fj&2!{Srwc)H&G&IH`97qnD~#a$)!0g?9FMH_Uad$xcjMN9t-0~2 zhDzFU>k9}Tjo$H0tXlqlP5M_I+EHHPw3&^7FIj&S_veJ6>9I!f5Ov!Ze8<9j>+qj3>=yY4G6O^~|eOtE*EfD?J`V;+_M zpQ-7Of25`jAD=GS)evb%R4#H&N&1Kv| z=TS3VkE-Pnu{ZG^)mw`?YyP_-EH)2#52|eI*!$NBsL=Uk664v;Y^e6+c_%f;5OXxg zNucuZmA1B+NyvMLfHOtkaHN}Df5F`24Hx!3nVU90F(uvjx$@OgY=h-zhzK#7TKStQi;b9HtS$q zaWY1?C_M15KMG=*so=d_=-6v9nD6AE+8Y)$oa;oHk+nd};7rAMJmg%$%@7LzOGf=K z*4?YDx}`oVave{d_?eDkd6gvM9X1sVpLQ@oURJMYTz<6i)t^(mV-BZ23D<Chb|^ zzbbW&FA@4X(x}@h-STE>tpzJ31H_3dtFq&CNgP1%89W|$jmF}(b4gye>g7%ww~*mK z0|BXt^}lRX>Uky(Y6lC~|D$$5Mi^C_`cdaZV>6j{LgxBK%{v%#Z{WEoQzi{rOlbkJ zYUoSeSl&>L6nC-a&!mALlHcB_tf^8Oq60!RhsK?*GP~c zjhb8FhjvgIL@4?>l&|8-4XK`ekqgR=B;e~!Ubu__Fy+Y5gLlUkQ?xoo&IW_;U)J&t zz9$uZ3&#iN0B8r6vcSZ4@kD$o-bC?&tWQK!UU;~ns}1UofXDRlfgZ@tULinkv0E4^ zA45Mj7qZ&?jF8i=Ol==Q~XwSC2br;%;9?I&FHx_!scH78r9o#k7l+6OVoTp5KB5=3Vu zmI(P`ne-+NL?fY6_jyh9ulJY1s@1`&0f#OR@QNEQ?%Tuu#Rc*S?*I9-rM#W}Qs3Jq z{0IIB>-COylaS05uMs2G*ju=KUi+FG7TyP?D>RW#rvsPEEt*3k_pQC(67$zK_Zx|z z_mLS##2{+8J_U7RUb{cdeuWn5L?}~}GBLGTr&en5sRh?yyhu8Zeq7K~dyq;8ACWr1 z=M?g@Rl|U|X0Oe%P4RVfoSS;Lqo-3EcPQA!Hj$)c7S)*hsl;GOFFP`q9IE@=!wS&| z(#kPp3zCbJIrVZU6X^mCljhr}mGmz@A#vo-Jvzok`6 zMgR&Tz89*N7T*S>>AKG)8a-KzMu;wHxE>7V-4xxWH$D^scz?5haluX2Fi0N`wT1Wy{jRrLvj{PVba(uXju#Mh4|zpv0i~u4ugYG} zN{XmB7|%*%F(hz9l_E{J4`Ing6-%i+wRkseCu?`EdoUElx+ z5MnH0^6nrt7YAmGezfSYFOh}IrN{1m>%)sTm2Yjxrsdv0-K`HaroB&%(#jL0JzeJ#XLF4r>z+%yZ1hDy`f9YBm)L4jVWnG`4n&hSg(A^) zZ^((!jZnU{NHmg;z$F3&->}}H*;yvcXS)huqk&6Wh?R}pCM!Va!>+ebudr7{;tV)& z4xC?w7>l|Y2S?U}_BmTDCAARA*++K>H0xZuxB$C!wdO-k}GT ztKT=jAO3#qI;oUrVfnm$TeMGBn-T;oJQgyNYom2}#aTJloni)&#|>NaB?7+{Uk?!? z1T%CqeGYcDoGpx;*$iD`luFbHH(MI63?<}gb*2u~^#1pgeg1b&l9{yF+BqZXuLaip; zk>lZ$tk`h63`d5Y>Wu-BweG>O6~R&*tvr?nK8z%PyM^(HR$kEx0~XQb8Dlv>r2b|_ zUZtj7>8BU!(eE-@O6hIos4;FLJOrl(gRGGQTh@^VVxCmuhZpcK!~uX`Yl>vIYD))E zv4h&S(;$h46adYH(&#PQ0f^LJp`6=Y6sjG9P!c_Su_Oa`+E@za??Cs1erZX3ox@Xppzxs6v(haHdU#*-D5 zg9x}W$1@}vS)U>ICTZp)MyNPQK&0s&c%KDQTu5h60|_XI$Tl^nf#hH|NFsBDNA!T6 zNY2>63%Dth7n}s3dNBOebBqk>dXY$UcM4%K7x*EMw3Gy(*1rUABWKmc5(n^nI|M81 z7I@s$6Yg_J&;$J@oi_y_C1~;w{Q_=c7y!akv#AAenn8BJkp2i%GRY`qvCb%NaB3{1 zT7cHKOO5!a$n=XBV8pKAjU5h7S&^|IQQj_;oA1D`cl`M}{VY+ILMF<-5Z1*-Sw>q7 zV{v105>VL!->5WZZVRrW2B?GmMYc!c*!8}Ug}rGF6tVh52-(iAF1M$%ZYB={PFhlMukc*Ry zmH;(|aX4=M*7*s9p>?eA_t~c3fYrW9dP?Gpgo2Y0m%2e!A3+mJgI*!E1bT(!y7;fq z)!=>rHe|D(R(IL}J=b!6xG9dL+=`wb6;l6^bbwFxf#_0f1t_g`nCfIDgn{Sxhsx`K zfdOH}ub!Q~9uvu&0W#mCx$TL11}6YpdCa8b{$kzH!SczR=+AowG|{S1R7l}_RvHF4 zkoGp=3^xRX;QB8Dg0I0iVZxPvmHN&qiOZ&s;i%`guz>S4WYHU~2IrX>`|#k&eMo8^ zz2wNK$-4Vki5dfrAvR1eeko~&$|)Y&5!dv&Lc*G zE=cj;iiNXn0;tx6g>+sObomtv+=)BNDR^(5f;%C`>i5P9MQoRB2XqF&b>fMG&1@Mx zjJ)Z`aMqWvyiNveFA8x29V&G(skd$e0rJd5r;>qge9->n`gF=fr)>33axmyGeiCVM5!%4*WaMT#TQc|A`Fz9_OGg-7dN_=mch!56><7018LTtKY`puD~x&=PHW!F3I_#2L`x z$2q>8qv;Gb(BHBsx77)qP=1&Y7m=}gh0=8B)I3%u+#r@p!#YNN6AU=U; zck{$b1)m-DD0MKdCf{v&Q@9Ak0tx%CTfc+JYE~8@pw$9A$$LQYN6C^6x5W%L@QIZ4 z7ze0ZffN*)g-U>6y^D@B5Vt_p^cG_bCg6%UkTNF0ctGESDt{<2YtE;q-z!Wj>I5$xXAI(7q^IRH`gp{I-|*xgM;l*F5teF2^RO}nKn+p66D_T zGH%bG6a8dutW_a6vYEnK@0^c-JgrM;AXt0P6bpimUO;rjLnl>5jns}8-_%}}0wRIP z8nPMDhcl2uK;LaUJMZ^Ppg|v+0EHC->&h_?-u=nn)}vsFBH-qxCNB@v8Y(W|U5v_Jb84FuH5uP~xNl;Q!V?M{_T&4EivplfIyG=}-pF&jRWE zz7m#iht6jQh?-@~Vi@*Mf6Hg;2BT7*p_R1od~Cpf#DITufWG2?bAZV37SCtFl0q{6 zM6Tg}JWSXx6k*PY$u)yOYt2R6*WgRZ;Aiz$zzJRNl!|Qxb?v9}#~a&(2p9Qsr5HZf zx}yexS~qeey0sA-ktk7r$%i&K!5y5$g^?y=UTH)@F1zOfw_ZPPEiccXQ& z$orA81z8HsKj&K60>h^Lhy40oXQ;N??dc{O$el_md(u+CgSneu^{R{DS+uVFU;E5uIuyMf zTo%k2Z?s?Xlu8858!QS2`ROk&v0g1mCsGlip1(t?Mxh9`Kj5gSME473nFfCVP8s($ zWIT>n@8o15O>D0nq#(a4_nXV z?WKCzqm_YL;C<;ew42yiQIr+zdOi9P1{7W8(ITL$yc1o-7I^Y|vM1MISov``m~X|& z!0G+P$nH5fiNvZ5SDwqgx($srnp zY*%n;{iXUu_3DTa78rC;22pMe&FrHp=lTSZC6jNbf{hv{8H#a`tvpP&b9;%;a{3l< ztiQ=pitf1E{|Wwb%dH2@G~>Jl48cdq*uREeNJ5743j83fQrkbX2R|j?mLoZZqKiLE zOV3E)k>ME_{`=k=9>91u*+qdXM2-oKE`167su-(dFD z>=aAh2VTp8@RGS}Nl@V!I0(KljIp0O7Jv^+KE-sHqz4pL7Ap0`R|Nk#f$6FCI=>nC zTmT@u^q)MZDLPXX?M z)XgA=_eBqNr?5lRLP|Iq*B3H*3oW)S%*Siv*SEJgJzvaRcQ$CEgUIdEt&cMH^I)%0 zFF%b{1P<2mC*6_?aImKFDkJN+A=C72&(HTJiEg^!$qo)tOy;1{`+0E2aJfD}pq|J- z=B8!nw(Yc1gwe0}`YM_5gLlHqN%giQnvd&vHhGbtrKY~p>ff|_m~Q${QJo%1T1K@x z&0GopctmtwosJ!>@Y*TP{hLh32dfVsaO)S{or=14^m&X04OvLpVaIh*{mbBpv;T}7=V z^>}fC_&w~C$$oEFSGxA5g~1K4Kf!ZO3k>g*vEjU@*@J7Xfm()H>F@m?{z>vI(Ld6B z;ukwyB=&M(c=X)Na1!>cP7l+WuM6_yOT3%Fy(0JrbcedS$N} zToIePiqM}5lyC_jR+`DscADy5I&c{&aUrr<#25kq>8QhXMuO+P@AH0n(I~eT7%9Zf zR5>dOEj%Z`vxsM%F*2p%;ca&+>FV&aDuGUuE8cVNnSk5xkGU&=u+lhP`<9`iw!B$j zQ0KN{s9LRE_79nnv*L|R@@LDC#2;`TSvn-P(;l*)1a``Om1zzrKi37*vmgV4L4yup zuo!=^5v{U>Qrf_j83N@~Ri-8qhHW;k5msik7(QnCvYl*4sugFrB?wKIY_qQ0(`alJ zucL}9Y|X0~?+W#mXtq82wblwaag^=sbnj}N4mhn3X)W?XABL_bCV8@dW>4>_R2?X5 zHafi{x;*T?S}Hw)k>sZHZnZCd_>~x4@_@O5TERl#=dI(X1GzaYkx8!MSll9}miqV< zsV{&%BsOg^zy}7g;w1^!EevBxgyUblaZPme2cdIF_|%J2Z+3E5;>OWhGqbeDr^(<8 zCv?%8UX{A;IX{=wKPpy-(W_3cm33*&Zf;YWeEBM6nwAvy)Xvb;DU@jO+CV@5*r#ys zMYpGk2~OYDDjRKSxDwh(b%8Bi9F4K|UM8UW~G! zyK!BPYBY+?eX|RV`roIQlQAYtN#Aj~btbjCyyQEhQ*My?fRnjVA=Qcl zC3}6t^Dlf8-8|8qWMQL)*YEJlvFnPO>RR%9Qoi@gJ607Dy@EL3Cq?|rii!~-9ZwBB?Eqpb)lw$1y-tEmR@e| zgMR9x!Zxt(naZqHDb~tzc_m1Uhl^uL&$?aH+Rn06-aKYzMW39Tpvz*q2;I{^1D6$4 z0n8Y+0W;+h24Q#LCmB{N4C6;n$;r+gEIwMDZoF10ocbJ{XP&rVX3yPOJmEjNKT4p-7RH;L2@t*jb9N`Bww2Oq-n4}n)XFVbom9)=cX zB^ol!%P(bH&TF~%-)HzFZ!zuhJ$YtFYYVxzqvnLw_%`i5~!>p=VN@IpO!1Ti4i2hFj46=n6v!)ir9>1 zu!n-h8a+foaaaH|sWn4>GX~aY#Qm(jckcMm?P^398n=%)4qT7_D$W1a;_-osEv9p= z`CVT)>-Wb(SISs=*fy_x)oo^xT`8i0D7-R}4c@%ho~QtI#XtNZx&I_uk;9*7@IH|g+h07eaQ z+GKUAibJ+em5nC?SuSj{x6t&<87`DAXm*0??6a-6zZee%1p%}PTQF(*#ZYqHz z9!cZu@fk0_sons4Pl+X|z|^0Y zpTY1pGsZ}LJBdE!oZUKrb!T_AzCuS{J}5X0#Hi|zT9(wtAMe7u_PGVvQcT9jjt~6Z zI`!8M1P5&=Ag&W-YHhhRAY8swA8B@?vwE;CxuVMHS!$qK(&Z1~`H;;96;gr-4tT_1 z7&EOVF$gu>V^8{hIw|LVf?Z#%#TdJe4E#dn?Nws2>jf^~Yzg4_9+sM_Fa)=-w45n_ zT+99v>&mms*Pv1Qm&wUtQVf4aKur~7GpwVmB#U)*=>Ev7Pvho{lwFX(=@>h8ugtoYyYdOpryEZOQ!Em- zpub({L;?XPVQwMGQVVB%-`ju@G^FG_2cLEBvDcK7dAf-IV#i8^ob`25G3^bkQXuBX=k*#=83jJE=?ms>!bIDBFz`)hS%k_DMB zta#5cM1*8}YGNcU$jF2%>5jpu9CP+cv_73^5ix`t%xih(*15$kgD~Q_a&t2ffK5+Q zl*w^>L1Oaw0pZmFP#eyw1>7trK#;;yjK`qjwU^xNH=e%;je5=m22;Gg&FQJ|GQHQ^ zd=Jpu8SDr-FMpZ!G)C`MmcMNILHqde@^g@HO;5Hk&LZ(0 zV?)JyupP^~qOpYQ*n`0ru-fgK@h<<1vEy(%6v^1(i92DDYGSH4v9JY=P=yojaq?_0 z11*pl6rL)<`_f9IBZXYDrB{)PkVV=AKjXf}&qRpDE^rMgVNRJ#z5SLc4r%X@4IK~E zt-pONH}afjGi5l|mDLz+tw++V-DB=748^wOTj0WZ>oPo0e9-bNwaBZZo_ac$=mnN) zg~Uu^34K>AERhvseWRZrbA9u4Yji0h*+Wl`cQ|#2AAYk;;lPW}0YJ8Hqd`l@q(bDyj!mbs( zOwFc0y{1);|Eq6$J_AJK<8iKR79VICAa^xc3^iR6FVmFANTT?*f4qLE7)I~>Q)^r3 zuw&9RO*o!|nMyM!t08Gv*$Gw9jN{&vm zs%Ld>U1s$;rLnDPck%HH;nus3U0|T#bx|4Zw%g!D+c+7thQVBvyq`xE$z6R3VUBuh zm7yaJ2Vsq{*cGF)6 zSRP#{LqaQMS*zTWBgg5n2jCG$IW zy0T3XFPqordTFPh`K!|fj^yqNN~N@|%vm;TVdv6X+A=p}GC}&c7m!4uD`M+ZZoj_t z0KPkz>B0~|8QErO+sRzDqvx;Dx?~%FFZ2dEl`Q3{QSy1lF@ceiRF$O47@l9=u5Ouxcm#i>fk22F zWF*DZORmy1=-OXa-Bhj12ZMvdXU2sEzdtv~1Vg1vhKAoWXg$Z|H`Fr%s@3IhS^ z&-m3|gC+UQ9WhgFKkM$8EH4$1)-@`GlFEsUO;5z6Vc;KKZ1=+Mp^#XUN>m1AV^DKY{nC*-e=C(l+9cy5u+=fJ9T=v8M{cruEQ); zV#{G5=t8(nUkSPbEe1y(nkdWg)c#4+68Zcty;IgUw^pK{DEU`biM$~iIT|frw)%}1tr&n&_i=(Xvb5T(-`}%2nci6$ z;uqD+scl{zBE3f&E~h*7r=3HgWH*5KcbCFUTw5Jr68X9DjU8NGiv8?pu)C_M^etm) zBQe*om$jwetgJI0c#A5@laq=d%fl-CVw>Xk$jQ|=-UX_HnCH#axmgTgd>0D}GGv}0 z>p>Bq9t22E7Z;Eur&S#eFp@5!lr7<6*5g2k$?RGEg4!6}V*gatFR<)~NFw{9p4**w zum0S|=OjQ7yh&rhP(=>zU)(U^y9>^~)4I_!1LH94= zAx|IBrxe*9N1L9t+o=bBmYjgTyeNYNW<>S&7c8Ph<~>(p-QD|lgJbiq+io{rFQDzB z&Ojm}3QX83mw-diKo}yJ00-|9f=k&SMQ{NFVbBu!icV#5NV!%gM`@EcAXWdj`|xXCTxAyT$iN6;H^Cl0Q;{M_K+KK1y0kX~DX_=t&(zyJmLw^Ug%Ul>tCO zE>t@8vTyM@ynVv0JJ0jx7+}B~O?tMGubo?bEn*NkURHroN%4^JdTkQ8~GCQ^oM@=(%3k0B1Pg zS3~KZ8Bp1oqL!a{*!5QZ0Z-2q!WCV^>o{blK@+8XgMb$Dh2ixf8*p#dw}YDA|Br_& z*f1mOFftMi`qBK}KCDIsg#s})22~GEy*y1P>Y?Bx;d~#lkz6`dR_}9$s*;#XeL$Dx zB|+sC{S6SH^9UowdPxX77~j$*eE1^UU^kj%{BLudUY?gUpy1OXs3Jt5I*lNjsr3O| z&j596_X^}}gm!w$JO7%E(1DtbfGh7V_MVaG!Q z?S9uU>c&U5QU|-BHKsa`W&_2I@c9K6`&gnC&W5xh(CYtB8WYaQK`V+I#X|?nTeSQ1 z@EZ?!&=J}a9%t5fo$1;suy-a*|JKJ5$77laIG#MpZX)hKTYrDJjgRn2{{f&YYzZV? z_&Y9SN2PpzrZwldecWyKkU-y(D0Fo3EKDyht7C+uiZF@I-QbM z&!et+Z>*D}@;gN0Ea|tP&_-eKW%YXLhd9_EEQ3)%VelY_(bZ36dy7v5t!iAM69u2A zQ;TZvEfdC`j9Kw@=-JjTI$pVWdqNI=Jj0YoypR=ooJaY!*L$?>`K4~9wf?+GE8^;R z$6GzKnf|W9knYd7sX&_`Hnp-P6nxvYYG z&*9IKM#b-+3TM1b0s%5HVrW*3cIqmVi z!>LyluA4WrD0Fk|Ha7wSp6C^sI|*OBHK7N;eghwJu=+cG;OZn3JmF+>zy-OuZX*tZ z+-&5t4Ftayp!QlqLJi4wI;>$c9uqMb!fsSyp%{16X5kcYKY`z&=#J<6 zntYGeMT(bKhRQfad-mf3A+Uu@CQ2~FYA1~o=Ly!mVIjVTveVS65^WtR81iuPKh4?e zVE}}{XAgW!dwNL+kC+9kmW(Ql_X;kg>ej@9Z7t;UZ#<$HZeZrP5;$QG2}AgNvmjiuT}+agElW1wl;1UIb;aKYjom0kbsoRjdZfT zPp{Usd7w%6_1S@QLhYs#^;g{$Y;nlHp;p%N;fB@Ie7OlV9uiXI`tzCXcdZ}{?sBIS zB@FP7H~J5ZPRqGb5`6^2K=|?U1kW;J)xskvZGRkozA?C_f6`?J(dA<1Zwr5uWJxM zNXn+=(MN>OXoOl_#5jL0O0$B~5!R4jRUX4#d+oR<*bt&oh}xQ)j~H~~r>xui;RBKh?xiCPi^b^B;yUz?&#+8!wx z9i$j%uki6k0vRo2YkZn{72KsvZLOBwVjM_O{n~QHCgtRKQews6=v=+pAwTSkm#A&^ zu~#tOP46wkU?-Jp$kjn$PQ<7?<1}iJ4dP9Fc)d>jeaKx#vgKWO7<@iL%I?LZi2#_m z_Dnv66ZcdxPS{j1e*2>aZ|vow=QGd7@q;1H7;j!gEs7d}_$@by{WqNj_ox!Xd-Sm$ z(J&j!YQPq#A_h|H<$P$MN!HzF4ph)2(_|VU zd0^IxPk17(4bIF~o4?X-&^nUF%zT0~j#ky=U8j!h6HIk4Z3Ui zdIZ3%d@O9FGlQ4jM2jZ^W{QE}6Em_EsM)2m4bstUd&q?YE^L(WwURkZL|W}VYp>&# ztMlA9T=&Er_9`SW5S{i&i@**WAJgUKwe1E zvkN(kiAeM~s6aZu`G7Lr={YAD+>BolTutEjsKUk@s#$IvZ>H?LkytI=s{fF*DD#mF z>Hjzb4NykuU!IjUm=w?Ec$o2YoXbn=n{3#<2XL-GAM14Bz~zq+q>G~*sYTV%|Bb(g zPk2KUp~k!HgCf|F-VrB%9}b0zsVr4boCoWd1c-d5V2ghcko@O){&B5l5E7MuB`Wmd zjz9jp+h^sJh5VxYvrV|=t{M#CoKgr;t9&#er8)hv0s81!e!<@b}64^cmBA_#xDoALHm`#MNQ8t;A<3Dt^@ZiiktEynOM& z4G9R@GD#9A+C;q|L@A+IN!%lp%XoB+kr3(c^w^q8`5(`GoVx`K>3e!Bl6)LUl^JW^ zk=041$M@o4OG;bZ&aqV?5fRhX#9?ca9pMN$IY>(<_=qIx!IZ#j@BKg1|0Oih?Tgp* Q*9<`5>FVdQ&MBb@04hQAKmY&$ literal 0 HcmV?d00001 diff --git a/public/assets/img/forgot-password-office-dark.jpeg b/public/assets/img/forgot-password-office-dark.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..cdd69e3193e142e58ecf6c781bcca588b02fcee0 GIT binary patch literal 58822 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 literal 0 HcmV?d00001 diff --git a/public/assets/img/forgot-password-office.jpeg b/public/assets/img/forgot-password-office.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..4dcaf51958e491e34f6d0d85f62ffe24c0a88b01 GIT binary patch literal 91979 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 HclLh(wt;3s literal 0 HcmV?d00001 diff --git a/public/assets/img/github.svg b/public/assets/img/github.svg new file mode 100644 index 0000000..824ef14 --- /dev/null +++ b/public/assets/img/github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/assets/img/login-office-dark.jpeg b/public/assets/img/login-office-dark.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..9dda0540ac36f4e36e3f3bee66aea63ea4ef258d GIT binary patch literal 14198 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 literal 0 HcmV?d00001 diff --git a/public/assets/img/profile.jpg b/public/assets/img/profile.jpg new file mode 100644 index 0000000000000000000000000000000000000000..35a77cad3e917035f48d5b0f38b711c6577441ac GIT binary patch literal 2666 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 \ No newline at end of file diff --git a/public/assets/js/charts-bars.js b/public/assets/js/charts-bars.js new file mode 100644 index 0000000..e555db3 --- /dev/null +++ b/public/assets/js/charts-bars.js @@ -0,0 +1,34 @@ +/** + * For usage, visit Chart.js docs https://www.chartjs.org/docs/latest/ + */ +const barConfig = { + type: 'bar', + data: { + labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'], + datasets: [ + { + label: 'Shoes', + backgroundColor: '#0694a2', + // borderColor: window.chartColors.red, + borderWidth: 1, + data: [-3, 14, 52, 74, 33, 90, 70], + }, + { + label: 'Bags', + backgroundColor: '#7e3af2', + // borderColor: window.chartColors.blue, + borderWidth: 1, + data: [66, 33, 43, 12, 54, 62, 84], + }, + ], + }, + options: { + responsive: true, + legend: { + display: false, + }, + }, +} + +const barsCtx = document.getElementById('bars') +window.myBar = new Chart(barsCtx, barConfig) diff --git a/public/assets/js/charts-lines.js b/public/assets/js/charts-lines.js new file mode 100644 index 0000000..b926c70 --- /dev/null +++ b/public/assets/js/charts-lines.js @@ -0,0 +1,71 @@ +/** + * For usage, visit Chart.js docs https://www.chartjs.org/docs/latest/ + */ +const lineConfig = { + type: 'line', + data: { + labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'], + datasets: [ + { + label: 'Organic', + /** + * These colors come from Tailwind CSS palette + * https://tailwindcss.com/docs/customizing-colors/#default-color-palette + */ + backgroundColor: '#0694a2', + borderColor: '#0694a2', + data: [43, 48, 40, 54, 67, 73, 70], + fill: false, + }, + { + label: 'Paid', + fill: false, + /** + * These colors come from Tailwind CSS palette + * https://tailwindcss.com/docs/customizing-colors/#default-color-palette + */ + backgroundColor: '#7e3af2', + borderColor: '#7e3af2', + data: [24, 50, 64, 74, 52, 51, 65], + }, + ], + }, + options: { + responsive: true, + /** + * Default legends are ugly and impossible to style. + * See examples in charts.html to add your own legends + * */ + legend: { + display: false, + }, + tooltips: { + mode: 'index', + intersect: false, + }, + hover: { + mode: 'nearest', + intersect: true, + }, + scales: { + x: { + display: true, + scaleLabel: { + display: true, + labelString: 'Month', + }, + }, + y: { + display: true, + scaleLabel: { + display: true, + labelString: 'Value', + }, + }, + }, + }, +} + +// change this to the id of your chart element in HMTL +const lineCtx = document.getElementById('line') +window.myLine = new Chart(lineCtx, lineConfig) diff --git a/public/assets/js/charts-pie.js b/public/assets/js/charts-pie.js new file mode 100644 index 0000000..d475845 --- /dev/null +++ b/public/assets/js/charts-pie.js @@ -0,0 +1,35 @@ +/** + * For usage, visit Chart.js docs https://www.chartjs.org/docs/latest/ + */ +const pieConfig = { + type: 'doughnut', + data: { + datasets: [ + { + data: [33, 33, 33], + /** + * These colors come from Tailwind CSS palette + * https://tailwindcss.com/docs/customizing-colors/#default-color-palette + */ + backgroundColor: ['#0694a2', '#1c64f2', '#7e3af2'], + label: 'Dataset 1', + }, + ], + labels: ['Shoes', 'Shirts', 'Bags'], + }, + options: { + responsive: true, + cutoutPercentage: 80, + /** + * Default legends are ugly and impossible to style. + * See examples in charts.html to add your own legends + * */ + legend: { + display: false, + }, + }, +} + +// change this to the id of your chart element in HMTL +const pieCtx = document.getElementById('pie') +window.myPie = new Chart(pieCtx, pieConfig) diff --git a/public/assets/js/focus-trap.js b/public/assets/js/focus-trap.js new file mode 100644 index 0000000..3de94e9 --- /dev/null +++ b/public/assets/js/focus-trap.js @@ -0,0 +1,51 @@ +/** + * Limit focus to focusable elements inside `element` + * @param {HTMLElement} element - DOM element to focus trap inside + * @return {Function} cleanup function + */ +function focusTrap(element) { + const focusableElements = getFocusableElements(element) + const firstFocusableEl = focusableElements[0] + const lastFocusableEl = focusableElements[focusableElements.length - 1] + + // Wait for the case the element was not yet rendered + setTimeout(() => firstFocusableEl.focus(), 50) + + /** + * Get all focusable elements inside `element` + * @param {HTMLElement} element - DOM element to focus trap inside + * @return {HTMLElement[]} List of focusable elements + */ + function getFocusableElements(element = document) { + return [ + ...element.querySelectorAll( + 'a, button, details, input, select, textarea, [tabindex]:not([tabindex="-1"])' + ), + ].filter((e) => !e.hasAttribute('disabled')) + } + + function handleKeyDown(e) { + const TAB = 9 + const isTab = e.key.toLowerCase() === 'tab' || e.keyCode === TAB + + if (!isTab) return + + if (e.shiftKey) { + if (document.activeElement === firstFocusableEl) { + lastFocusableEl.focus() + e.preventDefault() + } + } else { + if (document.activeElement === lastFocusableEl) { + firstFocusableEl.focus() + e.preventDefault() + } + } + } + + element.addEventListener('keydown', handleKeyDown) + + return function cleanup() { + element.removeEventListener('keydown', handleKeyDown) + } +} diff --git a/public/assets/js/init-alpine.js b/public/assets/js/init-alpine.js new file mode 100644 index 0000000..46a3cd4 --- /dev/null +++ b/public/assets/js/init-alpine.js @@ -0,0 +1,62 @@ +function data() { + function getThemeFromLocalStorage() { + // if user already changed the theme, use it + if (window.localStorage.getItem('dark')) { + return JSON.parse(window.localStorage.getItem('dark')) + } + + // else return their preferences + return ( + !!window.matchMedia && + window.matchMedia('(prefers-color-scheme: dark)').matches + ) + } + + function setThemeToLocalStorage(value) { + window.localStorage.setItem('dark', value) + } + + return { + dark: getThemeFromLocalStorage(), + toggleTheme() { + this.dark = !this.dark + setThemeToLocalStorage(this.dark) + }, + isSideMenuOpen: false, + toggleSideMenu() { + this.isSideMenuOpen = !this.isSideMenuOpen + }, + closeSideMenu() { + this.isSideMenuOpen = false + }, + isNotificationsMenuOpen: false, + toggleNotificationsMenu() { + this.isNotificationsMenuOpen = !this.isNotificationsMenuOpen + }, + closeNotificationsMenu() { + this.isNotificationsMenuOpen = false + }, + isProfileMenuOpen: false, + toggleProfileMenu() { + this.isProfileMenuOpen = !this.isProfileMenuOpen + }, + closeProfileMenu() { + this.isProfileMenuOpen = false + }, + isPagesMenuOpen: false, + togglePagesMenu() { + this.isPagesMenuOpen = !this.isPagesMenuOpen + }, + // Modal + isModalOpen: false, + trapCleanup: null, + openModal() { + this.isModalOpen = true + this.trapCleanup = focusTrap(document.querySelector('#modal')) + }, + closeModal() { + this.isModalOpen = false + this.trapCleanup() + }, + } +} diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..e69de29 diff --git a/public/i.php b/public/i.php new file mode 100644 index 0000000..8716935 --- /dev/null +++ b/public/i.php @@ -0,0 +1 @@ + diff --git a/public/index.php b/public/index.php new file mode 100644 index 0000000..1d69f3a --- /dev/null +++ b/public/index.php @@ -0,0 +1,55 @@ +make(Kernel::class); + +$response = $kernel->handle( + $request = Request::capture() +)->send(); + +$kernel->terminate($request, $response); diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..eb05362 --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: diff --git a/rekamore.sql b/rekamore.sql new file mode 100644 index 0000000..1ad2859 --- /dev/null +++ b/rekamore.sql @@ -0,0 +1,513 @@ +-- MySQL dump 10.13 Distrib 5.7.22, for Linux (x86_64) +-- +-- Host: localhost Database: rekamore +-- ------------------------------------------------------ +-- Server version 5.7.22 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `ad_employers` +-- + +DROP TABLE IF EXISTS `ad_employers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `ad_employers` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `employer_id` bigint(20) NOT NULL, + `category_id` int(11) NOT NULL DEFAULT '1', + `telephone` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `salary` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `text` text COLLATE utf8mb4_unicode_ci, + `city` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `sort` int(11) NOT NULL DEFAULT '1', + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `ad_employers` +-- + +LOCK TABLES `ad_employers` WRITE; +/*!40000 ALTER TABLE `ad_employers` DISABLE KEYS */; +/*!40000 ALTER TABLE `ad_employers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `ad_jobs` +-- + +DROP TABLE IF EXISTS `ad_jobs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `ad_jobs` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `ad_employer_id` bigint(20) NOT NULL, + `job_title_id` bigint(20) NOT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `ad_jobs` +-- + +LOCK TABLES `ad_jobs` WRITE; +/*!40000 ALTER TABLE `ad_jobs` DISABLE KEYS */; +/*!40000 ALTER TABLE `ad_jobs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `categories` +-- + +DROP TABLE IF EXISTS `categories`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `categories` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `categories` +-- + +LOCK TABLES `categories` WRITE; +/*!40000 ALTER TABLE `categories` DISABLE KEYS */; +/*!40000 ALTER TABLE `categories` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `employers` +-- + +DROP TABLE IF EXISTS `employers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `employers` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `user_id` bigint(20) NOT NULL, + `name_company` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `telephone` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `logo` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `rate` double(8,2) NOT NULL DEFAULT '0.00', + `text` text COLLATE utf8mb4_unicode_ci, + `city` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `sort` int(11) NOT NULL DEFAULT '1', + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + `address` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `map` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `site` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `employers` +-- + +LOCK TABLES `employers` WRITE; +/*!40000 ALTER TABLE `employers` DISABLE KEYS */; +/*!40000 ALTER TABLE `employers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `failed_jobs` +-- + +DROP TABLE IF EXISTS `failed_jobs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `failed_jobs` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `uuid` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `connection` text COLLATE utf8mb4_unicode_ci NOT NULL, + `queue` text COLLATE utf8mb4_unicode_ci NOT NULL, + `payload` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `exception` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `failed_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `failed_jobs_uuid_unique` (`uuid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `failed_jobs` +-- + +LOCK TABLES `failed_jobs` WRITE; +/*!40000 ALTER TABLE `failed_jobs` DISABLE KEYS */; +/*!40000 ALTER TABLE `failed_jobs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `group_users` +-- + +DROP TABLE IF EXISTS `group_users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `group_users` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `name_group` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + `user_id` bigint(20) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `group_users` +-- + +LOCK TABLES `group_users` WRITE; +/*!40000 ALTER TABLE `group_users` DISABLE KEYS */; +/*!40000 ALTER TABLE `group_users` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `group_works` +-- + +DROP TABLE IF EXISTS `group_works`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `group_works` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `group_user_id` bigint(20) NOT NULL, + `user_id` bigint(20) NOT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `group_works` +-- + +LOCK TABLES `group_works` WRITE; +/*!40000 ALTER TABLE `group_works` DISABLE KEYS */; +/*!40000 ALTER TABLE `group_works` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `job_titles` +-- + +DROP TABLE IF EXISTS `job_titles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `job_titles` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `job_titles` +-- + +LOCK TABLES `job_titles` WRITE; +/*!40000 ALTER TABLE `job_titles` DISABLE KEYS */; +/*!40000 ALTER TABLE `job_titles` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `messages` +-- + +DROP TABLE IF EXISTS `messages`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `messages` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `user_id` bigint(20) NOT NULL, + `to_user_id` bigint(20) NOT NULL, + `text` text COLLATE utf8mb4_unicode_ci, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + `title` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `file` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `messages` +-- + +LOCK TABLES `messages` WRITE; +/*!40000 ALTER TABLE `messages` DISABLE KEYS */; +/*!40000 ALTER TABLE `messages` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `migrations` +-- + +DROP TABLE IF EXISTS `migrations`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `migrations` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `migration` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `batch` int(11) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `migrations` +-- + +LOCK TABLES `migrations` WRITE; +/*!40000 ALTER TABLE `migrations` DISABLE KEYS */; +INSERT INTO `migrations` VALUES (1,'2014_10_12_000000_create_users_table',1),(2,'2014_10_12_100000_create_password_resets_table',1),(3,'2019_08_19_000000_create_failed_jobs_table',1),(4,'2019_12_14_000001_create_personal_access_tokens_table',1),(5,'2023_05_15_102620_alter_users_table',2),(6,'2023_05_16_062924_alter_users_table2',3),(7,'2023_05_16_080855_create_workers_table',3),(8,'2023_05_16_080945_create_employers_table',3),(9,'2023_05_16_081048_create_ad_employers_table',3),(10,'2023_05_16_081113_create_categories_table',3),(11,'2023_05_16_081142_create_group_users_table',3),(12,'2023_05_16_081213_create_job_titles_table',3),(13,'2023_05_16_081237_create_messages_table',3),(14,'2023_05_16_081308_create_static_workers_table',3),(15,'2023_05_16_081330_create_static_ads_table',3),(16,'2023_05_16_092746_alter_ad_jobs_table',4),(17,'2023_05_16_092836_alter_group_work_table',4),(18,'2023_05_17_090650_alter_group_users_table',5),(19,'2023_05_17_090749_alter_messages_table',5),(20,'2023_05_17_090923_alter_employers_table',5),(21,'2023_05_17_090944_alter_workers_table',5),(22,'2023_05_17_095512_alter_users_table',6); +/*!40000 ALTER TABLE `migrations` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `password_resets` +-- + +DROP TABLE IF EXISTS `password_resets`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `password_resets` ( + `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `token` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `created_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`email`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `password_resets` +-- + +LOCK TABLES `password_resets` WRITE; +/*!40000 ALTER TABLE `password_resets` DISABLE KEYS */; +/*!40000 ALTER TABLE `password_resets` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `personal_access_tokens` +-- + +DROP TABLE IF EXISTS `personal_access_tokens`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `personal_access_tokens` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `tokenable_type` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `tokenable_id` bigint(20) unsigned NOT NULL, + `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `token` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `abilities` text COLLATE utf8mb4_unicode_ci, + `last_used_at` timestamp NULL DEFAULT NULL, + `expires_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `personal_access_tokens_token_unique` (`token`), + KEY `personal_access_tokens_tokenable_type_tokenable_id_index` (`tokenable_type`,`tokenable_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `personal_access_tokens` +-- + +LOCK TABLES `personal_access_tokens` WRITE; +/*!40000 ALTER TABLE `personal_access_tokens` DISABLE KEYS */; +/*!40000 ALTER TABLE `personal_access_tokens` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `static_ads` +-- + +DROP TABLE IF EXISTS `static_ads`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `static_ads` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `ad_employer_id` bigint(20) NOT NULL, + `lookin` int(11) NOT NULL DEFAULT '0', + `month_year` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `message` int(11) NOT NULL DEFAULT '0', + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `static_ads` +-- + +LOCK TABLES `static_ads` WRITE; +/*!40000 ALTER TABLE `static_ads` DISABLE KEYS */; +/*!40000 ALTER TABLE `static_ads` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `static_workers` +-- + +DROP TABLE IF EXISTS `static_workers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `static_workers` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `user_id` bigint(20) NOT NULL, + `lookin` int(11) NOT NULL DEFAULT '0', + `month_year` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `message` int(11) NOT NULL DEFAULT '0', + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `static_workers` +-- + +LOCK TABLES `static_workers` WRITE; +/*!40000 ALTER TABLE `static_workers` DISABLE KEYS */; +/*!40000 ALTER TABLE `static_workers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `users` +-- + +DROP TABLE IF EXISTS `users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `users` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `admin` tinyint(1) NOT NULL DEFAULT '0', + `email_verified_at` timestamp NULL DEFAULT NULL, + `password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `remember_token` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + `telephone` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `surname` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `name_man` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `surname2` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `is_worker` tinyint(1) NOT NULL DEFAULT '0', + `is_lookin` tinyint(1) NOT NULL DEFAULT '1', + `is_message` tinyint(1) NOT NULL DEFAULT '1', + `is_public` tinyint(1) NOT NULL DEFAULT '1', + `is_remove` tinyint(1) NOT NULL DEFAULT '0', + `is_ban` tinyint(1) NOT NULL DEFAULT '0', + `is_new` tinyint(1) NOT NULL DEFAULT '1', + PRIMARY KEY (`id`), + UNIQUE KEY `users_email_unique` (`email`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `users` +-- + +LOCK TABLES `users` WRITE; +/*!40000 ALTER TABLE `users` DISABLE KEYS */; +INSERT INTO `users` VALUES (1,'Администратор','admin@mail.ru',1,'2023-05-15 11:46:39','$2y$10$4LrFVBjWy.Tjl2OJIuvfiOppobeQNA42bzJ5c1AJRgv1vm56N0/Yq','TqzY4yyIUyLJYRdSzGLqGTxNKL4E1x3EbCF2OLlI6bugbek0wRnYNThSMfUh','2023-05-15 04:46:26','2023-05-17 10:44:10','+79131340942',NULL,'Андрей',NULL,0,1,1,1,0,0,0),(2,'integralal','integralal@mail.ru',0,'2023-05-15 17:35:12','$2y$10$As4bkRP3XXiSZG3rERW4Uee05nD9bO8vABDpakx.xG8tuEuBvK9Qq','9SuLE4Ig5j20yrJxLd3OcAXZ6AQB8hqbZwLlr6o6E3ld5BuTbwuz92kGK1xW','2023-05-15 07:16:27','2023-05-17 10:44:09',NULL,NULL,'Александр',NULL,1,1,1,1,0,0,0),(3,'менеджер','info@renttorg.ru',0,NULL,'$2y$10$avhr9OwECSHOtRDCE4Qe/uyq8MelzHKRiRT3NqEm/KApe.JcNSkAK','5cZRhemIWOPFFQUtB0acF6vFvJVfS9WvSRXxxmTkoFiBiy1Gbv4ZbHQhMQWZ','2023-05-17 03:45:07','2023-05-17 10:46:17',NULL,NULL,'Олег',NULL,0,1,1,1,0,0,0),(4,'Админ-менеджер','Info@vekprom.ru',1,'2023-05-17 12:34:57','$2y$10$9l3vgMBMFlqAt4xyY7v9EuWB0EdCOVTd1scM2a3FIcXzpI.JPCVmq','lPwraQgpzNn7uXB72f4jhvRkcORzmownmJEjFGfXfNPGoWHX44M9DDUm67YG','2023-05-17 05:33:37','2023-05-17 10:43:40',NULL,NULL,'Наталья',NULL,0,1,1,1,0,0,0); +/*!40000 ALTER TABLE `users` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `workers` +-- + +DROP TABLE IF EXISTS `workers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `workers` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `user_id` bigint(20) NOT NULL, + `status_work` int(11) NOT NULL DEFAULT '1', + `position_work` int(11) NOT NULL DEFAULT '1', + `telephone` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `telephone2` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `email` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `persent_anketa` int(11) NOT NULL DEFAULT '10', + `photo` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `email_data` tinyint(1) NOT NULL DEFAULT '0', + `status_profile` int(11) NOT NULL DEFAULT '1', + `old_year` int(11) DEFAULT NULL, + `experience` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, + `en_is` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, + `interpassport` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, + `mk` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, + `vvp` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, + `vlm` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, + `reka_diplom` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, + `more_diplom` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, + `mpss` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, + `tanker` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, + `gmssb` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, + `resume` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `sort` int(11) NOT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + `address` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `city` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `text` text COLLATE utf8mb4_unicode_ci, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `workers` +-- + +LOCK TABLES `workers` WRITE; +/*!40000 ALTER TABLE `workers` DISABLE KEYS */; +/*!40000 ALTER TABLE `workers` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2023-05-19 18:23:34 diff --git a/resources/css/app.css b/resources/css/app.css new file mode 100644 index 0000000..e69de29 diff --git a/resources/js/app.js b/resources/js/app.js new file mode 100644 index 0000000..e59d6a0 --- /dev/null +++ b/resources/js/app.js @@ -0,0 +1 @@ +import './bootstrap'; diff --git a/resources/js/bootstrap.js b/resources/js/bootstrap.js new file mode 100644 index 0000000..a5b3edd --- /dev/null +++ b/resources/js/bootstrap.js @@ -0,0 +1,35 @@ +import _ from 'lodash'; +window._ = _; + +/** + * We'll load the axios HTTP library which allows us to easily issue requests + * to our Laravel back-end. This library automatically handles sending the + * CSRF token as a header based on the value of the "XSRF" token cookie. + */ + +import axios from 'axios'; +window.axios = axios; + +window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; + +/** + * Echo exposes an expressive API for subscribing to channels and listening + * for events that are broadcast by Laravel. Echo and event broadcasting + * allows your team to easily build robust real-time web applications. + */ + +// import Echo from 'laravel-echo'; + +// import Pusher from 'pusher-js'; +// window.Pusher = Pusher; + +// window.Echo = new Echo({ +// broadcaster: 'pusher', +// key: import.meta.env.VITE_PUSHER_APP_KEY, +// cluster: import.meta.env.VITE_PUSHER_APP_CLUSTER ?? 'mt1', +// wsHost: import.meta.env.VITE_PUSHER_HOST ? import.meta.env.VITE_PUSHER_HOST : `ws-${import.meta.env.VITE_PUSHER_APP_CLUSTER}.pusher.com`, +// wsPort: import.meta.env.VITE_PUSHER_PORT ?? 80, +// wssPort: import.meta.env.VITE_PUSHER_PORT ?? 443, +// forceTLS: (import.meta.env.VITE_PUSHER_SCHEME ?? 'https') === 'https', +// enabledTransports: ['ws', 'wss'], +// }); diff --git a/resources/views/admin/config.blade.php b/resources/views/admin/config.blade.php new file mode 100644 index 0000000..b351165 --- /dev/null +++ b/resources/views/admin/config.blade.php @@ -0,0 +1,272 @@ +@extends('layout.admin', ['title' => 'Админка - Настройки']) + +@section('content') +

+ Elements +

+
+ + +
+ + Account Type + +
+ + +
+
+ + + + + + + +
+ +
+
+ + +

+ Validation +

+
+ + + + + + + + +
+ + +

+ Icons +

+
+ + + +
+ + +

+ Buttons +

+
+ + + +
+@endsection diff --git a/resources/views/admin/employer/index.blade.php b/resources/views/admin/employer/index.blade.php new file mode 100644 index 0000000..b0154d3 --- /dev/null +++ b/resources/views/admin/employer/index.blade.php @@ -0,0 +1,106 @@ +@extends('layout.admin', ['title' => 'Админка - Работодатели']) + +@section('script') + +@endsection + +@section('content') +
+
+ + + + + + + + + + + + + + @foreach($users as $user) + + + + + + + + + + @endforeach + +
Название компанииEmail/ТелефонИмяДата регистрацииИзменитьБлокировать
+ {{$user->id}} + + {{$user->name}} + +
+ +
+

{{ empty($user->employers->email) ? $user->email : $user->employers->email }}

+

+ {{ empty($user->employers->telephone) ? $user->telephone : $user->employers->telephone }} +

+
+
+ +
+ {{ $user->name_man }} + + {{ $user->created_at }} + + Изменить + + is_ban) ? "checked" : "" }}/> +
+
+ +
+ appends($_GET)->links('admin.pagginate'); ?> +
+
+@endsection diff --git a/resources/views/admin/employer/index_ajax.blade.php b/resources/views/admin/employer/index_ajax.blade.php new file mode 100644 index 0000000..dbfcf90 --- /dev/null +++ b/resources/views/admin/employer/index_ajax.blade.php @@ -0,0 +1,64 @@ +
+ + + + + + + + + + + + + + @foreach($users as $user) + + + + + + + + + + @endforeach + +
Название компанииEmail/ТелефонИмяДата регистрацииИзменитьБлокировать
+ {{$user->id}} + + {{$user->name}} + +
+ +
+

{{ empty($user->employers->email) ? $user->email : $user->employers->email }}

+

+ {{ empty($user->employers->telephone) ? $user->telephone : $user->employers->telephone }} +

+
+
+ +
+ {{ $user->name_man }} + + {{ $user->created_at }} + + Изменить + + is_ban) ? "checked" : "" }}/> +
+
+ +
+ appends($_GET)->links('admin.pagginate'); ?> + links('admin.pagginate'); ?> +
+ diff --git a/resources/views/admin/forgot-password.blade.php b/resources/views/admin/forgot-password.blade.php new file mode 100644 index 0000000..6068316 --- /dev/null +++ b/resources/views/admin/forgot-password.blade.php @@ -0,0 +1,40 @@ +@extends('layout.authorize', ['title' => 'Восстановление пароля']) + +@section('image') + + +@endsection + +@section('content') +

+ Forgot password +

+ + + + + Recover password + +@endsection + diff --git a/resources/views/admin/index.blade.php b/resources/views/admin/index.blade.php new file mode 100644 index 0000000..ed66f4d --- /dev/null +++ b/resources/views/admin/index.blade.php @@ -0,0 +1,676 @@ +@extends('layout.admin', ['title' => 'Админка - Главная страница']) + +@section('content') +
+ +
+
+ + + +
+
+

+ Всего пользователей +

+

+ {{ $all_user }} +

+
+
+ +
+
+ + + +
+
+

+ Работодателей +

+

+ {{ $all_employer }} +

+
+
+ +
+
+ + + +
+
+

+ Соискателей +

+

+ {{$all_worker}} +

+
+
+ +
+
+ + + +
+
+

+ Администраторы +

+

+ {{$all_admin}} +

+
+
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
НазваниеТаблицаРедактированиеДата
+
+ +
+

Пользователи

+

+ Все пользователи сайта +

+
+
+
+ users + + + Доступно + + + + май 2023 +
+
+ +
+

Работодатели

+

+ Все работодатели сайта +

+
+
+
+ employers + + + Доступно + + + май 2023 +
+
+ +
+

Соискатели

+

+ Все работники сайта +

+
+
+
+ workers + + + Доступно + + + май 2023 +
+
+ +
+

Вакансии

+

+ Все вакансии сайта +

+
+
+
+ ad_employers + + + Доступно + + + май 2023 +
+
+ +
+

Категории

+

+ Справочник категории (по умолчанию: река, море, река-море) +

+
+
+
+ category + + + Доступно + + + май 2023 +
+
+ +
+

Должности

+

+ Все должности +

+
+
+
+ job_titles + + + Доступно + + + май 2023 +
+
+ +
+

Сообщения

+

+ Все сообщения сайта +

+
+
+
+ messages + + + Недоступно + + + май 2023 +
+
+ +
+

Группы пользователей

+

+ Группировка людей в именованные группы +

+
+
+
+ group_users + + + Доступно + + + май 2023 +
+
+
+ + + + + + +@endsection diff --git a/resources/views/admin/login.blade.php b/resources/views/admin/login.blade.php new file mode 100644 index 0000000..36853bf --- /dev/null +++ b/resources/views/admin/login.blade.php @@ -0,0 +1,101 @@ +@extends('layout.authorize', ['title' => 'Вход в административную панель']) + +@section('image') + + +@endsection + +@section('content') +

+ Авторизация +

+ +
+ @csrf + + +
+ + +
+ + + +
+
+ + +

+ + Создание аккаунта + +

+@endsection diff --git a/resources/views/admin/pagginate.blade.php b/resources/views/admin/pagginate.blade.php new file mode 100644 index 0000000..aff942b --- /dev/null +++ b/resources/views/admin/pagginate.blade.php @@ -0,0 +1,112 @@ +@if ($paginator->hasPages()) + + + +@endif diff --git a/resources/views/admin/profile.blade.php b/resources/views/admin/profile.blade.php new file mode 100644 index 0000000..eb90f6d --- /dev/null +++ b/resources/views/admin/profile.blade.php @@ -0,0 +1,345 @@ +@extends('layout.admin', ['title' => 'Админка - Профиль']) + +@section('content') +

+ Личные данные +

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + Тип пользователя + +
+ + +
+

+ +
+
+ + +
+
+ + + + + + + + + +@endsection diff --git a/resources/views/admin/register.blade.php b/resources/views/admin/register.blade.php new file mode 100644 index 0000000..75e2660 --- /dev/null +++ b/resources/views/admin/register.blade.php @@ -0,0 +1,139 @@ +@extends('layout.authorize', ['title' => 'Регистрация в административной панели']) + +@section('image') + + +@endsection + +@section('content') +

+ Создание аккаунта +

+
+ @csrf + + + + + + + + +
+ +
+ + + +
+
+ + + +

+ + Already have an account? Login + +

+@endsection diff --git a/resources/views/admin/users/index.blade.php b/resources/views/admin/users/index.blade.php new file mode 100644 index 0000000..eb261e5 --- /dev/null +++ b/resources/views/admin/users/index.blade.php @@ -0,0 +1,251 @@ +@extends('layout.admin', ['title' => 'Админка - Пользователи системы']) + +@section('script') + +@endsection + +@section('content') +
+
+ + + + + + + + + + + + + + @foreach($users as $user) + + + + + + + + + + @endforeach + +
ИмяEmail/логинРаботодатель/работник/администраторЗаблокированныйНовыйДата регистрации
+ {{$user->id}} + + + {{ $user->name }} + + {{ $user->email }} + + + @if ($user->is_worker) + Работник + @else + Работодатель + @endif + + @if ($user->admin) + + Администратор + + @endif + + is_ban) ? "checked" : "" }}/> + + is_new) ? "checked" : "" }}/> + + {{ $user->created_at }} +
+
+ +
+ appends($_GET)->links('admin.pagginate'); ?> + links('admin.pagginate'); ?> +
+ + + +
+ + appends($_GET)->links('catalogs.paginate'); ?> + + +@endsection diff --git a/resources/views/admin/users/index_ajax.blade.php b/resources/views/admin/users/index_ajax.blade.php new file mode 100644 index 0000000..8e70e27 --- /dev/null +++ b/resources/views/admin/users/index_ajax.blade.php @@ -0,0 +1,60 @@ +
+ + + + + + + + + + + + + + @foreach($users as $user) + + + + + + + + + + @endforeach + +
ИмяEmail/логинРаботодатель/работник/администраторЗаблокированныйНовыйДата регистрации
+ {{$user->id}} + + {{ $user->name }} + + {{ $user->email }} + + + @if ($user->is_worker) + Работник + @else + Работодатель + @endif + + @if ($user->admin) + + Администратор + + @endif + + is_ban) ? "checked" : "" }}/> + + is_new) ? "checked" : "" }}/> + + {{ $user->created_at }} +
+
+ +
+ appends($_GET)->links('admin.pagginate'); ?> + links('admin.pagginate'); ?> +
diff --git a/resources/views/admin/worker/index.blade.php b/resources/views/admin/worker/index.blade.php new file mode 100644 index 0000000..5fa74b2 --- /dev/null +++ b/resources/views/admin/worker/index.blade.php @@ -0,0 +1,215 @@ +@extends('layout.admin', ['title' => 'Админка - Работники']) + +@section('script') + +@endsection + +@section('content') +
+
+ + + + + + + + + + + + + + @foreach($users as $user) + + + + + + + + + + @endforeach + +
ИмяEmail/Телефон% заполнения анкетыДата регистрацииИзменитьБлокировать
+ {{$user->id}} + + {{ !empty($user->name_man) ? $user->name_man : $user->name }} + +
+
+

{{ empty($user->workers->email) ? $user->email : $user->workers->email }}

+

+ {{ empty($user->workers->telephone) ? $user->telephone : $user->workers->telephone }} +

+
+
+
+ @if (!empty($user->workers->persent_anketa)) + @if ($user->workers->persent_anketa > 40) + + {{$user->workers->persent_anketa}}% + + @else + + {{$user->workers->persent_anketa}}% + + @endif + @else + + 10% + + @endif + + {{ $user->created_at }} + + Изменить + + is_ban) ? "checked" : "" }}/> +
+
+ +
+ appends($_GET)->links('admin.pagginate'); ?> +
+ + + +
+ + appends($_GET)->links('catalogs.paginate'); ?> + + +@endsection diff --git a/resources/views/admin/worker/index_ajax.blade.php b/resources/views/admin/worker/index_ajax.blade.php new file mode 100644 index 0000000..741da58 --- /dev/null +++ b/resources/views/admin/worker/index_ajax.blade.php @@ -0,0 +1,174 @@ +@extends('layout.admin', ['title' => 'Админка - Работники']) + +@section('content') +
+
+ + + + + + + + + + + + @foreach($users as $user) + + + + + + + + @endforeach + +
ИмяEmail/логинРаботодатель/работникДата регистрации
+ {{$user->id}} + + + {{ $user->name }} + + {{ $user->email }} + + + @if ($user->is_worker) + Работник + @else + Работодатель + @endif + + @if ($user->admin) + + Администратор + + @endif + + {{ $user->created_at }} +
+
+ +
+ appends($_GET)->links('admin.pagginate'); ?> +
+ + + +
+ + appends($_GET)->links('catalogs.paginate'); ?> + + +@endsection diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php new file mode 100644 index 0000000..ea9ac94 --- /dev/null +++ b/resources/views/auth/login.blade.php @@ -0,0 +1,73 @@ +@extends('layouts.app') + +@section('content') +
+
+
+
+
{{ __('Login') }}
+ +
+
+ @csrf + +
+ + +
+ + + @error('email') + + {{ $message }} + + @enderror +
+
+ +
+ + +
+ + + @error('password') + + {{ $message }} + + @enderror +
+
+ +
+
+
+ + + +
+
+
+ +
+
+ + + @if (Route::has('password.request')) + + {{ __('Forgot Your Password?') }} + + @endif +
+
+
+
+
+
+
+
+@endsection diff --git a/resources/views/auth/passwords/confirm.blade.php b/resources/views/auth/passwords/confirm.blade.php new file mode 100644 index 0000000..f8c8e61 --- /dev/null +++ b/resources/views/auth/passwords/confirm.blade.php @@ -0,0 +1,49 @@ +@extends('layouts.app') + +@section('content') +
+
+
+
+
{{ __('Confirm Password') }}
+ +
+ {{ __('Please confirm your password before continuing.') }} + +
+ @csrf + +
+ + +
+ + + @error('password') + + {{ $message }} + + @enderror +
+
+ +
+
+ + + @if (Route::has('password.request')) + + {{ __('Forgot Your Password?') }} + + @endif +
+
+
+
+
+
+
+
+@endsection diff --git a/resources/views/auth/passwords/email.blade.php b/resources/views/auth/passwords/email.blade.php new file mode 100644 index 0000000..d1ac783 --- /dev/null +++ b/resources/views/auth/passwords/email.blade.php @@ -0,0 +1,47 @@ +@extends('layouts.app') + +@section('content') +
+
+
+
+
{{ __('Reset Password') }}
+ +
+ @if (session('status')) + + @endif + +
+ @csrf + +
+ + +
+ + + @error('email') + + {{ $message }} + + @enderror +
+
+ +
+
+ +
+
+
+
+
+
+
+
+@endsection diff --git a/resources/views/auth/passwords/reset.blade.php b/resources/views/auth/passwords/reset.blade.php new file mode 100644 index 0000000..dccf6c6 --- /dev/null +++ b/resources/views/auth/passwords/reset.blade.php @@ -0,0 +1,65 @@ +@extends('layouts.app') + +@section('content') +
+
+
+
+
{{ __('Reset Password') }}
+ +
+
+ @csrf + + + +
+ + +
+ + + @error('email') + + {{ $message }} + + @enderror +
+
+ +
+ + +
+ + + @error('password') + + {{ $message }} + + @enderror +
+
+ +
+ + +
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
+@endsection diff --git a/resources/views/auth/register.blade.php b/resources/views/auth/register.blade.php new file mode 100644 index 0000000..12cad1a --- /dev/null +++ b/resources/views/auth/register.blade.php @@ -0,0 +1,77 @@ +@extends('layouts.app') + +@section('content') +
+
+
+
+
{{ __('Register') }}
+ +
+
+ @csrf + +
+ + +
+ + + @error('name') + + {{ $message }} + + @enderror +
+
+ +
+ + +
+ + + @error('email') + + {{ $message }} + + @enderror +
+
+ +
+ + +
+ + + @error('password') + + {{ $message }} + + @enderror +
+
+ +
+ + +
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
+@endsection diff --git a/resources/views/auth/verify.blade.php b/resources/views/auth/verify.blade.php new file mode 100644 index 0000000..b557675 --- /dev/null +++ b/resources/views/auth/verify.blade.php @@ -0,0 +1,29 @@ +@extends('layouts.app') + +@section('content') +
+
+
+
+
{{ __('Verify Your Email Address') }}
+ +
+ @if (session('resent')) + + @endif + + {{ __('Before proceeding, please check your email for a verification link.') }} + {{ __('If you did not receive the email') }}, +
+ @csrf + + . +
+
+
+
+
+
+@endsection diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php new file mode 100644 index 0000000..1f34466 --- /dev/null +++ b/resources/views/home.blade.php @@ -0,0 +1,23 @@ +@extends('layouts.app') + +@section('content') +
+
+
+
+
{{ __('Dashboard') }}
+ +
+ @if (session('status')) + + @endif + + {{ __('You are logged in!') }} +
+
+
+
+
+@endsection diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php new file mode 100644 index 0000000..2153fcc --- /dev/null +++ b/resources/views/index.blade.php @@ -0,0 +1,22 @@ + + +Главная страница + + + + + diff --git a/resources/views/layout/admin.blade.php b/resources/views/layout/admin.blade.php new file mode 100644 index 0000000..9e04338 --- /dev/null +++ b/resources/views/layout/admin.blade.php @@ -0,0 +1,1586 @@ + + + + + + {{$title}} + + + + + + + + + + + + + +@yield('script') + diff --git a/resources/views/layout/authorize.blade.php b/resources/views/layout/authorize.blade.php new file mode 100644 index 0000000..504201c --- /dev/null +++ b/resources/views/layout/authorize.blade.php @@ -0,0 +1,65 @@ + + + + + + + + {{$title}} + + + + + + +
+
+
+
+ @yield('image') +
+
+
+ @if ($message = Session::get('success')) +
+ +
+ @endif + + @if ($errors->any()) +
+ +
+ @endif + + @yield('content') +
+
+ +
+
+
+ + diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php new file mode 100644 index 0000000..a30c2d4 --- /dev/null +++ b/resources/views/layouts/app.blade.php @@ -0,0 +1,80 @@ + + + + + + + + + + {{ config('app.name', 'Laravel') }} + + + + + + + + + +
+ + +
+ @yield('content') +
+
+ + diff --git a/resources/views/welcome.blade.php b/resources/views/welcome.blade.php new file mode 100644 index 0000000..9faad4e --- /dev/null +++ b/resources/views/welcome.blade.php @@ -0,0 +1,132 @@ + + + + + + + Laravel + + + + + + + + + + +
+ @if (Route::has('login')) + + @endif + +
+
+ + + + + +
+ +
+
+
+ + +
+
+ Laravel has wonderful, thorough documentation covering every aspect of the framework. Whether you are new to the framework or have previous experience with Laravel, we recommend reading all of the documentation from beginning to end. +
+
+
+ +
+
+ + +
+ +
+
+ Laracasts offers thousands of video tutorials on Laravel, PHP, and JavaScript development. Check them out, see for yourself, and massively level up your development skills in the process. +
+
+
+ +
+
+ + +
+ +
+
+ Laravel News is a community driven portal and newsletter aggregating all of the latest and most important news in the Laravel ecosystem, including new package releases and tutorials. +
+
+
+ +
+
+ +
Vibrant Ecosystem
+
+ +
+
+ Laravel's robust library of first-party tools and libraries, such as Forge, Vapor, Nova, and Envoyer help you take your projects to the next level. Pair them with powerful open source libraries like Cashier, Dusk, Echo, Horizon, Sanctum, Telescope, and more. +
+
+
+
+
+ +
+
+
+ + + + + + Shop + + + + + + + + Sponsor + +
+
+ +
+ Laravel v{{ Illuminate\Foundation\Application::VERSION }} (PHP v{{ PHP_VERSION }}) +
+
+
+
+ + diff --git a/robots.txt b/robots.txt new file mode 100755 index 0000000..1f53798 --- /dev/null +++ b/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / diff --git a/routes/api.php b/routes/api.php new file mode 100644 index 0000000..eb6fa48 --- /dev/null +++ b/routes/api.php @@ -0,0 +1,19 @@ +get('/user', function (Request $request) { + return $request->user(); +}); diff --git a/routes/channels.php b/routes/channels.php new file mode 100644 index 0000000..5d451e1 --- /dev/null +++ b/routes/channels.php @@ -0,0 +1,18 @@ +id === (int) $id; +}); diff --git a/routes/console.php b/routes/console.php new file mode 100644 index 0000000..e05f4c9 --- /dev/null +++ b/routes/console.php @@ -0,0 +1,19 @@ +comment(Inspiring::quote()); +})->purpose('Display an inspiring quote'); diff --git a/routes/web.php b/routes/web.php new file mode 100644 index 0000000..8edfa81 --- /dev/null +++ b/routes/web.php @@ -0,0 +1,112 @@ +name('index'); +*/ +Route::get('/', [MainController::class, 'index'])->name('index'); + +//Роуты авторизации, регистрации, восстановления, аутентификации +Auth::routes(['verify' => true]); +//Личный кабинет пользователя +Route::get('/home', [HomeController::class, 'index'])->name('home'); + +/* +Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) { + $user = User::where('email',$request->input('email'))->first(); + + $user->sendEmailVerificationNotification(); + + return 'your response'; +})->middleware('throttle:6,1')->name('verification.resend'); +*/ + +// Авторизация, регистрация в админку +Route::group([ + 'as' => 'admin.', // имя маршрута, например auth.index + 'prefix' => 'admin', // префикс маршрута, например auth/index + 'middleware' => ['guest'], +], function () { +// Форма регистрации + Route::get('register', [AdminController::class, 'register'])->name('register'); + +// Создание пользователя + Route::post('register', [AdminController::class, 'create'])->name('create'); +//Форма входа + Route::get('login', [AdminController::class, 'login'])->name('login'); + +// аутентификация + Route::post('login', [AdminController::class, 'autenticate'])->name('auth'); + +}); + +// Личный кабинет админки +Route::group([ + 'as' => 'admin.', // имя маршрута, например auth.index + 'prefix' => 'admin', // префикс маршрута, например auth/index + 'middleware' => ['auth'], ['admin'], +], function() { + + // выход + Route::get('logout', [AdminController::class, 'logout'])->name('logout'); + + // кабинет главная страница + Route::get('cabinet', [AdminController::class, 'index'])->name('index'); + // кабинет профиль + Route::get('profile', [AdminController::class, 'profile'])->name('profile'); + // кабинет настройки + Route::get('config', [AdminController::class, 'config'])->name('config'); + + + // кабинет - пользователи + Route::get('users', [UsersController::class, 'index'])->name('users'); + + // кабинет - пользователи + Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users'); + + // кабинет - работодатели + Route::get('employers', [EmployersController::class, 'index'])->name('employers'); + + // кабинет - соискатели + Route::get('workers', [WorkersController::class, 'index'])->name('workers'); + + // кабинет - вакансии + Route::get('ad-employers', [AdminController::class, 'index'])->name('ad-employers'); + + // кабинет - категории + Route::get('categories', [AdminController::class, 'index'])->name('categories'); + + // кабинет - должности + Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles'); + + // кабинет - сообщения + Route::get('messages', [AdminController::class, 'index'])->name('messages'); + + // кабинет - группы пользователей + Route::get('groups', [AdminController::class, 'index'])->name('groups'); + + // кабинет - список админов + Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin'); +}); diff --git a/storage/app/.gitignore b/storage/app/.gitignore new file mode 100644 index 0000000..8f4803c --- /dev/null +++ b/storage/app/.gitignore @@ -0,0 +1,3 @@ +* +!public/ +!.gitignore diff --git a/storage/app/public/.gitignore b/storage/app/public/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/app/public/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/framework/.gitignore b/storage/framework/.gitignore new file mode 100644 index 0000000..05c4471 --- /dev/null +++ b/storage/framework/.gitignore @@ -0,0 +1,9 @@ +compiled.php +config.php +down +events.scanned.php +maintenance.php +routes.php +routes.scanned.php +schedule-* +services.json diff --git a/storage/framework/cache/.gitignore b/storage/framework/cache/.gitignore new file mode 100644 index 0000000..01e4a6c --- /dev/null +++ b/storage/framework/cache/.gitignore @@ -0,0 +1,3 @@ +* +!data/ +!.gitignore diff --git a/storage/framework/cache/data/.gitignore b/storage/framework/cache/data/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/framework/cache/data/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/framework/sessions/.gitignore b/storage/framework/sessions/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/framework/sessions/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/framework/testing/.gitignore b/storage/framework/testing/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/framework/testing/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/framework/views/.gitignore b/storage/framework/views/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/framework/views/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/logs/.gitignore b/storage/logs/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/logs/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/temp/bitrixsetup.php b/temp/bitrixsetup.php new file mode 100755 index 0000000..b3cfaa6 --- /dev/null +++ b/temp/bitrixsetup.php @@ -0,0 +1,1685 @@ + array( + array( + 'NAME' => 'Управление сайтом', + 'LIST' => array( + "portal"=>"Веб-кластер", + "business"=>"Бизнес", + "expert"=>"Эксперт", + "small_business"=>"Малый бизнес", + "standard"=>"Стандарт", + "start"=>"Старт", + ), + ), + array( + 'NAME' => '"Битрикс24" в коробке', + 'LIST' => array( + 'intranet_business' => 'Корпоративный портал', + 'intranet_holding' => 'Холдинг', + ) + ), + array( + 'NAME' => 'Решения для государственных организаций', + 'LIST' => array( + 'gov/gossite' => 'Официальный сайт государственной организации', + 'gov/gossite_ext' => 'Официальный сайт государственной организации (расширенный)', + 'gov/gosportal' => 'Внутренний портал государственной организации', + 'gossite_ua' => 'Офіційний сайт державної організації для України', + ), + ), + array( + 'NAME' => 'Решения для образования', + 'LIST' => array( + 'edu/eduportal' => 'Внутренний портал учебного заведения', + 'edu/edusite' => 'Сайт учебного заведения', + 'school' => 'Сайт школы', + 'school_base' => 'Сайт школы (базовый)', + 'ppk' => 'Портал повышения квалификации', + ) + ), + array( + 'NAME' => 'Решения для 1С:Франчайзи', + 'LIST' => array( + 'franchise_std' => 'Сайт 1С-Франчайзи', + 'franchise_biz' => 'Интернет-магазин 1С:Франчайзи', + ) + ), + array( + 'NAME' => 'Решения для здравоохранения', + 'LIST' => array( + 'medsite_base' => 'Сайт медицинской организации (Базовый)', + 'medsite' => 'Сайт медицинской организации (Расширенный)', + 'medportal' => 'Портал органа управления здравоохранением', + ) + ), + array( + 'NAME' => 'Сайт конференций', + 'LIST' => 'conf/conference', + ), + ), + 'en' => array( + array( + 'NAME' => 'Bitrix Site Manager', + 'LIST' => array( + "enterprise" => "Enterprise", + "professional" => "Professional", + "smb" => "Small Business", + "std" => "Standard", + "str" => "Start", + "premium" => "Premium", + ) + ), + array( + 'NAME' => 'Bitrix24', + 'LIST' => array( + 'portal/intranet_bizspace' => 'BizPace', + 'portal/en_intranet_holding' => 'BizPace Enterprise' + ), + ) + ), + 'de' => array( + array( + 'NAME' => 'Bitrix Site Manager', + 'LIST' => array( + "de/de_enterprise" => "Enterprise", + "de/de_professional" => "Professional", + "de/de_smb" => "Small Business", + "de/de_std" => "Standard", + "de/de_str" => "Start", + "de/de_premium" => "Premium", + ), + ), + array( + 'NAME' => 'Bitrix24', + 'LIST' => array( + 'de/de_intranet_bizspace' => 'BizPace', + 'de/de_intranet_holding' => 'BizPace Enterprise' + ), + ) + ) +); + +####### MESSAGES ######## +$MESS = array(); +$ar = array(); +if (LANG == "ru") +{ + $MESS["NO_PERMS"] = "Нет прав на запись в файл "; + $MESS["LOADER_LICENSE_KEY"] = "Лицензионный ключ"; + $MESS["INTRANET"] = "Корпоративный портал"; + $MESS["LOADER_TITLE"] = "Загрузка продуктов \"1С-Битрикс\""; + $MESS["UPDATE_SUCCESS"] = "Обновлено успешно. Открыть."; + $MESS["LOADER_NEW_STEPS"] = "Загрузка продуктов \"1С-Битрикс\""; + $MESS["LOADER_SUBTITLE1"] = "Загрузка продукта"; + $MESS["LOADER_SUBTITLE2"] = "1С-Битрикс"; + $MESS["LOADER_MENU_LIST"] = "Выбор дистрибутива"; + $MESS["LOADER_MENU_LOAD"] = "Загрузка дистрибутива с сервера"; + $MESS["LOADER_MENU_UNPACK"] = "Распаковка дистрибутива"; + $MESS["LOADER_TECHSUPPORT"] = ""; + $MESS["LOADER_TITLE_LIST"] = "Выбор дистрибутива"; + $MESS["LOADER_TITLE_LOAD"] = "Загрузка дистрибутива на сайт"; + $MESS["LOADER_TITLE_UNPACK"] = "Распаковка дистрибутива"; + $MESS["LOADER_TITLE_LOG"] = "Отчет по загрузке"; + $MESS["LOADER_SAFE_MODE_ERR"] = "Внимание! PHP на вашем сайте работает в Safe Mode. Установка продукта в автоматическом режиме невозможна. Пожалуйста, обратитесь в службу технической поддержки для получения дополнительной информации."; + $MESS["LOADER_NO_PERMS_ERR"] = "Внимание! PHP не имеет прав на запись в корневую папку #DIR# вашего сайта. Загрузка продукта может оказаться невозможной. Пожалуйста, установите необходимые права на корневую папку вашего сайта или обратитесь к администраторам вашего хостинга."; + $MESS["LOADER_EXISTS_ERR"] = ""; + $MESS["LOADER_IS_DISTR"] = "На сайте найдены загруженые дистрибутивы. Нажмите на название любого из дистрибутивов для его распаковки:"; + $MESS["LOADER_OVERWRITE"] = "Внимание! Существующие на сайте файлы могут быть перезаписаны файлами из дистрибутива."; + $MESS["LOADER_IS_DISTR_PART"] = "На сайте найдены недогруженные дистрибутивы. Нажмите на название любого из недогруженных дистрибутивов для полной загрузки:"; + $MESS["LOADER_NEW_LOAD_TITLE"] = "Загрузка дистрибутива с сайта http://www.1c-bitrix.ru"; + $MESS["LOADER_NEW_ED"] = "Выбор дистрибутива"; + $MESS["LOADER_NEW_VERSION"] = "Доступна новая версия скрипта установки, но загрузить её не удалось"; + $MESS["LOADER_NEW_AUTO"] = "Автоматически запустить распаковку после загрузки"; + $MESS["LOADER_NEW_STEPS"] = "Загружать по шагам с шагом"; + $MESS["LOADER_NEW_STEPS0"] = "неограниченно долгим"; + $MESS["LOADER_NEW_STEPS30"] = "не более 30 секунд"; + $MESS["LOADER_NEW_STEPS60"] = "не более 60 секунд"; + $MESS["LOADER_NEW_STEPS120"] = "не более 120 секунд"; + $MESS["LOADER_NEW_STEPS180"] = "не более 180 секунд"; + $MESS["LOADER_NEW_STEPS240"] = "не более 240 секунд"; + $MESS["LOADER_NEW_LOAD"] = "Загрузить"; + $MESS["LOADER_DESCR"] = "Этот скрипт предназначен для загрузки дистрибутивов \"1С-Битрикс\" с сайта www.1c-bitrix.ru непосредственно на ваш сайт, а так же для распаковки дистрибутива на вашем сайте.

Загрузите этот скрипт в корневую папку вашего сайта и откройте его в браузере (введите в адресной строке браузера http://<ваш сайт>/".$this_script_name.")."; + $MESS["LOADER_BACK_2LIST"] = "Вернуться в список дистрибутивов"; + $MESS["LOADER_BACK"] = "Назад"; + $MESS["LOADER_LOG_ERRORS"] = "Произошли следующие ошибки:"; + $MESS["LOADER_NO_LOG"] = "Log-файл не найден"; + $MESS["LOADER_BOTTOM_NOTE1"] = "Внимание! По окончании установки продукта обязательно удалите скрипт /".$this_script_name." с вашего сайта. Доступ постороннего человека к этому скрипту может повлечь за собой нарушение работы вашего сайта."; + $MESS["LOADER_KB"] = "кб"; + $MESS["LOADER_LOAD_QUERY_SERVER"] = "Запрашиваю сервер..."; + $MESS["LOADER_LOAD_QUERY_DISTR"] = "Запрашиваю дистрибутив #DISTR#"; + $MESS["LOADER_LOAD_CONN2HOST"] = "Открываю соединение к #HOST#..."; + $MESS["LOADER_LOAD_NO_CONN2HOST"] = "Не могу соединиться с #HOST#:"; + $MESS["LOADER_LOAD_QUERY_FILE"] = "Запрашиваю файл..."; + $MESS["LOADER_LOAD_WAIT"] = "Ожидаю ответ..."; + $MESS["LOADER_LOAD_SERVER_ANSWER"] = "Ошибка загрузки. Ответа сервера:

#ANS#"; + $MESS["LOADER_LOAD_SERVER_ANSWER1"] = "Ответ сервера: 403 Доступ запрещён.
Проверьте правильность ввода ключа."; + $MESS["LOADER_LOAD_NEED_RELOAD"] = "Докачка дистрибутива невозможна. Начинаю качать заново."; + $MESS["LOADER_LOAD_NO_WRITE2FILE"] = "Не могу открыть файл #FILE# на запись"; + $MESS["LOADER_LOAD_LOAD_DISTR"] = "Загружаю дистрибутив #DISTR#"; + $MESS["LOADER_LOAD_ERR_SIZE"] = "Ошибка размера файла"; + $MESS["LOADER_LOAD_ERR_RENAME"] = "Не могу переименовать файл #FILE1# в файл #FILE2#"; + $MESS["LOADER_LOAD_CANT_OPEN_WRITE"] = "Не могу открыть файл #FILE# на запись"; + $MESS["LOADER_LOAD_CANT_OPEN_READ"] = "Не могу открыть файл #FILE# на чтение"; + $MESS["LOADER_LOAD_LOADING"] = "Загружаю файл... дождитесь окончания загрузки..."; + $MESS["LOADER_LOAD_FILE_SAVED"] = "Файл сохранен: #FILE# [#SIZE# байт]"; + $MESS["LOADER_UNPACK_ACTION"] = "Распаковываю дистрибутив... дождитесь окончания распаковки..."; + $MESS["LOADER_UNPACK_UNKNOWN"] = "Неизвестная ошибка. Повторите процесс еще раз или обратитесь в службу технической поддержки"; + $MESS["LOADER_UNPACK_DELETE"] = "Ошибка удаления временных файлов. Удалите файлы вручную."; + $MESS["LOADER_UNPACK_SUCCESS"] = "Дистрибутив успешно распакован"; + $MESS["LOADER_UNPACK_ERRORS"] = "Дистрибутив распакован с ошибками"; + $MESS["LOADER_KEY_DEMO"] = "Демонстрационная версия"; + $MESS["LOADER_KEY_COMM"] = "Коммерческая версия"; + $MESS["LOADER_KEY_TITLE"] = "Введите лицензионный ключ"; +} +elseif (LANG == "de") +{ + $MESS["NO_PERMS"] = "Nicht genunugend Rechte um die Datei zu beschreiben"; + $MESS["LOADER_LICENSE_KEY"] = "Lizenzschlussel"; + $MESS["INTRANET"] = "Intranet Portal "; + $MESS["LOADER_TITLE"] = "Download der \"Bitrix\" Software"; + $MESS["UPDATE_SUCCESS"] = "Aktualisierung erfolgreich durchgefuhrt. Offnen?."; + $MESS["LOADER_NEW_STEPS"] = "Download der \"Bitrix\" Software"; + $MESS["LOADER_SUBTITLE1"] = "Softwaredownload"; + $MESS["LOADER_SUBTITLE2"] = "Bitrix "; + $MESS["LOADER_MENU_LIST"] = "Auswahl des Installationspacks"; + $MESS["LOADER_MENU_LOAD"] = "Download des Installationspacks von dem Server"; + $MESS["LOADER_MENU_UNPACK"] = "Auspacken des Installationspacks"; + $MESS["LOADER_TECHSUPPORT"] = ""; + $MESS["LOADER_TITLE_LIST"] = "Auswahl des Installationspacks"; + $MESS["LOADER_TITLE_LOAD"] = "Upload des Installationspacks auf die Website"; + $MESS["LOADER_TITLE_UNPACK"] = "Auspacken des Installationspacks"; + $MESS["LOADER_TITLE_LOG"] = "Uploadbericht"; + $MESS["LOADER_SAFE_MODE_ERR"] = "Achtung! PHP auf Ihrer Website arbeitet im Safe Mode. Die automatische Installation der Software ist nicht moglich. Bitte wenden Sie sich fur weitere Informationen an den technischen Support."; + $MESS["LOADER_NO_PERMS_ERR"] = "Achtung! PHP hat nicht genugend Rechte um das Hautverzeichnis #DIR# Ihrer Website zu uberschreiben. Es konnen Fehler bei der Installation auftreten. Bitte stellen Sie alle erforderlichen Rechte ein, oder wenden Sie sich an Ihren Hosting-Anbieter."; + $MESS["LOADER_EXISTS_ERR"] = ""; + $MESS["LOADER_IS_DISTR"] = "Hochgeladene Installationspacks wurden gefunden. Klicken Sie auf den Namen des erforderlichen Installationspacks um mit dem Auspacken zu beginnen:"; + $MESS["LOADER_OVERWRITE"] = "Achtung! Die existierenden Dateien konnen durch die Dateien aus dem Installationspack uberschrieben werden."; + $MESS["LOADER_IS_DISTR_PART"] = "Auf der Website wurden nicht vollstandig geladenen Installationspacks hochgeladen. Klicken Sie auf den Namen des erforderlichen Installationspacks um mit Upload fortzufuhren:"; + $MESS["LOADER_NEW_LOAD_TITLE"] = "Download des Installationspacks von der Site http://www.bitrix.de"; + $MESS["LOADER_NEW_ED"] = "Auswahl des Installationspacks"; + $MESS["LOADER_NEW_VERSION"] = "Neue Version des Installationsskripts ins verfugbar!"; + $MESS["LOADER_NEW_AUTO"] = "Auspacken automatisch nach dem Upload starten"; + $MESS["LOADER_NEW_STEPS"] = "Hochladen in folgenden Schritten"; + $MESS["LOADER_NEW_STEPS0"] = "uneingeschrankt "; + $MESS["LOADER_NEW_STEPS30"] = "max. 30 Sekunden"; + $MESS["LOADER_NEW_STEPS60"] = " max. 60 Sekunden"; + $MESS["LOADER_NEW_STEPS120"] = "max. 120 Sekunden"; + $MESS["LOADER_NEW_STEPS180"] = "max. 180 Sekunden"; + $MESS["LOADER_NEW_STEPS240"] = "max. 240 Sekunden"; + $MESS["LOADER_NEW_LOAD"] = "Hochladen"; + $MESS["LOADER_DESCR"] = "Dieses Skript ist dient dem Download der \"Bitrix\"-Installationspacks von der Website www.bitrix.de direkt auf Ihre Website, sowie dem Auspacken des Installationspacks auf Ihrer Website.

+Laden Sie dieses Skript in das Hauptverzeichnis, und offnen Sie es in Ihrem Internet-Browser. Geben Sie dafur in der Adresszeile http://&lt;IhreWebsite&gt;/".$this_script_name.")."; + $MESS["LOADER_BACK_2LIST"] = "Zur der Installationspack-Liste zuruckkehren"; + $MESS["LOADER_BACK"] = "Zuruck"; + $MESS["LOADER_LOG_ERRORS"] = "Folgende Fehler sind aufgetreten:"; + $MESS["LOADER_NO_LOG"] = "Log-Datei nicht gefunden"; + $MESS["LOADER_BOTTOM_NOTE1"] = "Achtung! Nach der Installation des Produkts loschen Sie unbedingt das Skript/".$this_script_name." von Ihrer Website. Der Fremdzugriff zu diesem Skript kann fehlerhafte Funktion Ihrer Website mit sich fuhren."; + $MESS["LOADER_KB"] = "кб"; + $MESS["LOADER_LOAD_QUERY_SERVER"] = "Anfrage an den Server..."; + $MESS["LOADER_LOAD_QUERY_DISTR"] = "Anfrage fur das Installationspack #DISTR#"; + $MESS["LOADER_LOAD_CONN2HOST"] = "Aufbau der Verbindung mit #HOST#..."; + $MESS["LOADER_LOAD_NO_CONN2HOST"] = "Keine Verbindung mit #HOST#:"; + $MESS["LOADER_LOAD_QUERY_FILE"] = "Anfrage fur die Datei..."; + $MESS["LOADER_LOAD_WAIT"] = "Abwarten der Ruckmeldung..."; + $MESS["LOADER_LOAD_SERVER_ANSWER"] = "Upload-Fehler. Serverruckmeldung:

#ANS#"; + $MESS["LOADER_LOAD_SERVER_ANSWER1"] = " Serverruckmeldung: 403 Zugriff verweigert.
Uberprufen Sie die Richtigkeit des Codes."; + $MESS["LOADER_LOAD_NEED_RELOAD"] = "Fortfuhrung des Downloadvorgangs nicht moglich. Der Downloadvorgang wird erneut ausgefuhrt."; + $MESS["LOADER_LOAD_NO_WRITE2FILE"] = "Die #FILE# kann nicht bearbeitet werden"; + $MESS["LOADER_LOAD_LOAD_DISTR"] = "Installationspack #DISTR# wird hochgeladen"; + $MESS["LOADER_LOAD_ERR_SIZE"] = "Fehler bei der Dateigro?e"; + $MESS["LOADER_LOAD_ERR_RENAME"] = "Die Datei #FILE1# kann nicht in #FILE2# umbenannt warden"; + $MESS["LOADER_LOAD_CANT_OPEN_WRITE"] = "Die Datei #FILE# kann nicht bearbeitet werden"; + $MESS["LOADER_LOAD_CANT_OPEN_READ"] = "Die Datei #FILE# kann nicht gelesen werden"; + $MESS["LOADER_LOAD_LOADING"] = "Upload-Vorgang lauft... Bitte warten Sie bis der Vorgang beendet wird."; + $MESS["LOADER_LOAD_FILE_SAVED"] = "Datei gespeichert: #FILE# [#SIZE# Byte]"; + $MESS["LOADER_UNPACK_ACTION"] = " Das Installationspack wird ausgepackt... Bitte warten Sie bis der Vorgang beendet wird."; + $MESS["LOADER_UNPACK_UNKNOWN"] = "Unbekannter Fehler. Fuhren Sie den Vorgang nochmal aus, oder wenden Sie sich an den technischen Support"; + $MESS["LOADER_UNPACK_DELETE"] = "Fehler beim Loschen der temporaren Dateien. Loschen Sie bitte die Dateien manuell."; + $MESS["LOADER_UNPACK_SUCCESS"] = "Das Installationspack wurde erfolgreich ausgepackt"; + $MESS["LOADER_UNPACK_ERRORS"] = " Das Installationspack wurde mit Fehlern ausgepackt "; + $MESS["LOADER_KEY_DEMO"] = "Testversion"; + $MESS["LOADER_KEY_COMM"] = "Vollversion"; + $MESS["LOADER_KEY_TITLE"] = "Lizenzcode eingeben"; +} +else +{ + $MESS["NO_PERMS"] = "No permissions to write the file "; + $MESS["LOADER_LICENSE_KEY"] = "Your license key"; + $MESS["INTRANET"] = "Bitrix Intranet Portal"; + $MESS["LOADER_TITLE"] = "Loading Product \"Bitrix Site Manager\" or \"Bitrix Intranet Portal\""; + $MESS["UPDATE_SUCCESS"] = "Successful update. Open."; + $MESS["LOADER_SUBTITLE1"] = "Loading"; + $MESS["LOADER_SUBTITLE2"] = "Bitrix Site Manager or Bitrix Intranet Portal"; + $MESS["LOADER_MENU_LIST"] = "Choose a package"; + $MESS["LOADER_MENU_LOAD"] = "Download installation package from server"; + $MESS["LOADER_MENU_UNPACK"] = "Unpacking the Installation Package"; + $MESS["LOADER_TECHSUPPORT"] = ""; + $MESS["LOADER_TITLE_LIST"] = "Select installation package"; + $MESS["LOADER_TITLE_LOAD"] = "Uploading installation package to the site"; + $MESS["LOADER_TITLE_UNPACK"] = "Unpacking the Installation Package"; + $MESS["LOADER_TITLE_LOG"] = "Upload report"; + $MESS["LOADER_SAFE_MODE_ERR"] = "Attention! Your PHP functions in Safe Mode. The Setup cannot proceed in automatic mode. Please consult the technical support service for additional instructions."; + $MESS["LOADER_NO_PERMS_ERR"] = "Attention! PHP has not enough permissions to write to the root directory #DIR# of your site. Loading is likely to fail. Please set the required access permissions to the root directory of your site or consult administrators of your hosting service."; + $MESS["LOADER_EXISTS_ERR"] = ""; + $MESS["LOADER_IS_DISTR"] = "Uploaded installation packages were found on the site. Click the name of any package to start installation:"; + $MESS["LOADER_OVERWRITE"] = "Attention! Files currently present on your site will possibly be overwritten with files from the package."; + $MESS["LOADER_IS_DISTR_PART"] = "Incompletely uploaded installation packages were found on the site. Click the name of any package to finish loading:"; + $MESS["LOADER_NEW_LOAD_TITLE"] = "Download new installation package from http://www.bitrixsoft.com"; + $MESS["LOADER_NEW_VERSION"] = "New version of bitrixsetup script is available!"; + $MESS["LOADER_NEW_ED"] = "Choose a package"; + $MESS["LOADER_NEW_AUTO"] = "automatically start unpacking after loading"; + $MESS["LOADER_NEW_STEPS"] = "load gradually with interval:"; + $MESS["LOADER_NEW_STEPS0"] = "unlimited"; + $MESS["LOADER_NEW_STEPS30"] = "less than 30 seconds"; + $MESS["LOADER_NEW_STEPS60"] = "less than 60 seconds"; + $MESS["LOADER_NEW_STEPS120"] = "less than 120 seconds"; + $MESS["LOADER_NEW_STEPS180"] = "less than 180 seconds"; + $MESS["LOADER_NEW_STEPS240"] = "less than 240 seconds"; + $MESS["LOADER_NEW_LOAD"] = "Download"; + $MESS["LOADER_DESCR"] = ""; + $MESS["LOADER_BACK_2LIST"] = "Back to packages list"; + $MESS["LOADER_BACK"] = "Back"; + $MESS["LOADER_LOG_ERRORS"] = "The following errors occured:"; + $MESS["LOADER_NO_LOG"] = "Log file not found"; + $MESS["LOADER_BOTTOM_NOTE1"] = "Attention! After you have finished installing, please be sure to delete the script /".$this_script_name." from your site. Otherwise, unauthorized persons may access this script and damage your site."; + $MESS["LOADER_KB"] = "kb"; + $MESS["LOADER_LOAD_QUERY_SERVER"] = "Connecting server..."; + $MESS["LOADER_LOAD_QUERY_DISTR"] = "Requesting package #DISTR#"; + $MESS["LOADER_LOAD_CONN2HOST"] = "Establishing connection to #HOST#..."; + $MESS["LOADER_LOAD_NO_CONN2HOST"] = "Cannot connect to #HOST#:"; + $MESS["LOADER_LOAD_QUERY_FILE"] = "Requesting file..."; + $MESS["LOADER_LOAD_WAIT"] = "Waiting for response..."; + $MESS["LOADER_LOAD_SERVER_ANSWER"] = "Error while downloading. Server reply was: #ANS#"; + $MESS["LOADER_LOAD_SERVER_ANSWER1"] = "Server reply: 403 Forbidden.
Please check your licence key."; + $MESS["LOADER_LOAD_NEED_RELOAD"] = "Cannot resume download. Starting new download."; + $MESS["LOADER_LOAD_NO_WRITE2FILE"] = "Cannot open file #FILE# for writing"; + $MESS["LOADER_LOAD_LOAD_DISTR"] = "Downloading package #DISTR#"; + $MESS["LOADER_LOAD_ERR_SIZE"] = "File size error"; + $MESS["LOADER_LOAD_ERR_RENAME"] = "Cannot rename file #FILE1# to #FILE2#"; + $MESS["LOADER_LOAD_CANT_OPEN_WRITE"] = "Cannot open file #FILE# for writing"; + $MESS["LOADER_LOAD_CANT_OPEN_READ"] = "Cannot open file #FILE# for reading"; + $MESS["LOADER_LOAD_LOADING"] = "Download in progress. Please wait..."; + $MESS["LOADER_LOAD_FILE_SAVED"] = "File saved: #FILE# [#SIZE# bytes]"; + $MESS["LOADER_UNPACK_ACTION"] = "Unpacking the package. Please wait..."; + $MESS["LOADER_UNPACK_UNKNOWN"] = "Unknown error occured. Please try again or consult the technical support service"; + $MESS["LOADER_UNPACK_DELETE"] = "Errors occured while deleting temporary files"; + $MESS["LOADER_UNPACK_SUCCESS"] = "The installation package successfully unpacked"; + $MESS["LOADER_UNPACK_ERRORS"] = "Errors occured while unpacking the installation package"; + $MESS["LOADER_KEY_DEMO"] = "Demo version"; + $MESS["LOADER_KEY_COMM"] = "Commercial version"; + $MESS["LOADER_KEY_TITLE"] = "Specify license key"; +} +####### /MESSAGES ######## + +function LoaderGetMessage($name) +{ + global $MESS; + return $MESS[$name]; +} + +$strAction = $_REQUEST["action"]; + +$bx_host = 'www.1c-bitrix.ru'; +$bx_url = '/download/files/scripts/'.$this_script_name; +$form = ''; + + +$strError = ''; +if ($strAction!="LOAD" && $strAction!="UNPACK" && $strAction!="LOG") +{ + $strAction = "LIST"; + + if (!$proxyAddr) + { + // Check for updates + $res = @fsockopen($bx_host, 80, $errno, $errstr, 3); + + if($res) + { + $strRequest = "HEAD ".$bx_url." HTTP/1.1\r\n"; + $strRequest.= "Host: ".$bx_host."\r\n"; + $strRequest.= "\r\n"; + + fputs($res, $strRequest); + + while ($line = fgets($res, 4096)) + { + if (@preg_match("/Content-Length: *([0-9]+)/i", $line, $regs)) + { + if (filesize(__FILE__) != trim($regs[1])) + { + $tmp_name = $this_script_name.'.tmp'; + if (LoadFile('http://'.$bx_host.$bx_url, $tmp_name, 0)) + { + if (rename($_SERVER['DOCUMENT_ROOT'].'/'.$tmp_name,__FILE__)) + { + bx_accelerator_reset(); + echo ''.LoaderGetMessage('UPDATE_SUCCESS'); + die(); + } + else + $strError = str_replace("#FILE#", $this_script_name, LoaderGetMessage("LOADER_LOAD_CANT_OPEN_WRITE")); + } + else + $strError = LoaderGetMessage('LOADER_NEW_VERSION'); + } + break; + } + } + fclose($res); + } + } +} + +if ($strAction=="UNPACK" && (!isset($_REQUEST["filename"]) || strlen($_REQUEST["filename"])<=0)) + $strAction = "LIST"; + + +$script = ''; +if ($strAction=="LIST") +{ + $txt = ''; + if ($strError) + $txt = ShowError($strError); + + /*************************************************/ + if (ini_get("safe_mode") == "1") + $txt .= LoaderGetMessage("LOADER_SAFE_MODE_ERR") . '
'; + + if (!is_writable($_SERVER["DOCUMENT_ROOT"])) + $txt .= str_replace("#DIR#", $_SERVER["DOCUMENT_ROOT"], LoaderGetMessage("LOADER_NO_PERMS_ERR")) . '
'; + + if (file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix") + && is_dir($_SERVER["DOCUMENT_ROOT"]."/bitrix")) + $txt .= LoaderGetMessage("LOADER_EXISTS_ERR") . '
'; + + $arLocalDistribs = array(); + $arLocalDistribs_tmp = array(); + + $handle = opendir($_SERVER["DOCUMENT_ROOT"]); + if ($handle) + { + while (false !== ($ffile = readdir($handle))) + { + if (!is_file($_SERVER["DOCUMENT_ROOT"]."/".$ffile)) + continue; + + if (strtolower(substr($ffile, -7))==".tar.gz") + $arLocalDistribs[] = $ffile; + elseif (strtolower(substr($ffile, -11))==".tar.gz.tmp") + $arLocalDistribs_tmp[] = $ffile; + elseif (strtolower(substr($ffile, -11))==".tar.gz.log") + $arLocalDistribs_tmp[] = $ffile; + } + closedir($handle); + } + + if (count($arLocalDistribs)>0) + { + $txt .= LoaderGetMessage("LOADER_IS_DISTR").'
'; + for ($i = 0; $i < count($arLocalDistribs); $i++) + $txt .= ''.$arLocalDistribs[$i].'

'; + $txt .= LoaderGetMessage("LOADER_OVERWRITE") . '

'; + } + + + if (count($arLocalDistribs_tmp)>0 && $_REQUEST['action']=='LIST') + { +// $txt .= '
'.LoaderGetMessage("LOADER_IS_DISTR_PART") . '
'; + foreach($arLocalDistribs_tmp as $distr) + @unlink($_SERVER['DOCUMENT_ROOT'].'/'.$distr); +// $txt .= ''.$arLocalDistribs_tmp[$i].'
'; + } + + + $txt .= ' + '; + + $form = ' +
+ + '; + + $txt .= ''; + $txt .= ''; + + foreach($arEditions[LANG] as $k => $ED) + { + $txt.=' + '; + + $txt .= ''; + } + + + $txt.=' + + + + + + + + + + + + + + +
'.LoaderGetMessage("LOADER_NEW_ED").':
'; + if (is_array($ED['LIST'])) + { + $txt .= ' + '; + } + $txt .= '
'.LoaderGetMessage("LOADER_LICENSE_KEY").':
'; + + $ar = array( + 'FORM' => $form, + 'TITLE' => LoaderGetMessage("LOADER_TITLE"), + 'HEAD' => LoaderGetMessage("LOADER_MENU_LIST"), + 'TEXT' => $txt, + 'TEXT_ALIGN' => 'top', + 'BOTTOM' => (file_exists($_SERVER['DOCUMENT_ROOT'].'/index.php')?' ':''). + '' + ); + + /*************************************************/ +} +elseif ($strAction=="LOAD") +{ + /*********************************************************************/ + + if(LANG == "ru") + $site = "http://www.1c-bitrix.ru/"; + else + $site = "http://www.bitrixsoft.com/"; + + if($_REQUEST['licence_type'] == 'src' || $_REQUEST['LICENSE_KEY']) + { + $path = 'private/download/'; + $suffix = '_source.tar.gz'; + @mkdir($_SERVER['DOCUMENT_ROOT'].'/bitrix'); + $fres = @fopen($_SERVER['DOCUMENT_ROOT'].'/bitrix/license_key.php','wb'); + @fwrite($fres,'<'.'? $LICENSE_KEY = "'.EscapePHPString($_REQUEST['LICENSE_KEY']).'"; ?'.'>') && fclose($fres); + } + else + { + @unlink($_SERVER['DOCUMENT_ROOT'].'/bitrix/license_key.php'); + $path = 'download/'; + if(version_compare(phpversion(), '5.0.0') == -1) + $suffix = '_encode_php4.tar.gz'; + else + $suffix = '_encode_php5.tar.gz'; + } + + $ED = $arEditions[LANG][$_REQUEST['edition']]; + if (is_array($ED['LIST'])) + $url = $_REQUEST['url']; + else + $url = $ED['LIST']; + + if ($_REQUEST['LICENSE_KEY'] && false !== $p = strpos($url, '/')) + $url = substr($url,$p+1); + + $strRequestedUrl = $site.$path.$url.$suffix; + + $iTimeOut = TIMEOUT; + + $strUserAgent = "BitrixSiteLoader"; + $strFilename = $_SERVER["DOCUMENT_ROOT"]."/".basename($strRequestedUrl); + + $strLog = ''; + $status = ''; + $res = LoadFile($strRequestedUrl.($_REQUEST["LICENSE_KEY"]<>''? "?lp=".md5($_REQUEST["LICENSE_KEY"]):''), $strFilename, $iTimeOut); + if (!$res) + $txt = nl2br($strLog); + elseif ($res==2) // частичная закачка + { + $txt = $status; + $script = "\n"; + } + else + { + $txt = $status; + $script = "\n"; + } + + $ar = array( + 'FORM' => $form, + 'TITLE' => LoaderGetMessage("LOADER_MENU_LOAD"), + 'HEAD' => LoaderGetMessage("LOADER_MENU_LOAD"), + 'TEXT' => $txt, + 'BOTTOM' => '' + ); + + /*********************************************************************/ +} +elseif ($strAction=="UNPACK") +{ + /*********************************************************************/ +// $iNumDistrFiles = 8000; + + SetCurrentStatus(LoaderGetMessage("LOADER_UNPACK_ACTION")); + $oArchiver = new CArchiver($_SERVER["DOCUMENT_ROOT"]."/".$_REQUEST["filename"], true); + $tres = $oArchiver->extractFiles($_SERVER["DOCUMENT_ROOT"]); + + SetCurrentProgress($oArchiver->iCurPos, $oArchiver->iArchSize, False); + $txt = $status; + if ($tres) + { + if (!$oArchiver->bFinish) + $script = "\n"; + else // finish + { + $res = unlink($_SERVER["DOCUMENT_ROOT"]."/".$_REQUEST["filename"]) && unlink(__FILE__); + @unlink($_SERVER["DOCUMENT_ROOT"]."/".$_REQUEST["filename"].'.log'); + @unlink($_SERVER["DOCUMENT_ROOT"]."/".$_REQUEST["filename"].'.tmp'); + + @unlink($_SERVER['DOCUMENT_ROOT'].'/restore.php'); + $strInstFile = "index.php"; + + if (!$res) + SetCurrentStatus(LoaderGetMessage("LOADER_UNPACK_DELETE")); + elseif (!file_exists($_SERVER["DOCUMENT_ROOT"]."/".$strInstFile)) + SetCurrentStatus(LoaderGetMessage("LOADER_UNPACK_UNKNOWN")); + else + { + bx_accelerator_reset(); + SetCurrentStatus(LoaderGetMessage("LOADER_UNPACK_SUCCESS")); + $script = ""; + } + } + } + else + { + SetCurrentStatus(LoaderGetMessage("LOADER_UNPACK_ERRORS")); + $arErrors = &$oArchiver->GetErrors(); + if (count($arErrors)>0) + { + if ($ft = fopen($_SERVER["DOCUMENT_ROOT"]."/".$this_script_name.".log", "wb")) + { + foreach ($arErrors as $value) + { + $str = "[".$value[0]."] ".$value[1]."\n"; + fwrite($ft, $str); + $txt .= $str . '
'; + } + fclose($ft); + } + } + } + + $ar = array( + 'FORM' => $form, + 'TITLE' => LoaderGetMessage("LOADER_MENU_UNPACK"), + 'HEAD' => LoaderGetMessage("LOADER_MENU_UNPACK"), + 'TEXT' => $txt, + 'BOTTOM' => '' + ); + + /*********************************************************************/ +} + +########### HTML ######### + html($ar); + echo $script; +########################## + + +function LoadFile($strRequestedUrl, $strFilename, $iTimeOut) +{ + global $proxyAddr, $proxyPort, $proxyUserName, $proxyPassword, $strUserAgent, $strRequestedSize; + + $iTimeOut = IntVal($iTimeOut); + if ($iTimeOut>0) + $start_time = getmicrotime(); + + $strRealUrl = $strRequestedUrl; + $iStartSize = 0; + $iRealSize = 0; + + $bCanContinueDownload = False; + + // ИНИЦИАЛИЗИРУЕМ, ЕСЛИ ДОКАЧКА + $strRealUrl_tmp = ""; + $iRealSize_tmp = 0; + if (file_exists($strFilename.".tmp") && file_exists($strFilename.".log") && filesize($strFilename.".log")>0) + { + $fh = fopen($strFilename.".log", "rb"); + $file_contents_tmp = fread($fh, filesize($strFilename.".log")); + fclose($fh); + + list($strRealUrl_tmp, $iRealSize_tmp) = explode("\n", $file_contents_tmp); + $strRealUrl_tmp = Trim($strRealUrl_tmp); + $iRealSize_tmp = Trim($iRealSize_tmp); + } + if ($iRealSize_tmp<=0 || strlen($strRealUrl_tmp)<=0) + { + $strRealUrl_tmp = ""; + $iRealSize_tmp = 0; + + if (file_exists($strFilename.".tmp")) + @unlink($strFilename.".tmp"); + + if (file_exists($strFilename.".log")) + @unlink($strFilename.".log"); + } + else + { + $strRealUrl = $strRealUrl_tmp; + $iRealSize = $iRealSize_tmp; + $iStartSize = filesize($strFilename.".tmp"); + } + // КОНЕЦ: ИНИЦИАЛИЗИРУЕМ, ЕСЛИ ДОКАЧКА + +// SetCurrentStatus(LoaderGetMessage("LOADER_LOAD_QUERY_SERVER")); + + // ИЩЕМ ФАЙЛ И ЗАПРАШИВАЕМ ИНФО + do + { +// SetCurrentStatus(str_replace("#DISTR#", $strRealUrl, LoaderGetMessage("LOADER_LOAD_QUERY_DISTR"))); + + $lasturl = $strRealUrl; + $redirection = ""; + + $parsedurl = parse_url($strRealUrl); + $useproxy = (($proxyAddr != "") && ($proxyPort != "")); + + if (!$useproxy) + { + $host = $parsedurl["host"]; + $port = $parsedurl["port"]; + $hostname = $host; + } + else + { + $host = $proxyAddr; + $port = $proxyPort; + $hostname = $parsedurl["host"]; + } + + $port = $port ? $port : "80"; + +// SetCurrentStatus(str_replace("#HOST#", $host, LoaderGetMessage("LOADER_LOAD_CONN2HOST"))); + $sockethandle = fsockopen($host, $port, $error_id, $error_msg, 30); + if (!$sockethandle) + { +// SetCurrentStatus(str_replace("#HOST#", $host, LoaderGetMessage("LOADER_LOAD_NO_CONN2HOST"))." [".$error_id."] ".$error_msg); + return false; + } + else + { + if (!$parsedurl["path"]) + $parsedurl["path"] = "/"; + +// SetCurrentStatus(LoaderGetMessage("LOADER_LOAD_QUERY_FILE")); + $request = ""; + if (!$useproxy) + { + $request .= "HEAD ".$parsedurl["path"].($parsedurl["query"] ? '?'.$parsedurl["query"] : '')." HTTP/1.0\r\n"; + $request .= "Host: $hostname\r\n"; + } + else + { + $request .= "HEAD ".$strRealUrl." HTTP/1.0\r\n"; + $request .= "Host: $hostname\r\n"; + if ($proxyUserName) + $request .= "Proxy-Authorization: Basic ".base64_encode($proxyUserName.":".$proxyPassword)."\r\n"; + } + + if ($strUserAgent != "") + $request .= "User-Agent: $strUserAgent\r\n"; + + $request .= "\r\n"; + + fwrite($sockethandle, $request); + + $result = ""; +// SetCurrentStatus(LoaderGetMessage("LOADER_LOAD_WAIT")); + + $replyheader = ""; + while (($result = fgets($sockethandle, 4024)) && $result!="\r\n") + { + $replyheader .= $result; + } + fclose($sockethandle); + + $ar_replyheader = explode("\r\n", $replyheader); + + $replyproto = ""; + $replyversion = ""; + $replycode = 0; + $replymsg = ""; + if (preg_match("#([A-Z]{4})/([0-9.]{3}) ([0-9]{3})#", $ar_replyheader[0], $regs)) + { + $replyproto = $regs[1]; + $replyversion = $regs[2]; + $replycode = IntVal($regs[3]); + $replymsg = substr($ar_replyheader[0], strpos($ar_replyheader[0], $replycode) + strlen($replycode) + 1, strlen($ar_replyheader[0]) - strpos($ar_replyheader[0], $replycode) + 1); + } + + if ($replycode!=200 && $replycode!=302) + { + if ($replycode==403) + SetCurrentStatus(LoaderGetMessage("LOADER_LOAD_SERVER_ANSWER1")); + else + SetCurrentStatus(str_replace("#ANS#", $replycode." - ".$replymsg, LoaderGetMessage("LOADER_LOAD_SERVER_ANSWER")).'
'.htmlspecialchars($strRequestedUrl)); + return false; + } + + $strLocationUrl = ""; + $iNewRealSize = 0; + $strAcceptRanges = ""; + for ($i = 1; $i < count($ar_replyheader); $i++) + { + if (strpos($ar_replyheader[$i], "Location") !== false) + $strLocationUrl = trim(substr($ar_replyheader[$i], strpos($ar_replyheader[$i], ":") + 1, strlen($ar_replyheader[$i]) - strpos($ar_replyheader[$i], ":") + 1)); + elseif (strpos($ar_replyheader[$i], "Content-Length") !== false) + $iNewRealSize = IntVal(Trim(substr($ar_replyheader[$i], strpos($ar_replyheader[$i], ":") + 1, strlen($ar_replyheader[$i]) - strpos($ar_replyheader[$i], ":") + 1))); + elseif (strpos($ar_replyheader[$i], "Accept-Ranges") !== false) + $strAcceptRanges = Trim(substr($ar_replyheader[$i], strpos($ar_replyheader[$i], ":") + 1, strlen($ar_replyheader[$i]) - strpos($ar_replyheader[$i], ":") + 1)); + } + + if (strlen($strLocationUrl)>0) + { + $redirection = $strLocationUrl; + $redirected = true; + if ((strpos($redirection, "http://")===false)) + $strRealUrl = dirname($lasturl)."/".$redirection; + else + $strRealUrl = $redirection; + } + + if (strlen($strLocationUrl)<=0) + break; + } + } + while (true); + // КОНЕЦ: ИЩЕМ ФАЙЛ И ЗАПРАШИВАЕМ ИНФО + + $bCanContinueDownload = ($strAcceptRanges == "bytes"); + +/* + // ЕСЛИ НЕЛЬЗЯ ДОКАЧИВАТЬ + if (!$bCanContinueDownload + || ($iRealSize>0 && $iNewRealSize != $iRealSize)) + { + // SetCurrentStatus(LoaderGetMessage("LOADER_LOAD_NEED_RELOAD")); + // $iStartSize = 0; + die(LoaderGetMessage("LOADER_LOAD_NEED_RELOAD")); + } + // КОНЕЦ: ЕСЛИ НЕЛЬЗЯ ДОКАЧИВАТЬ +*/ + + // ЕСЛИ МОЖНО ДОКАЧИВАТЬ + if ($bCanContinueDownload) + { + $fh = fopen($strFilename.".log", "wb"); + if (!$fh) + { + SetCurrentStatus(str_replace("#FILE#", $strFilename.".log", LoaderGetMessage("LOADER_LOAD_NO_WRITE2FILE"))); + return false; + } + fwrite($fh, $strRealUrl."\n"); + fwrite($fh, $iNewRealSize."\n"); + fclose($fh); + } + // КОНЕЦ: ЕСЛИ МОЖНО ДОКАЧИВАТЬ + +// SetCurrentStatus(str_replace("#DISTR#", $strRealUrl, LoaderGetMessage("LOADER_LOAD_LOAD_DISTR"))); + $strRequestedSize = $iNewRealSize; + + // КАЧАЕМ ФАЙЛ + $parsedurl = parse_url($strRealUrl); + $useproxy = (($proxyAddr != "") && ($proxyPort != "")); + + if (!$useproxy) + { + $host = $parsedurl["host"]; + $port = $parsedurl["port"]; + $hostname = $host; + } + else + { + $host = $proxyAddr; + $port = $proxyPort; + $hostname = $parsedurl["host"]; + } + + $port = $port ? $port : "80"; + + SetCurrentStatus(str_replace("#HOST#", $host, LoaderGetMessage("LOADER_LOAD_CONN2HOST"))); + $sockethandle = fsockopen($host, $port, $error_id, $error_msg, 30); + if (!$sockethandle) + { + SetCurrentStatus(str_replace("#HOST#", $host, LoaderGetMessage("LOADER_LOAD_NO_CONN2HOST"))." [".$error_id."] ".$error_msg); + return false; + } + else + { + if (!$parsedurl["path"]) + $parsedurl["path"] = "/"; + + SetCurrentStatus(LoaderGetMessage("LOADER_LOAD_QUERY_FILE")); + + $request = ""; + if (!$useproxy) + { + $request .= "GET ".$parsedurl["path"].($parsedurl["query"] ? '?'.$parsedurl["query"] : '')." HTTP/1.0\r\n"; + $request .= "Host: $hostname\r\n"; + } + else + { + $request .= "GET ".$strRealUrl." HTTP/1.0\r\n"; + $request .= "Host: $hostname\r\n"; + if ($proxyUserName) + $request .= "Proxy-Authorization: Basic ".base64_encode($proxyUserName.":".$proxyPassword)."\r\n"; + } + + if ($strUserAgent != "") + $request .= "User-Agent: $strUserAgent\r\n"; + + if ($bCanContinueDownload && $iStartSize>0) + $request .= "Range: bytes=".$iStartSize."-\r\n"; + + $request .= "\r\n"; + + fwrite($sockethandle, $request); + + $result = ""; + SetCurrentStatus(LoaderGetMessage("LOADER_LOAD_WAIT")); + + $replyheader = ""; + while (($result = fgets($sockethandle, 4096)) && $result!="\r\n") + $replyheader .= $result; + + $ar_replyheader = explode("\r\n", $replyheader); + + $replyproto = ""; + $replyversion = ""; + $replycode = 0; + $replymsg = ""; + if (preg_match("#([A-Z]{4})/([0-9.]{3}) ([0-9]{3})#", $ar_replyheader[0], $regs)) + { + $replyproto = $regs[1]; + $replyversion = $regs[2]; + $replycode = IntVal($regs[3]); + $replymsg = substr($ar_replyheader[0], strpos($ar_replyheader[0], $replycode) + strlen($replycode) + 1, strlen($ar_replyheader[0]) - strpos($ar_replyheader[0], $replycode) + 1); + } + + if ($replycode!=200 && $replycode!=302 && $replycode!=206) + { + SetCurrentStatus(str_replace("#ANS#", $replycode." - ".$replymsg, LoaderGetMessage("LOADER_LOAD_SERVER_ANSWER"))); + return false; + } + + $strContentRange = ""; + $iContentLength = 0; + $strAcceptRanges = ""; + for ($i = 1; $i < count($ar_replyheader); $i++) + { + if (strpos($ar_replyheader[$i], "Content-Range") !== false) + $strContentRange = trim(substr($ar_replyheader[$i], strpos($ar_replyheader[$i], ":") + 1, strlen($ar_replyheader[$i]) - strpos($ar_replyheader[$i], ":") + 1)); + elseif (strpos($ar_replyheader[$i], "Content-Length") !== false) + $iContentLength = doubleval(Trim(substr($ar_replyheader[$i], strpos($ar_replyheader[$i], ":") + 1, strlen($ar_replyheader[$i]) - strpos($ar_replyheader[$i], ":") + 1))); + elseif (strpos($ar_replyheader[$i], "Accept-Ranges") !== false) + $strAcceptRanges = Trim(substr($ar_replyheader[$i], strpos($ar_replyheader[$i], ":") + 1, strlen($ar_replyheader[$i]) - strpos($ar_replyheader[$i], ":") + 1)); + } + + $bReloadFile = True; + if (strlen($strContentRange)>0) + { + if (preg_match("# *bytes +([0-9]*) *- *([0-9]*) */ *([0-9]*)#i", $strContentRange, $regs)) + { + $iStartBytes_tmp = doubleval($regs[1]); + $iEndBytes_tmp = doubleval($regs[2]); + $iSizeBytes_tmp = doubleval($regs[3]); + + if ($iStartBytes_tmp==$iStartSize + && $iEndBytes_tmp==($iNewRealSize-1) + && $iSizeBytes_tmp==$iNewRealSize) + { + $bReloadFile = False; + } + } + } + + if ($bReloadFile) + { + @unlink($strFilename.".tmp"); + $iStartSize = 0; + } + + if (($iContentLength+$iStartSize)!=$iNewRealSize) + { + SetCurrentStatus(LoaderGetMessage("LOADER_LOAD_ERR_SIZE")); + return false; + } + + $fh = fopen($strFilename.".tmp", "ab"); + if (!$fh) + { + SetCurrentStatus(str_replace("#FILE#", $strFilename.".tmp", LoaderGetMessage("LOADER_LOAD_CANT_OPEN_WRITE"))); + return false; + } + + $bFinished = True; + $downloadsize = (double) $iStartSize; + SetCurrentStatus(LoaderGetMessage("LOADER_LOAD_LOADING")); + while (!feof($sockethandle)) + { + if ($iTimeOut>0 && (getmicrotime()-$start_time)>$iTimeOut) + { + $bFinished = False; + break; + } + + $result = fread($sockethandle, 256 * 1024); + $downloadsize += strlen($result); + if ($result=="") + break; + + fwrite($fh, $result); + } + SetCurrentProgress($downloadsize,$iNewRealSize); + + fclose($fh); + fclose($sockethandle); + + if ($bFinished) + { + @unlink($strFilename); + if (!@rename($strFilename.".tmp", $strFilename)) + { + SetCurrentStatus(str_replace("#FILE2#", $strFilename, str_replace("#FILE1#", $strFilename.".tmp", LoaderGetMessage("LOADER_LOAD_ERR_RENAME")))); + return false; + } + @unlink($strFilename.".tmp"); + } + else + return 2; + + SetCurrentStatus(str_replace("#SIZE#", $downloadsize, str_replace("#FILE#", $strFilename, LoaderGetMessage("LOADER_LOAD_FILE_SAVED")))); + @unlink($strFilename.".log"); + return 1; + } + // КОНЕЦ: КАЧАЕМ ФАЙЛ +} +function html($ar) +{ +?> + + + <?=$ar['TITLE']?> + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ $l" : "$l"; + echo implode(' | ',$arLang); + ?> +
+ +
 
 
  
  
+ ' width=95 height=34> +
+
+ + + 99) + $val = 99; + + $status = ' +
'.$val.'%
+ + + + + +
'; +} + +function getmicrotime() +{ + list($usec, $sec) = explode(" ", microtime()); + return ((float)$usec + (float)$sec); +} + +class CArchiver +{ + var $_strArchiveName = ""; + var $_bCompress = false; + var $_strSeparator = " "; + var $_dFile = 0; + + var $_arErrors = array(); + var $iArchSize = 0; + var $iCurPos = 0; + var $bFinish = false; + + function CArchiver($strArchiveName, $bCompress = false) + { + $this->_bCompress = false; + if (!$bCompress) + { + if (file_exists($strArchiveName)) + { + if ($fp = fopen($strArchiveName, "rb")) + { + $data = fread($fp, 2); + fclose($fp); + if ($data == "\37\213") + { + $this->_bCompress = True; + } + } + } + else + { + if (substr($strArchiveName, -2) == 'gz') + { + $this->_bCompress = True; + } + } + } + else + { + $this->_bCompress = True; + } + + $this->_strArchiveName = $strArchiveName; + $this->_arErrors = array(); + } + + function extractFiles($strPath, $vFileList = false) + { + $this->_arErrors = array(); + + $v_result = true; + $v_list_detail = array(); + + $strExtrType = "complete"; + $arFileList = 0; + if ($vFileList!==false) + { + $arFileList = &$this->_parseFileParams($vFileList); + $strExtrType = "partial"; + } + + if ($v_result = $this->_openRead()) + { + $v_result = $this->_extractList($strPath, $v_list_detail, $strExtrType, $arFileList, ''); + $this->_close(); + } + + return $v_result; + } + + function &GetErrors() + { + return $this->_arErrors; + } + + function _extractList($p_path, &$p_list_detail, $p_mode, $p_file_list, $p_remove_path) + { + global $iNumDistrFiles; + + $v_result = true; + $v_nb = 0; + $v_extract_all = true; + $v_listing = false; + + $p_path = str_replace("\\", "/", $p_path); + + if ($p_path == '' + || (substr($p_path, 0, 1) != '/' + && substr($p_path, 0, 3) != "../" + && !strpos($p_path, ':'))) + { + $p_path = "./".$p_path; + } + + $p_remove_path = str_replace("\\", "/", $p_remove_path); + if (($p_remove_path != '') && (substr($p_remove_path, -1) != '/')) + $p_remove_path .= '/'; + + $p_remove_path_size = strlen($p_remove_path); + + switch ($p_mode) + { + case "complete" : + $v_extract_all = TRUE; + $v_listing = FALSE; + break; + case "partial" : + $v_extract_all = FALSE; + $v_listing = FALSE; + break; + case "list" : + $v_extract_all = FALSE; + $v_listing = TRUE; + break; + default : + $this->_arErrors[] = array("ERR_PARAM", "Invalid extract mode (".$p_mode.")"); + return false; + } + + clearstatcache(); + + $tm=time(); + while((extension_loaded("mbstring")? mb_strlen($v_binary_data = $this->_readBlock(), "latin1") : strlen($v_binary_data = $this->_readBlock())) != 0) + { + $v_extract_file = FALSE; + $v_extraction_stopped = 0; + + if (!$this->_readHeader($v_binary_data, $v_header)) + return false; + + if ($v_header['filename'] == '') + continue; + + // ----- Look for long filename + if ($v_header['typeflag'] == 'L') + { + if (!$this->_readLongHeader($v_header)) + return false; + } + + + if ((!$v_extract_all) && (is_array($p_file_list))) + { + // ----- By default no unzip if the file is not found + $v_extract_file = false; + + for ($i = 0; $i < count($p_file_list); $i++) + { + // ----- Look if it is a directory + if (substr($p_file_list[$i], -1) == '/') + { + // ----- Look if the directory is in the filename path + if ((strlen($v_header['filename']) > strlen($p_file_list[$i])) + && (substr($v_header['filename'], 0, strlen($p_file_list[$i])) == $p_file_list[$i])) + { + $v_extract_file = TRUE; + break; + } + } + elseif ($p_file_list[$i] == $v_header['filename']) + { + // ----- It is a file, so compare the file names + $v_extract_file = TRUE; + break; + } + } + } + else + { + $v_extract_file = TRUE; + } + + // ----- Look if this file need to be extracted + if (($v_extract_file) && (!$v_listing)) + { + if (($p_remove_path != '') + && (substr($v_header['filename'], 0, $p_remove_path_size) == $p_remove_path)) + { + $v_header['filename'] = substr($v_header['filename'], $p_remove_path_size); + } + if (($p_path != './') && ($p_path != '/')) + { + while (substr($p_path, -1) == '/') + $p_path = substr($p_path, 0, strlen($p_path)-1); + + if (substr($v_header['filename'], 0, 1) == '/') + $v_header['filename'] = $p_path.$v_header['filename']; + else + $v_header['filename'] = $p_path.'/'.$v_header['filename']; + } + if (file_exists($v_header['filename'])) + { + if ((@is_dir($v_header['filename'])) && ($v_header['typeflag'] == '')) + { + $this->_arErrors[] = array("DIR_EXISTS", "File '".$v_header['filename']."' already exists as a directory"); + return false; + } + if ((is_file($v_header['filename'])) && ($v_header['typeflag'] == "5")) + { + $this->_arErrors[] = array("FILE_EXISTS", "Directory '".$v_header['filename']."' already exists as a file"); + return false; + } + if (!is_writeable($v_header['filename'])) + { + $this->_arErrors[] = array("FILE_PERMS", "File '".$v_header['filename']."' already exists and is write protected"); + return false; + } + } + elseif (($v_result = $this->_dirCheck(($v_header['typeflag'] == "5" ? $v_header['filename'] : dirname($v_header['filename'])))) != 1) + { + $this->_arErrors[] = array("NO_DIR", "Unable to create path for '".$v_header['filename']."'"); + return false; + } + + if ($v_extract_file) + { + if ($v_header['typeflag'] == "5") + { + if (!@file_exists($v_header['filename'])) + { + if (!@mkdir($v_header['filename'], BX_DIR_PERMISSIONS)) + { + $this->_arErrors[] = array("ERR_CREATE_DIR", "Unable to create directory '".$v_header['filename']."'"); + return false; + } + } + } + else + { + if (($v_dest_file = fopen($v_header['filename'], "wb")) == 0) + { + $this->_arErrors[] = array("ERR_CREATE_FILE", LoaderGetMessage('NO_PERMS') .' '. $v_header['filename']); + return false; + } + else + { + $n = floor($v_header['size']/512); + for ($i = 0; $i < $n; $i++) + { + $v_content = $this->_readBlock(); + fwrite($v_dest_file, $v_content, 512); + } + if (($v_header['size'] % 512) != 0) + { + $v_content = $this->_readBlock(); + fwrite($v_dest_file, $v_content, ($v_header['size'] % 512)); + } + + @fclose($v_dest_file); + + @chmod($v_header['filename'], BX_FILE_PERMISSIONS); + @touch($v_header['filename'], $v_header['mtime']); + } + + clearstatcache(); + if (filesize($v_header['filename']) != $v_header['size']) + { + $this->_arErrors[] = array("ERR_SIZE_CHECK", "Extracted file '".$v_header['filename']."' have incorrect file size '".filesize($v_filename)."' (".$v_header['size']." expected). Archive may be corrupted"); + return false; + } + } + } + else + { + $this->_jumpBlock(ceil(($v_header['size']/512))); + } + } + else + { + $this->_jumpBlock(ceil(($v_header['size']/512))); + } + + if ($v_listing || $v_extract_file || $v_extraction_stopped) + { + if (($v_file_dir = dirname($v_header['filename'])) == $v_header['filename']) + $v_file_dir = ''; + if ((substr($v_header['filename'], 0, 1) == '/') && ($v_file_dir == '')) + $v_file_dir = '/'; + + $p_list_detail[$v_nb++] = $v_header; + + if ($v_nb % 100 == 0) + SetCurrentProgress($this->iCurPos, $this->iArchSize, False); + } + + if ($_REQUEST['by_step'] && (time()-$tm) > TIMEOUT) + { + SetCurrentProgress($this->iCurPos, $this->iArchSize, False); + return true; + } + } + $this->bFinish = true; + return true; + } + + function _readBlock() + { + $v_block = ""; + if (is_resource($this->_dFile)) + { + if (isset($_REQUEST['seek'])) + { + if ($this->_bCompress) + gzseek($this->_dFile, intval($_REQUEST['seek'])); + else + fseek($this->_dFile, intval($_REQUEST['seek'])); + + $this->iCurPos = IntVal($_REQUEST['seek']); + + unset($_REQUEST['seek']); + } + if ($this->_bCompress) + $v_block = gzread($this->_dFile, 512); + else + $v_block = fread($this->_dFile, 512); + + $this->iCurPos += (extension_loaded("mbstring")? mb_strlen($v_block, "latin1") : strlen($v_block)); + } + return $v_block; + } + + function _readHeader($v_binary_data, &$v_header) + { + if ((extension_loaded("mbstring")? mb_strlen($v_binary_data, "latin1") : strlen($v_binary_data)) ==0) + { + $v_header['filename'] = ''; + return true; + } + + if ((extension_loaded("mbstring")? mb_strlen($v_binary_data, "latin1") : strlen($v_binary_data)) != 512) + { + $v_header['filename'] = ''; + $this->_arErrors[] = array("INV_BLOCK_SIZE", "Invalid block size : ".strlen($v_binary_data).""); + return false; + } + + $chars = count_chars(substr($v_binary_data,0,148).' '.substr($v_binary_data,156,356)); + $v_checksum = 0; + foreach($chars as $ch => $cnt) + $v_checksum += $ch*$cnt; + + $v_data = unpack("a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor/a155prefix/a12temp", $v_binary_data); + + $v_header['checksum'] = OctDec(trim($v_data['checksum'])); + if ($v_header['checksum'] != $v_checksum) + { + $v_header['filename'] = ''; + + if (($v_checksum == 256) && ($v_header['checksum'] == 0)) + return true; + + $this->_arErrors[] = array("INV_BLOCK_CHECK", "Invalid checksum for file '".$v_data['filename']."' : ".$v_checksum." calculated, ".$v_header['checksum']." expected"); + return false; + } + + // ----- Extract the properties + $v_header['filename'] = trim($v_data['prefix'], "\x00")."/".trim($v_data['filename'], "\x00"); + $v_header['mode'] = OctDec(trim($v_data['mode'])); + $v_header['uid'] = OctDec(trim($v_data['uid'])); + $v_header['gid'] = OctDec(trim($v_data['gid'])); + $v_header['size'] = OctDec(trim($v_data['size'])); + $v_header['mtime'] = OctDec(trim($v_data['mtime'])); + if (($v_header['typeflag'] = $v_data['typeflag']) == "5") + $v_header['size'] = 0; + + return true; + } + + function _readLongHeader(&$v_header) + { + $v_filename = ''; + $n = floor($v_header['size']/512); + for ($i = 0; $i < $n; $i++) + { + $v_content = $this->_readBlock(); + $v_filename .= $v_content; + } + if (($v_header['size'] % 512) != 0) + { + $v_content = $this->_readBlock(); + $v_filename .= $v_content; + } + + $v_binary_data = $this->_readBlock(); + + if (!$this->_readHeader($v_binary_data, $v_header)) + return false; + + $v_header['filename'] = trim($v_filename, "\x00"); + + return true; + } + + function _jumpBlock($p_len = false) + { + if (is_resource($this->_dFile)) + { + if ($p_len === false) + $p_len = 1; + + if ($this->_bCompress) + gzseek($this->_dFile, gztell($this->_dFile)+($p_len*512)); + else + fseek($this->_dFile, ftell($this->_dFile)+($p_len*512)); + } + return true; + } + + function &_parseFileParams(&$vFileList) + { + if (isset($vFileList) && is_array($vFileList)) + return $vFileList; + elseif (isset($vFileList) && strlen($vFileList)>0) + return explode($this->_strSeparator, $vFileList); + else + return array(); + } + + function _openRead() + { + + if ($this->_bCompress) + { + $this->_dFile = gzopen($this->_strArchiveName, "rb"); + $this->iArchSize = filesize($this->_strArchiveName) * 3; + } + else + { + $this->_dFile = fopen($this->_strArchiveName, "rb"); + $this->iArchSize = filesize($this->_strArchiveName); + } + + if (!$this->_dFile) + { + $this->_arErrors[] = array("ERR_OPEN", "Unable to open '".$this->_strArchiveName."' in read mode"); + return false; + } + + return true; + } + + function _close() + { + if (is_resource($this->_dFile)) + { + if ($this->_bCompress) + gzclose($this->_dFile); + else + fclose($this->_dFile); + + $this->_dFile = 0; + } + + return true; + } + + function _dirCheck($p_dir) + { + if ((is_dir($p_dir)) || ($p_dir == '')) + return true; + + $p_parent_dir = dirname($p_dir); + + if (($p_parent_dir != $p_dir) && + ($p_parent_dir != '') && + (!$this->_dirCheck($p_parent_dir))) + return false; + + if (!is_dir($p_dir) && !mkdir($p_dir, BX_DIR_PERMISSIONS)) + { + $this->_arErrors[] = array("CANT_CREATE_PATH", "Unable to create directory '".$p_dir."'"); + return false; + } + + return true; + } + +} + +function img($name) +{ + if (file_exists($_SERVER['DOCUMENT_ROOT'].'/images/'.$name)) + return '/images/'.$name; + return 'http://www.1c-bitrix.ru/images/bitrix_setup/'.$name; +} + +function ShowError($str) +{ + return '
'.$str.'
'; +} + +function bx_accelerator_reset() +{ + if(function_exists("accelerator_reset")) + accelerator_reset(); + elseif(function_exists("wincache_refresh_if_changed")) + wincache_refresh_if_changed(); +} + +function EscapePHPString($str) +{ + $str = str_replace("\\", "\\\\", $str); + $str = str_replace("\$", "\\\$", $str); + $str = str_replace("\"", "\\"."\"", $str); + return $str; +} +?> diff --git a/temp/index.html b/temp/index.html new file mode 100755 index 0000000..db2c2e1 --- /dev/null +++ b/temp/index.html @@ -0,0 +1,21 @@ + + + + + + + + +
+
+ + + + + + +
Welcome !
Site rekamore.nologostudio.ru just created.

Real content coming soon.
+ © ISPmanager control panel +
+ + diff --git a/tests/CreatesApplication.php b/tests/CreatesApplication.php new file mode 100644 index 0000000..547152f --- /dev/null +++ b/tests/CreatesApplication.php @@ -0,0 +1,22 @@ +make(Kernel::class)->bootstrap(); + + return $app; + } +} diff --git a/tests/Feature/ExampleTest.php b/tests/Feature/ExampleTest.php new file mode 100644 index 0000000..1eafba6 --- /dev/null +++ b/tests/Feature/ExampleTest.php @@ -0,0 +1,21 @@ +get('/'); + + $response->assertStatus(200); + } +} diff --git a/tests/TestCase.php b/tests/TestCase.php new file mode 100644 index 0000000..2932d4a --- /dev/null +++ b/tests/TestCase.php @@ -0,0 +1,10 @@ +assertTrue(true); + } +} diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..421b569 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,11 @@ +import { defineConfig } from 'vite'; +import laravel from 'laravel-vite-plugin'; + +export default defineConfig({ + plugins: [ + laravel({ + input: ['resources/css/app.css', 'resources/js/app.js'], + refresh: true, + }), + ], +}); diff --git a/webstat./index.html b/webstat./index.html new file mode 100755 index 0000000..1441800 --- /dev/null +++ b/webstat./index.html @@ -0,0 +1,21 @@ + + + + + + + + +
+
+ + + + + + +
Welcome !
No analysed statistic for __SITE__ .

See later.
+ © ISPmanager control panel +
+ +