update to laravel 5.7 and try getting autologin saved

This commit is contained in:
Kode 2018-10-14 20:50:32 +01:00
parent c3da17befc
commit 6501aacb1b
2402 changed files with 79064 additions and 28971 deletions

View file

@ -5,6 +5,7 @@ namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Item;
use App\Setting;
use App\User;
use App\SupportedApps\Nzbget;
use Illuminate\Support\Facades\Storage;
@ -144,10 +145,13 @@ class ItemController extends Controller
}
$config = Item::checkConfig($request->input('config'));
$current_user = User::currentUser();
$request->merge([
'description' => $config
'description' => $config,
'user_id' => $current_user->id
]);
//die(print_r($request->input('config')));
$item = Item::create($request->all());
@ -209,8 +213,10 @@ class ItemController extends Controller
}
$config = Item::checkConfig($request->input('config'));
$current_user = User::currentUser();
$request->merge([
'description' => $config
'description' => $config,
'user_id' => $current_user->id
]);
$item = Item::find($id);

View file

@ -5,6 +5,7 @@ namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\User;
use Illuminate\Support\Str;
class UserController extends Controller
{
@ -38,7 +39,32 @@ class UserController extends Controller
*/
public function store(Request $request)
{
//
$validatedData = $request->validate([
'name' => 'required|max:255',
'email' => 'required|email',
'password' => 'nullable',
'password_confirmation' => 'nullable|confirmed'
]);
//die(print_r($request->all()));
if($request->hasFile('file')) {
$path = $request->file('file')->store('avatars');
$request->merge([
'avatar' => $path
]);
}
if ((bool)$request->input('autologin_allow') === true) {
$request->merge([
'autologin' => (string)Str::uuid()
]);
}
$user = User::create($request->all());
$route = route('dash', [], false);
return redirect($route)
->with('success',__('app.alert.success.user_updated'));
}
/**
@ -58,9 +84,11 @@ class UserController extends Controller
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
public function edit(User $user)
{
//
$data['user'] = $user;
return view('users.edit', $data);
}
/**
@ -70,9 +98,38 @@ class UserController extends Controller
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
public function update(Request $request, User $user)
{
//
$validatedData = $request->validate([
'name' => 'required|max:255',
'email' => 'required|email',
'password' => 'nullable',
'password_confirmation' => 'nullable|confirmed'
]);
//die(print_r($request->all()));
if($request->hasFile('file')) {
$path = $request->file('file')->store('avatars');
$request->merge([
'avatar' => $path
]);
}
if ((bool)$request->input('autologin_allow') === true) {
$autologin = (is_null($user->autologin)) ? (string)Str::uuid() : $user->autologin;
} else {
$autologin = null;
}
$request->merge([
'autologin' => $autologin
]);
$input = $request->except(['password_confirmation', 'autologin_allow']);
//die(print_r($input));
$user->update($input);
$route = route('dash', [], false);
return redirect($route)
->with('success',__('app.alert.success.user_updated'));
}
/**

View file

@ -19,11 +19,5 @@ class TrustProxies extends Middleware
*
* @var array
*/
protected $headers = [
Request::HEADER_FORWARDED => 'FORWARDED',
Request::HEADER_X_FORWARDED_FOR => 'X_FORWARDED_FOR',
Request::HEADER_X_FORWARDED_HOST => 'X_FORWARDED_HOST',
Request::HEADER_X_FORWARDED_PORT => 'X_FORWARDED_PORT',
Request::HEADER_X_FORWARDED_PROTO => 'X_FORWARDED_PROTO',
];
protected $headers = Request::HEADER_X_FORWARDED_ALL;
}

View file

@ -6,9 +6,9 @@
"type": "project",
"require": {
"php": ">=7.0.0",
"fideloper/proxy": "~3.3",
"fideloper/proxy": "^4.0",
"guzzlehttp/guzzle": "^6.3",
"laravel/framework": "5.5.*",
"laravel/framework": "5.7.*",
"laravel/tinker": "~1.0",
"laravelcollective/html": "^5.5"
},

877
composer.lock generated

File diff suppressed because it is too large Load diff

View file

@ -19,6 +19,7 @@ class CreateUsersTable extends Migration
$table->string('email')->unique();
$table->string('avatar')->nullable();
$table->string('password')->nullable();
$table->string('autologin')->nullable();
$table->boolean('public_front')->default(false);
$table->rememberToken();
$table->timestamps();

View file

@ -79,6 +79,7 @@ return [
'user.email' => 'Email',
'user.password_confirm' => 'Confirm Password',
'user.secure_front' => 'Allow public access to front - Only enforced if a password is set.',
'user.autologin' => 'Allow logging in from a specific URL. Anyone with the link can login.',
'url' => 'URL',
'title' => 'Title',
@ -99,5 +100,10 @@ return [
'alert.success.setting_updated' => 'You have successfully edited this setting',
'alert.error.not_exist' => 'This setting does not exist.',
'alert.success.user_created' => 'User created successfully',
'alert.success.user_updated' => 'User updated successfully',
'alert.success.user_deleted' => 'User deleted successfully',
'alert.success.user_restored' => 'User restored successfully',
];

View file

@ -2,7 +2,7 @@
@section('content')
{!! Form::open(array('route' => 'users.store', 'id' => 'itemform', 'files' => true, 'method'=>'POST')) !!}
{!! Form::open(array('route' => 'users.store', 'id' => 'userform', 'files' => true, 'method'=>'POST')) !!}
@include('users.form')
{!! Form::close() !!}

View file

@ -2,7 +2,7 @@
@section('content')
{!! Form::model($item, ['method' => 'PATCH', 'id' => 'itemform', 'files' => true, 'route' => ['users.update', $item->id]]) !!}
{!! Form::model($user, ['method' => 'PATCH', 'id' => 'userform', 'files' => true, 'route' => ['users.update', $user->id]]) !!}
@include('users.form')
{!! Form::close() !!}

View file

@ -3,7 +3,7 @@
<div class="section-title">{{ __('app.user.add_user') }}</div>
<div class="module-actions">
<button type="submit"class="button"><i class="fa fa-save"></i><span>{{ __('app.buttons.save') }}</span></button>
<a href="{{ route('items.index', [], false) }}" class="button"><i class="fa fa-ban"></i><span>{{ __('app.buttons.cancel') }}</span></a>
<a href="{{ route('users.index', [], false) }}" class="button"><i class="fa fa-ban"></i><span>{{ __('app.buttons.cancel') }}</span></a>
</div>
</header>
<div id="create" class="create">
@ -13,26 +13,19 @@
<label>{{ __('app.user.name') }} *</label>
{!! Form::text('name', null, array('placeholder' => __('app.user.name'), 'id' => 'appname', 'class' => 'form-control')) !!}
<hr />
<label>{{ __('app.user.name') }} *</label>
{!! Form::text('title', null, array('placeholder' => __('app.apps.title'), 'id' => 'appname', 'class' => 'form-control')) !!}
<hr />
</div>
<div class="input">
<label>{{ __('app.user.email') }} *</label>
{!! Form::text('email', null, array('placeholder' => 'email@test.com','class' => 'form-control')) !!}
<hr />
<label>{{ __('app.user.email') }} *</label>
{!! Form::text('colour', null, array('placeholder' => __('app.apps.hex'),'class' => 'form-control color-picker')) !!}
<hr />
</div>
<div class="input">
<label>{{ __('app.user.avatar') }}</label>
<div class="icon-container">
<div id="appimage">
@if(isset($item->avatar) && !empty($item->avatar) || old('avatar'))
@if(isset($user->avatar) && !empty($user->avatar) || old('avatar'))
<?php
if(isset($item->avatar)) $avatar = $item->avatar;
if(isset($user->avatar)) $avatar = $user->avatar;
else $avatar = old('avatar');
?>
<img src="{{ asset('storage/'.$avatar) }}" />
@ -50,46 +43,52 @@
<div style="margin-top: -40px; width: 100%; padding: 0" class="create">
<div class="input">
<label>{{ __('app.user.name') }} *</label>
{!! Form::text('title', null, array('placeholder' => __('app.apps.title'), 'id' => 'appname', 'class' => 'form-control')) !!}
<label>{{ __('app.apps.password') }} *</label>
{!! Form::password('password', null, array('class' => 'form-control')) !!}
<hr />
<label>{{ __('app.user.secure_front') }}</label>
{!! Form::hidden('pinned', '0') !!}
<label class="switch">
<?php
$checked = false;
if(isset($item->pinned) && (bool)$item->pinned === true) $checked = true;
$set_checked = ($checked) ? ' checked="checked"' : '';
?>
<input type="checkbox" name="pinned" value="1"<?php echo $set_checked;?> />
<span class="slider round"></span>
</label>
</div>
<div class="input">
<label>{{ __('app.apps.colour') }} *</label>
{!! Form::text('colour', null, array('placeholder' => __('app.apps.hex'),'class' => 'form-control color-picker')) !!}
<label>{{ __('app.user.password_confirm') }} *</label>
{!! Form::password('password_confirmation', null, array('class' => 'form-control')) !!}
</div>
</div>
@if(isset($item) && isset($item->config->view))
<div id="sapconfig" style="display: block;">
@if(isset($item))
@include('supportedapps.'.$item->config->view)
@endif
<div class="input">
<label>{{ __('app.user.secure_front') }}</label>
{!! Form::hidden('public_front', '1') !!}
<label class="switch">
<?php
$checked = true;
if(isset($user->public_front) && (bool)$user->public_front === false) $checked = false;
$set_checked = ($checked) ? ' checked="checked"' : '';
?>
<input type="checkbox" name="public_front" value="1"<?php echo $set_checked;?> />
<span class="slider round"></span>
</label>
</div>
@else
<div id="sapconfig"></div>
@endif
<div class="input">
<label>{{ __('app.user.autologin') }}</label>
{!! Form::hidden('autologin_allow', '0') !!}
<label class="switch">
<?php
$checked = false;
if(isset($user->autologin) && !empty($user->autologin)) $checked = true;
$set_checked = ($checked) ? ' checked="checked"' : '';
?>
<input type="checkbox" name="autologin_allow" value="1"<?php echo $set_checked;?> />
<span class="slider round"></span>
</label>
</div>
</div>
<footer>
<div class="section-title">&nbsp;</div>
<div class="module-actions">
<button type="submit"class="button"><i class="fa fa-save"></i><span>{{ __('app.buttons.save') }}</span></button>
<a href="{{ route('items.index', [], false) }}" class="button"><i class="fa fa-ban"></i><span>{{ __('app.buttons.cancel') }}</span></a>
<a href="{{ route('users.index', [], false) }}" class="button"><i class="fa fa-ban"></i><span>{{ __('app.buttons.cancel') }}</span></a>
</div>
</footer>

1
vendor/bin/var-dump-server vendored Symbolic link
View file

@ -0,0 +1 @@
../symfony/var-dumper/Resources/bin/var-dump-server

View file

@ -379,9 +379,9 @@ class ClassLoader
$subPath = substr($subPath, 0, $lastPos);
$search = $subPath.'\\';
if (isset($this->prefixDirsPsr4[$search])) {
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
foreach ($this->prefixDirsPsr4[$search] as $dir) {
if (file_exists($file = $dir . $pathEnd)) {
$length = $this->prefixLengthsPsr4[$first][$search];
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
return $file;
}
}

View file

@ -1,56 +1,21 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: Composer
Upstream-Contact: Jordi Boggiano <j.boggiano@seld.be>
Source: https://github.com/composer/composer
Files: *
Copyright: 2016, Nils Adermann <naderman@naderman.de>
2016, Jordi Boggiano <j.boggiano@seld.be>
License: Expat
Copyright (c) Nils Adermann, Jordi Boggiano
Files: src/Composer/Util/TlsHelper.php
Copyright: 2016, Nils Adermann <naderman@naderman.de>
2016, Jordi Boggiano <j.boggiano@seld.be>
2013, Evan Coury <me@evancoury.com>
License: Expat and BSD-2-Clause
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:
License: BSD-2-Clause
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
.
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
License: Expat
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:
.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View file

@ -13,6 +13,7 @@ return array(
'App\\Http\\Controllers\\Auth\\RegisterController' => $baseDir . '/app/Http/Controllers/Auth/RegisterController.php',
'App\\Http\\Controllers\\Auth\\ResetPasswordController' => $baseDir . '/app/Http/Controllers/Auth/ResetPasswordController.php',
'App\\Http\\Controllers\\Controller' => $baseDir . '/app/Http/Controllers/Controller.php',
'App\\Http\\Controllers\\HomeController' => $baseDir . '/app/Http/Controllers/HomeController.php',
'App\\Http\\Controllers\\ItemController' => $baseDir . '/app/Http/Controllers/ItemController.php',
'App\\Http\\Controllers\\SettingsController' => $baseDir . '/app/Http/Controllers/SettingsController.php',
'App\\Http\\Controllers\\TagController' => $baseDir . '/app/Http/Controllers/TagController.php',
@ -94,12 +95,11 @@ return array(
'App\\SupportedApps\\pyLoad' => $baseDir . '/app/SupportedApps/pyLoad.php',
'App\\SupportedApps\\ruTorrent' => $baseDir . '/app/SupportedApps/ruTorrent.php',
'App\\User' => $baseDir . '/app/User.php',
'ArithmeticError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php',
'AssertionError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/AssertionError.php',
'Carbon\\Carbon' => $vendorDir . '/nesbot/carbon/src/Carbon/Carbon.php',
'Carbon\\CarbonInterval' => $vendorDir . '/nesbot/carbon/src/Carbon/CarbonInterval.php',
'Carbon\\CarbonPeriod' => $vendorDir . '/nesbot/carbon/src/Carbon/CarbonPeriod.php',
'Carbon\\Exceptions\\InvalidDateException' => $vendorDir . '/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php',
'Carbon\\Laravel\\ServiceProvider' => $vendorDir . '/nesbot/carbon/src/Carbon/Laravel/ServiceProvider.php',
'Carbon\\Translator' => $vendorDir . '/nesbot/carbon/src/Carbon/Translator.php',
'Collective\\Html\\Componentable' => $vendorDir . '/laravelcollective/html/src/Componentable.php',
'Collective\\Html\\Eloquent\\FormAccessible' => $vendorDir . '/laravelcollective/html/src/Eloquent/FormAccessible.php',
@ -108,16 +108,15 @@ return array(
'Collective\\Html\\HtmlBuilder' => $vendorDir . '/laravelcollective/html/src/HtmlBuilder.php',
'Collective\\Html\\HtmlFacade' => $vendorDir . '/laravelcollective/html/src/HtmlFacade.php',
'Collective\\Html\\HtmlServiceProvider' => $vendorDir . '/laravelcollective/html/src/HtmlServiceProvider.php',
'Cron\\AbstractField' => $vendorDir . '/mtdowling/cron-expression/src/Cron/AbstractField.php',
'Cron\\CronExpression' => $vendorDir . '/mtdowling/cron-expression/src/Cron/CronExpression.php',
'Cron\\DayOfMonthField' => $vendorDir . '/mtdowling/cron-expression/src/Cron/DayOfMonthField.php',
'Cron\\DayOfWeekField' => $vendorDir . '/mtdowling/cron-expression/src/Cron/DayOfWeekField.php',
'Cron\\FieldFactory' => $vendorDir . '/mtdowling/cron-expression/src/Cron/FieldFactory.php',
'Cron\\FieldInterface' => $vendorDir . '/mtdowling/cron-expression/src/Cron/FieldInterface.php',
'Cron\\HoursField' => $vendorDir . '/mtdowling/cron-expression/src/Cron/HoursField.php',
'Cron\\MinutesField' => $vendorDir . '/mtdowling/cron-expression/src/Cron/MinutesField.php',
'Cron\\MonthField' => $vendorDir . '/mtdowling/cron-expression/src/Cron/MonthField.php',
'Cron\\YearField' => $vendorDir . '/mtdowling/cron-expression/src/Cron/YearField.php',
'Cron\\AbstractField' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/AbstractField.php',
'Cron\\CronExpression' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/CronExpression.php',
'Cron\\DayOfMonthField' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/DayOfMonthField.php',
'Cron\\DayOfWeekField' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/DayOfWeekField.php',
'Cron\\FieldFactory' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/FieldFactory.php',
'Cron\\FieldInterface' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/FieldInterface.php',
'Cron\\HoursField' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/HoursField.php',
'Cron\\MinutesField' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/MinutesField.php',
'Cron\\MonthField' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/MonthField.php',
'DatabaseSeeder' => $baseDir . '/database/seeds/DatabaseSeeder.php',
'DeepCopy\\DeepCopy' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/DeepCopy.php',
'DeepCopy\\Exception\\CloneException' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php',
@ -142,7 +141,6 @@ return array(
'DeepCopy\\TypeFilter\\Spl\\SplDoublyLinkedListFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedListFilter.php',
'DeepCopy\\TypeFilter\\TypeFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php',
'DeepCopy\\TypeMatcher\\TypeMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeMatcher/TypeMatcher.php',
'DivisionByZeroError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/DivisionByZeroError.php',
'Doctrine\\Common\\Inflector\\Inflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php',
'Doctrine\\Common\\Lexer\\AbstractLexer' => $vendorDir . '/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php',
'Doctrine\\Instantiator\\Exception\\ExceptionInterface' => $vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php',
@ -221,10 +219,10 @@ return array(
'Egulias\\EmailValidator\\Warning\\QuotedString' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/QuotedString.php',
'Egulias\\EmailValidator\\Warning\\TLD' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/TLD.php',
'Egulias\\EmailValidator\\Warning\\Warning' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/Warning.php',
'Error' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/Error.php',
'Faker\\Calculator\\Iban' => $vendorDir . '/fzaninotto/faker/src/Faker/Calculator/Iban.php',
'Faker\\Calculator\\Inn' => $vendorDir . '/fzaninotto/faker/src/Faker/Calculator/Inn.php',
'Faker\\Calculator\\Luhn' => $vendorDir . '/fzaninotto/faker/src/Faker/Calculator/Luhn.php',
'Faker\\Calculator\\TCNo' => $vendorDir . '/fzaninotto/faker/src/Faker/Calculator/TCNo.php',
'Faker\\DefaultGenerator' => $vendorDir . '/fzaninotto/faker/src/Faker/DefaultGenerator.php',
'Faker\\Documentor' => $vendorDir . '/fzaninotto/faker/src/Faker/Documentor.php',
'Faker\\Factory' => $vendorDir . '/fzaninotto/faker/src/Faker/Factory.php',
@ -529,6 +527,12 @@ return array(
'Faker\\Provider\\me_ME\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/me_ME/PhoneNumber.php',
'Faker\\Provider\\mn_MN\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/mn_MN/Person.php',
'Faker\\Provider\\mn_MN\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/mn_MN/PhoneNumber.php',
'Faker\\Provider\\ms_MY\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Address.php',
'Faker\\Provider\\ms_MY\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Company.php',
'Faker\\Provider\\ms_MY\\Miscellaneous' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Miscellaneous.php',
'Faker\\Provider\\ms_MY\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Payment.php',
'Faker\\Provider\\ms_MY\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Person.php',
'Faker\\Provider\\ms_MY\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/PhoneNumber.php',
'Faker\\Provider\\nb_NO\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Address.php',
'Faker\\Provider\\nb_NO\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Company.php',
'Faker\\Provider\\nb_NO\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Payment.php',
@ -594,6 +598,7 @@ return array(
'Faker\\Provider\\sk_SK\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Person.php',
'Faker\\Provider\\sk_SK\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sk_SK/PhoneNumber.php',
'Faker\\Provider\\sl_SI\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Address.php',
'Faker\\Provider\\sl_SI\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Company.php',
'Faker\\Provider\\sl_SI\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Internet.php',
'Faker\\Provider\\sl_SI\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Payment.php',
'Faker\\Provider\\sl_SI\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Person.php',
@ -613,12 +618,14 @@ return array(
'Faker\\Provider\\sv_SE\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Person.php',
'Faker\\Provider\\sv_SE\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sv_SE/PhoneNumber.php',
'Faker\\Provider\\th_TH\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Address.php',
'Faker\\Provider\\th_TH\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Color.php',
'Faker\\Provider\\th_TH\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Company.php',
'Faker\\Provider\\th_TH\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Internet.php',
'Faker\\Provider\\th_TH\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Payment.php',
'Faker\\Provider\\th_TH\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/PhoneNumber.php',
'Faker\\Provider\\tr_TR\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Address.php',
'Faker\\Provider\\tr_TR\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Color.php',
'Faker\\Provider\\tr_TR\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Company.php',
'Faker\\Provider\\tr_TR\\DateTime' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/DateTime.php',
'Faker\\Provider\\tr_TR\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Internet.php',
'Faker\\Provider\\tr_TR\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Payment.php',
@ -628,10 +635,10 @@ return array(
'Faker\\Provider\\uk_UA\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Color.php',
'Faker\\Provider\\uk_UA\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Company.php',
'Faker\\Provider\\uk_UA\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Internet.php',
'Faker\\Provider\\uk_UA\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Payment.php',
'Faker\\Provider\\uk_UA\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Person.php',
'Faker\\Provider\\uk_UA\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php',
'Faker\\Provider\\uk_UA\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Text.php',
'Faker\\Provider\\uk_Ua\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Payment.php',
'Faker\\Provider\\vi_VN\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Address.php',
'Faker\\Provider\\vi_VN\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Color.php',
'Faker\\Provider\\vi_VN\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Internet.php',
@ -818,12 +825,17 @@ return array(
'Illuminate\\Auth\\Events\\Logout' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Logout.php',
'Illuminate\\Auth\\Events\\PasswordReset' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/PasswordReset.php',
'Illuminate\\Auth\\Events\\Registered' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Registered.php',
'Illuminate\\Auth\\Events\\Verified' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Verified.php',
'Illuminate\\Auth\\GenericUser' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/GenericUser.php',
'Illuminate\\Auth\\GuardHelpers' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/GuardHelpers.php',
'Illuminate\\Auth\\Listeners\\SendEmailVerificationNotification' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Listeners/SendEmailVerificationNotification.php',
'Illuminate\\Auth\\Middleware\\Authenticate' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php',
'Illuminate\\Auth\\Middleware\\AuthenticateWithBasicAuth' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Middleware/AuthenticateWithBasicAuth.php',
'Illuminate\\Auth\\Middleware\\Authorize' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Middleware/Authorize.php',
'Illuminate\\Auth\\Middleware\\EnsureEmailIsVerified' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Middleware/EnsureEmailIsVerified.php',
'Illuminate\\Auth\\MustVerifyEmail' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/MustVerifyEmail.php',
'Illuminate\\Auth\\Notifications\\ResetPassword' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php',
'Illuminate\\Auth\\Notifications\\VerifyEmail' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Notifications/VerifyEmail.php',
'Illuminate\\Auth\\Passwords\\CanResetPassword' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Passwords/CanResetPassword.php',
'Illuminate\\Auth\\Passwords\\DatabaseTokenRepository' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Passwords/DatabaseTokenRepository.php',
'Illuminate\\Auth\\Passwords\\PasswordBroker' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBroker.php',
@ -892,15 +904,17 @@ return array(
'Illuminate\\Console\\GeneratorCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Console/GeneratorCommand.php',
'Illuminate\\Console\\OutputStyle' => $vendorDir . '/laravel/framework/src/Illuminate/Console/OutputStyle.php',
'Illuminate\\Console\\Parser' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Parser.php',
'Illuminate\\Console\\Scheduling\\CacheMutex' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/CacheMutex.php',
'Illuminate\\Console\\Scheduling\\CacheEventMutex' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php',
'Illuminate\\Console\\Scheduling\\CacheSchedulingMutex' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/CacheSchedulingMutex.php',
'Illuminate\\Console\\Scheduling\\CallbackEvent' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php',
'Illuminate\\Console\\Scheduling\\CommandBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/CommandBuilder.php',
'Illuminate\\Console\\Scheduling\\Event' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/Event.php',
'Illuminate\\Console\\Scheduling\\EventMutex' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/EventMutex.php',
'Illuminate\\Console\\Scheduling\\ManagesFrequencies' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/ManagesFrequencies.php',
'Illuminate\\Console\\Scheduling\\Mutex' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/Mutex.php',
'Illuminate\\Console\\Scheduling\\Schedule' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/Schedule.php',
'Illuminate\\Console\\Scheduling\\ScheduleFinishCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php',
'Illuminate\\Console\\Scheduling\\ScheduleRunCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php',
'Illuminate\\Console\\Scheduling\\SchedulingMutex' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/SchedulingMutex.php',
'Illuminate\\Container\\BoundMethod' => $vendorDir . '/laravel/framework/src/Illuminate/Container/BoundMethod.php',
'Illuminate\\Container\\Container' => $vendorDir . '/laravel/framework/src/Illuminate/Container/Container.php',
'Illuminate\\Container\\ContextualBindingBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Container/ContextualBindingBuilder.php',
@ -911,6 +925,7 @@ return array(
'Illuminate\\Contracts\\Auth\\CanResetPassword' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/CanResetPassword.php',
'Illuminate\\Contracts\\Auth\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/Factory.php',
'Illuminate\\Contracts\\Auth\\Guard' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/Guard.php',
'Illuminate\\Contracts\\Auth\\MustVerifyEmail' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/MustVerifyEmail.php',
'Illuminate\\Contracts\\Auth\\PasswordBroker' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/PasswordBroker.php',
'Illuminate\\Contracts\\Auth\\PasswordBrokerFactory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/PasswordBrokerFactory.php',
'Illuminate\\Contracts\\Auth\\StatefulGuard' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/StatefulGuard.php',
@ -944,12 +959,12 @@ return array(
'Illuminate\\Contracts\\Events\\Dispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Events/Dispatcher.php',
'Illuminate\\Contracts\\Filesystem\\Cloud' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Cloud.php',
'Illuminate\\Contracts\\Filesystem\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Factory.php',
'Illuminate\\Contracts\\Filesystem\\FileExistsException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Filesystem/FileExistsException.php',
'Illuminate\\Contracts\\Filesystem\\FileNotFoundException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Filesystem/FileNotFoundException.php',
'Illuminate\\Contracts\\Filesystem\\Filesystem' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Filesystem.php',
'Illuminate\\Contracts\\Foundation\\Application' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Foundation/Application.php',
'Illuminate\\Contracts\\Hashing\\Hasher' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Hashing/Hasher.php',
'Illuminate\\Contracts\\Http\\Kernel' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Http/Kernel.php',
'Illuminate\\Contracts\\Logging\\Log' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Logging/Log.php',
'Illuminate\\Contracts\\Mail\\MailQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Mail/MailQueue.php',
'Illuminate\\Contracts\\Mail\\Mailable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Mail/Mailable.php',
'Illuminate\\Contracts\\Mail\\Mailer' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Mail/Mailer.php',
@ -968,6 +983,7 @@ return array(
'Illuminate\\Contracts\\Queue\\QueueableCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/QueueableCollection.php',
'Illuminate\\Contracts\\Queue\\QueueableEntity' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/QueueableEntity.php',
'Illuminate\\Contracts\\Queue\\ShouldQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/ShouldQueue.php',
'Illuminate\\Contracts\\Redis\\Connection' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Redis/Connection.php',
'Illuminate\\Contracts\\Redis\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Redis/Factory.php',
'Illuminate\\Contracts\\Redis\\LimiterTimeoutException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Redis/LimiterTimeoutException.php',
'Illuminate\\Contracts\\Routing\\BindingRegistrar' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Routing/BindingRegistrar.php',
@ -983,6 +999,7 @@ return array(
'Illuminate\\Contracts\\Support\\MessageProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/MessageProvider.php',
'Illuminate\\Contracts\\Support\\Renderable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/Renderable.php',
'Illuminate\\Contracts\\Support\\Responsable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/Responsable.php',
'Illuminate\\Contracts\\Translation\\HasLocalePreference' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Translation/HasLocalePreference.php',
'Illuminate\\Contracts\\Translation\\Loader' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Translation/Loader.php',
'Illuminate\\Contracts\\Translation\\Translator' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Translation/Translator.php',
'Illuminate\\Contracts\\Validation\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Validation/Factory.php',
@ -1021,6 +1038,7 @@ return array(
'Illuminate\\Database\\Console\\Migrations\\ResetCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/ResetCommand.php',
'Illuminate\\Database\\Console\\Migrations\\RollbackCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/RollbackCommand.php',
'Illuminate\\Database\\Console\\Migrations\\StatusCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/StatusCommand.php',
'Illuminate\\Database\\Console\\Migrations\\TableGuesser' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/TableGuesser.php',
'Illuminate\\Database\\Console\\Seeds\\SeedCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php',
'Illuminate\\Database\\Console\\Seeds\\SeederMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Seeds/SeederMakeCommand.php',
'Illuminate\\Database\\DatabaseManager' => $vendorDir . '/laravel/framework/src/Illuminate/Database/DatabaseManager.php',
@ -1047,6 +1065,7 @@ return array(
'Illuminate\\Database\\Eloquent\\RelationNotFoundException' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/RelationNotFoundException.php',
'Illuminate\\Database\\Eloquent\\Relations\\BelongsTo' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php',
'Illuminate\\Database\\Eloquent\\Relations\\BelongsToMany' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php',
'Illuminate\\Database\\Eloquent\\Relations\\Concerns\\AsPivot' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/AsPivot.php',
'Illuminate\\Database\\Eloquent\\Relations\\Concerns\\InteractsWithPivotTable' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php',
'Illuminate\\Database\\Eloquent\\Relations\\Concerns\\SupportsDefaultModels' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/SupportsDefaultModels.php',
'Illuminate\\Database\\Eloquent\\Relations\\HasMany' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasMany.php',
@ -1097,6 +1116,7 @@ return array(
'Illuminate\\Database\\SQLiteConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Database/SQLiteConnection.php',
'Illuminate\\Database\\Schema\\Blueprint' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php',
'Illuminate\\Database\\Schema\\Builder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Builder.php',
'Illuminate\\Database\\Schema\\ColumnDefinition' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/ColumnDefinition.php',
'Illuminate\\Database\\Schema\\Grammars\\ChangeColumn' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/ChangeColumn.php',
'Illuminate\\Database\\Schema\\Grammars\\Grammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php',
'Illuminate\\Database\\Schema\\Grammars\\MySqlGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/MySqlGrammar.php',
@ -1131,6 +1151,7 @@ return array(
'Illuminate\\Foundation\\Auth\\SendsPasswordResetEmails' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/SendsPasswordResetEmails.php',
'Illuminate\\Foundation\\Auth\\ThrottlesLogins' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/ThrottlesLogins.php',
'Illuminate\\Foundation\\Auth\\User' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/User.php',
'Illuminate\\Foundation\\Auth\\VerifiesEmails' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/VerifiesEmails.php',
'Illuminate\\Foundation\\Bootstrap\\BootProviders' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php',
'Illuminate\\Foundation\\Bootstrap\\HandleExceptions' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php',
'Illuminate\\Foundation\\Bootstrap\\LoadConfiguration' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php',
@ -1144,6 +1165,7 @@ return array(
'Illuminate\\Foundation\\Bus\\PendingDispatch' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php',
'Illuminate\\Foundation\\ComposerScripts' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/ComposerScripts.php',
'Illuminate\\Foundation\\Console\\AppNameCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/AppNameCommand.php',
'Illuminate\\Foundation\\Console\\ChannelMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ChannelMakeCommand.php',
'Illuminate\\Foundation\\Console\\ClearCompiledCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ClearCompiledCommand.php',
'Illuminate\\Foundation\\Console\\ClosureCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ClosureCommand.php',
'Illuminate\\Foundation\\Console\\ConfigCacheCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ConfigCacheCommand.php',
@ -1161,6 +1183,8 @@ return array(
'Illuminate\\Foundation\\Console\\MailMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/MailMakeCommand.php',
'Illuminate\\Foundation\\Console\\ModelMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ModelMakeCommand.php',
'Illuminate\\Foundation\\Console\\NotificationMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/NotificationMakeCommand.php',
'Illuminate\\Foundation\\Console\\ObserverMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ObserverMakeCommand.php',
'Illuminate\\Foundation\\Console\\OptimizeClearCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/OptimizeClearCommand.php',
'Illuminate\\Foundation\\Console\\OptimizeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/OptimizeCommand.php',
'Illuminate\\Foundation\\Console\\PackageDiscoverCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/PackageDiscoverCommand.php',
'Illuminate\\Foundation\\Console\\PolicyMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/PolicyMakeCommand.php',
@ -1183,11 +1207,13 @@ return array(
'Illuminate\\Foundation\\Console\\TestMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/TestMakeCommand.php',
'Illuminate\\Foundation\\Console\\UpCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/UpCommand.php',
'Illuminate\\Foundation\\Console\\VendorPublishCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php',
'Illuminate\\Foundation\\Console\\ViewCacheCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ViewCacheCommand.php',
'Illuminate\\Foundation\\Console\\ViewClearCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ViewClearCommand.php',
'Illuminate\\Foundation\\EnvironmentDetector' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/EnvironmentDetector.php',
'Illuminate\\Foundation\\Events\\Dispatchable' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Events/Dispatchable.php',
'Illuminate\\Foundation\\Events\\LocaleUpdated' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Events/LocaleUpdated.php',
'Illuminate\\Foundation\\Exceptions\\Handler' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php',
'Illuminate\\Foundation\\Exceptions\\WhoopsHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Exceptions/WhoopsHandler.php',
'Illuminate\\Foundation\\Http\\Events\\RequestHandled' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Events/RequestHandled.php',
'Illuminate\\Foundation\\Http\\Exceptions\\MaintenanceModeException' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Exceptions/MaintenanceModeException.php',
'Illuminate\\Foundation\\Http\\FormRequest' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php',
@ -1219,10 +1245,12 @@ return array(
'Illuminate\\Foundation\\Testing\\Concerns\\MakesHttpRequests' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php',
'Illuminate\\Foundation\\Testing\\Concerns\\MocksApplicationServices' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MocksApplicationServices.php',
'Illuminate\\Foundation\\Testing\\Constraints\\HasInDatabase' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/HasInDatabase.php',
'Illuminate\\Foundation\\Testing\\Constraints\\SeeInOrder' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SeeInOrder.php',
'Illuminate\\Foundation\\Testing\\Constraints\\SoftDeletedInDatabase' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SoftDeletedInDatabase.php',
'Illuminate\\Foundation\\Testing\\DatabaseMigrations' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseMigrations.php',
'Illuminate\\Foundation\\Testing\\DatabaseTransactions' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseTransactions.php',
'Illuminate\\Foundation\\Testing\\HttpException' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/HttpException.php',
'Illuminate\\Foundation\\Testing\\PendingCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/PendingCommand.php',
'Illuminate\\Foundation\\Testing\\RefreshDatabase' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php',
'Illuminate\\Foundation\\Testing\\RefreshDatabaseState' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabaseState.php',
'Illuminate\\Foundation\\Testing\\TestCase' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php',
@ -1231,24 +1259,31 @@ return array(
'Illuminate\\Foundation\\Testing\\WithoutEvents' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutEvents.php',
'Illuminate\\Foundation\\Testing\\WithoutMiddleware' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutMiddleware.php',
'Illuminate\\Foundation\\Validation\\ValidatesRequests' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php',
'Illuminate\\Hashing\\AbstractHasher' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/AbstractHasher.php',
'Illuminate\\Hashing\\Argon2IdHasher' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/Argon2IdHasher.php',
'Illuminate\\Hashing\\ArgonHasher' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/ArgonHasher.php',
'Illuminate\\Hashing\\BcryptHasher' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php',
'Illuminate\\Hashing\\HashManager' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/HashManager.php',
'Illuminate\\Hashing\\HashServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/HashServiceProvider.php',
'Illuminate\\Http\\Concerns\\InteractsWithContentTypes' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php',
'Illuminate\\Http\\Concerns\\InteractsWithFlashData' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithFlashData.php',
'Illuminate\\Http\\Concerns\\InteractsWithInput' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php',
'Illuminate\\Http\\Exceptions\\HttpResponseException' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Exceptions/HttpResponseException.php',
'Illuminate\\Http\\Exceptions\\PostTooLargeException' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Exceptions/PostTooLargeException.php',
'Illuminate\\Http\\Exceptions\\ThrottleRequestsException' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Exceptions/ThrottleRequestsException.php',
'Illuminate\\Http\\File' => $vendorDir . '/laravel/framework/src/Illuminate/Http/File.php',
'Illuminate\\Http\\FileHelpers' => $vendorDir . '/laravel/framework/src/Illuminate/Http/FileHelpers.php',
'Illuminate\\Http\\JsonResponse' => $vendorDir . '/laravel/framework/src/Illuminate/Http/JsonResponse.php',
'Illuminate\\Http\\Middleware\\CheckResponseForModifications' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Middleware/CheckResponseForModifications.php',
'Illuminate\\Http\\Middleware\\FrameGuard' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Middleware/FrameGuard.php',
'Illuminate\\Http\\Middleware\\SetCacheHeaders' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Middleware/SetCacheHeaders.php',
'Illuminate\\Http\\RedirectResponse' => $vendorDir . '/laravel/framework/src/Illuminate/Http/RedirectResponse.php',
'Illuminate\\Http\\Request' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Request.php',
'Illuminate\\Http\\Resources\\CollectsResources' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/CollectsResources.php',
'Illuminate\\Http\\Resources\\ConditionallyLoadsAttributes' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/ConditionallyLoadsAttributes.php',
'Illuminate\\Http\\Resources\\DelegatesToResource' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php',
'Illuminate\\Http\\Resources\\Json\\AnonymousResourceCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Json/AnonymousResourceCollection.php',
'Illuminate\\Http\\Resources\\Json\\JsonResource' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Json/JsonResource.php',
'Illuminate\\Http\\Resources\\Json\\PaginatedResourceResponse' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Json/PaginatedResourceResponse.php',
'Illuminate\\Http\\Resources\\Json\\Resource' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Json/Resource.php',
'Illuminate\\Http\\Resources\\Json\\ResourceCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceCollection.php',
@ -1263,8 +1298,10 @@ return array(
'Illuminate\\Http\\Testing\\MimeType' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Testing/MimeType.php',
'Illuminate\\Http\\UploadedFile' => $vendorDir . '/laravel/framework/src/Illuminate/Http/UploadedFile.php',
'Illuminate\\Log\\Events\\MessageLogged' => $vendorDir . '/laravel/framework/src/Illuminate/Log/Events/MessageLogged.php',
'Illuminate\\Log\\LogManager' => $vendorDir . '/laravel/framework/src/Illuminate/Log/LogManager.php',
'Illuminate\\Log\\LogServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Log/LogServiceProvider.php',
'Illuminate\\Log\\Writer' => $vendorDir . '/laravel/framework/src/Illuminate/Log/Writer.php',
'Illuminate\\Log\\Logger' => $vendorDir . '/laravel/framework/src/Illuminate/Log/Logger.php',
'Illuminate\\Log\\ParsesLogConfiguration' => $vendorDir . '/laravel/framework/src/Illuminate/Log/ParsesLogConfiguration.php',
'Illuminate\\Mail\\Events\\MessageSending' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Events/MessageSending.php',
'Illuminate\\Mail\\Events\\MessageSent' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Events/MessageSent.php',
'Illuminate\\Mail\\MailServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php',
@ -1321,6 +1358,7 @@ return array(
'Illuminate\\Pipeline\\Pipeline' => $vendorDir . '/laravel/framework/src/Illuminate/Pipeline/Pipeline.php',
'Illuminate\\Pipeline\\PipelineServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Pipeline/PipelineServiceProvider.php',
'Illuminate\\Queue\\BeanstalkdQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/BeanstalkdQueue.php',
'Illuminate\\Queue\\CallQueuedClosure' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/CallQueuedClosure.php',
'Illuminate\\Queue\\CallQueuedHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php',
'Illuminate\\Queue\\Capsule\\Manager' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Capsule/Manager.php',
'Illuminate\\Queue\\Connectors\\BeanstalkdConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Connectors/BeanstalkdConnector.php',
@ -1370,6 +1408,7 @@ return array(
'Illuminate\\Queue\\QueueManager' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/QueueManager.php',
'Illuminate\\Queue\\QueueServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php',
'Illuminate\\Queue\\RedisQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/RedisQueue.php',
'Illuminate\\Queue\\SerializableClosure' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/SerializableClosure.php',
'Illuminate\\Queue\\SerializesAndRestoresModelIdentifiers' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php',
'Illuminate\\Queue\\SerializesModels' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/SerializesModels.php',
'Illuminate\\Queue\\SqsQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/SqsQueue.php',
@ -1383,6 +1422,7 @@ return array(
'Illuminate\\Redis\\Connections\\PredisConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connections/PredisConnection.php',
'Illuminate\\Redis\\Connectors\\PhpRedisConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php',
'Illuminate\\Redis\\Connectors\\PredisConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connectors/PredisConnector.php',
'Illuminate\\Redis\\Events\\CommandExecuted' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Events/CommandExecuted.php',
'Illuminate\\Redis\\Limiters\\ConcurrencyLimiter' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiter.php',
'Illuminate\\Redis\\Limiters\\ConcurrencyLimiterBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiterBuilder.php',
'Illuminate\\Redis\\Limiters\\DurationLimiter' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiter.php',
@ -1396,6 +1436,7 @@ return array(
'Illuminate\\Routing\\ControllerDispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php',
'Illuminate\\Routing\\ControllerMiddlewareOptions' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/ControllerMiddlewareOptions.php',
'Illuminate\\Routing\\Events\\RouteMatched' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Events/RouteMatched.php',
'Illuminate\\Routing\\Exceptions\\InvalidSignatureException' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Exceptions/InvalidSignatureException.php',
'Illuminate\\Routing\\Exceptions\\UrlGenerationException' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Exceptions/UrlGenerationException.php',
'Illuminate\\Routing\\ImplicitRouteBinding' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php',
'Illuminate\\Routing\\Matching\\HostValidator' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Matching/HostValidator.php',
@ -1407,6 +1448,7 @@ return array(
'Illuminate\\Routing\\Middleware\\SubstituteBindings' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php',
'Illuminate\\Routing\\Middleware\\ThrottleRequests' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php',
'Illuminate\\Routing\\Middleware\\ThrottleRequestsWithRedis' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequestsWithRedis.php',
'Illuminate\\Routing\\Middleware\\ValidateSignature' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Middleware/ValidateSignature.php',
'Illuminate\\Routing\\PendingResourceRegistration' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/PendingResourceRegistration.php',
'Illuminate\\Routing\\Pipeline' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Pipeline.php',
'Illuminate\\Routing\\RedirectController' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RedirectController.php',
@ -1448,8 +1490,6 @@ return array(
'Illuminate\\Support\\Carbon' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Carbon.php',
'Illuminate\\Support\\Collection' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Collection.php',
'Illuminate\\Support\\Composer' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Composer.php',
'Illuminate\\Support\\Debug\\Dumper' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Debug/Dumper.php',
'Illuminate\\Support\\Debug\\HtmlDumper' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Debug/HtmlDumper.php',
'Illuminate\\Support\\Facades\\App' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/App.php',
'Illuminate\\Support\\Facades\\Artisan' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Artisan.php',
'Illuminate\\Support\\Facades\\Auth' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Auth.php',
@ -1504,6 +1544,8 @@ return array(
'Illuminate\\Support\\Testing\\Fakes\\PendingMailFake' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/PendingMailFake.php',
'Illuminate\\Support\\Testing\\Fakes\\QueueFake' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/QueueFake.php',
'Illuminate\\Support\\Traits\\CapsuleManagerTrait' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Traits/CapsuleManagerTrait.php',
'Illuminate\\Support\\Traits\\ForwardsCalls' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php',
'Illuminate\\Support\\Traits\\Localizable' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Traits/Localizable.php',
'Illuminate\\Support\\Traits\\Macroable' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Traits/Macroable.php',
'Illuminate\\Support\\ViewErrorBag' => $vendorDir . '/laravel/framework/src/Illuminate/Support/ViewErrorBag.php',
'Illuminate\\Translation\\ArrayLoader' => $vendorDir . '/laravel/framework/src/Illuminate/Translation/ArrayLoader.php',
@ -1524,6 +1566,7 @@ return array(
'Illuminate\\Validation\\Rules\\Exists' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/Exists.php',
'Illuminate\\Validation\\Rules\\In' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/In.php',
'Illuminate\\Validation\\Rules\\NotIn' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/NotIn.php',
'Illuminate\\Validation\\Rules\\RequiredIf' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/RequiredIf.php',
'Illuminate\\Validation\\Rules\\Unique' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/Unique.php',
'Illuminate\\Validation\\UnauthorizedException' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/UnauthorizedException.php',
'Illuminate\\Validation\\ValidatesWhenResolvedTrait' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/ValidatesWhenResolvedTrait.php',
@ -1540,6 +1583,7 @@ return array(
'Illuminate\\View\\Compilers\\Concerns\\CompilesComponents' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComponents.php',
'Illuminate\\View\\Compilers\\Concerns\\CompilesConditionals' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesConditionals.php',
'Illuminate\\View\\Compilers\\Concerns\\CompilesEchos' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesEchos.php',
'Illuminate\\View\\Compilers\\Concerns\\CompilesHelpers' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesHelpers.php',
'Illuminate\\View\\Compilers\\Concerns\\CompilesIncludes' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesIncludes.php',
'Illuminate\\View\\Compilers\\Concerns\\CompilesInjections' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesInjections.php',
'Illuminate\\View\\Compilers\\Concerns\\CompilesJson' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesJson.php',
@ -1566,9 +1610,9 @@ return array(
'Illuminate\\View\\ViewFinderInterface' => $vendorDir . '/laravel/framework/src/Illuminate/View/ViewFinderInterface.php',
'Illuminate\\View\\ViewName' => $vendorDir . '/laravel/framework/src/Illuminate/View/ViewName.php',
'Illuminate\\View\\ViewServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/View/ViewServiceProvider.php',
'JakubOnderka\\PhpConsoleColor\\ConsoleColor' => $vendorDir . '/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/ConsoleColor.php',
'JakubOnderka\\PhpConsoleColor\\InvalidStyleException' => $vendorDir . '/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/InvalidStyleException.php',
'JakubOnderka\\PhpConsoleHighlighter\\Highlighter' => $vendorDir . '/jakub-onderka/php-console-highlighter/src/JakubOnderka/PhpConsoleHighlighter/Highlighter.php',
'JakubOnderka\\PhpConsoleColor\\ConsoleColor' => $vendorDir . '/jakub-onderka/php-console-color/src/ConsoleColor.php',
'JakubOnderka\\PhpConsoleColor\\InvalidStyleException' => $vendorDir . '/jakub-onderka/php-console-color/src/InvalidStyleException.php',
'JakubOnderka\\PhpConsoleHighlighter\\Highlighter' => $vendorDir . '/jakub-onderka/php-console-highlighter/src/Highlighter.php',
'JsonSerializable' => $vendorDir . '/nesbot/carbon/src/JsonSerializable.php',
'Laravel\\Tinker\\ClassAliasAutoloader' => $vendorDir . '/laravel/tinker/src/ClassAliasAutoloader.php',
'Laravel\\Tinker\\Console\\TinkerCommand' => $vendorDir . '/laravel/tinker/src/Console/TinkerCommand.php',
@ -1621,9 +1665,14 @@ return array(
'League\\Flysystem\\Util\\MimeType' => $vendorDir . '/league/flysystem/src/Util/MimeType.php',
'League\\Flysystem\\Util\\StreamHasher' => $vendorDir . '/league/flysystem/src/Util/StreamHasher.php',
'Mockery' => $vendorDir . '/mockery/mockery/library/Mockery.php',
'Mockery\\Adapter\\Phpunit\\Legacy\\TestListenerForV5' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/Legacy/TestListenerForV5.php',
'Mockery\\Adapter\\Phpunit\\Legacy\\TestListenerForV6' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/Legacy/TestListenerForV6.php',
'Mockery\\Adapter\\Phpunit\\Legacy\\TestListenerForV7' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/Legacy/TestListenerForV7.php',
'Mockery\\Adapter\\Phpunit\\Legacy\\TestListenerTrait' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/Legacy/TestListenerTrait.php',
'Mockery\\Adapter\\Phpunit\\MockeryPHPUnitIntegration' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegration.php',
'Mockery\\Adapter\\Phpunit\\MockeryTestCase' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryTestCase.php',
'Mockery\\Adapter\\Phpunit\\TestListener' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/TestListener.php',
'Mockery\\ClosureWrapper' => $vendorDir . '/mockery/mockery/library/Mockery/ClosureWrapper.php',
'Mockery\\CompositeExpectation' => $vendorDir . '/mockery/mockery/library/Mockery/CompositeExpectation.php',
'Mockery\\Configuration' => $vendorDir . '/mockery/mockery/library/Mockery/Configuration.php',
'Mockery\\Container' => $vendorDir . '/mockery/mockery/library/Mockery/Container.php',
@ -1787,6 +1836,16 @@ return array(
'Monolog\\Processor\\UidProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/UidProcessor.php',
'Monolog\\Processor\\WebProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/WebProcessor.php',
'Monolog\\Registry' => $vendorDir . '/monolog/monolog/src/Monolog/Registry.php',
'Opis\\Closure\\Analyzer' => $vendorDir . '/opis/closure/src/Analyzer.php',
'Opis\\Closure\\ClosureContext' => $vendorDir . '/opis/closure/src/ClosureContext.php',
'Opis\\Closure\\ClosureScope' => $vendorDir . '/opis/closure/src/ClosureScope.php',
'Opis\\Closure\\ClosureStream' => $vendorDir . '/opis/closure/src/ClosureStream.php',
'Opis\\Closure\\ISecurityProvider' => $vendorDir . '/opis/closure/src/ISecurityProvider.php',
'Opis\\Closure\\ReflectionClosure' => $vendorDir . '/opis/closure/src/ReflectionClosure.php',
'Opis\\Closure\\SecurityException' => $vendorDir . '/opis/closure/src/SecurityException.php',
'Opis\\Closure\\SecurityProvider' => $vendorDir . '/opis/closure/src/SecurityProvider.php',
'Opis\\Closure\\SelfReference' => $vendorDir . '/opis/closure/src/SelfReference.php',
'Opis\\Closure\\SerializableClosure' => $vendorDir . '/opis/closure/src/SerializableClosure.php',
'PHPUnit\\Exception' => $vendorDir . '/phpunit/phpunit/src/Exception.php',
'PHPUnit\\Framework\\Assert' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert.php',
'PHPUnit\\Framework\\AssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/Framework/AssertionFailedError.php',
@ -2159,7 +2218,6 @@ return array(
'PHP_Token_XOR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
'PHP_Token_YIELD' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
'PHP_Token_YIELD_FROM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
'ParseError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/ParseError.php',
'Parsedown' => $vendorDir . '/erusev/parsedown/Parsedown.php',
'PharIo\\Manifest\\Application' => $vendorDir . '/phar-io/manifest/src/values/Application.php',
'PharIo\\Manifest\\ApplicationName' => $vendorDir . '/phar-io/manifest/src/values/ApplicationName.php',
@ -2239,6 +2297,8 @@ return array(
'PhpParser\\Builder\\Namespace_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php',
'PhpParser\\Builder\\Param' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Param.php',
'PhpParser\\Builder\\Property' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Property.php',
'PhpParser\\Builder\\TraitUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php',
'PhpParser\\Builder\\TraitUseAdaptation' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php',
'PhpParser\\Builder\\Trait_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Trait_.php',
'PhpParser\\Builder\\Use_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Use_.php',
'PhpParser\\Comment' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Comment.php',
@ -2471,6 +2531,7 @@ return array(
'Prophecy\\Doubler\\ClassPatch\\ProphecySubjectPatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php',
'Prophecy\\Doubler\\ClassPatch\\ReflectionClassNewInstancePatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php',
'Prophecy\\Doubler\\ClassPatch\\SplFileInfoPatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php',
'Prophecy\\Doubler\\ClassPatch\\ThrowablePatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ThrowablePatch.php',
'Prophecy\\Doubler\\ClassPatch\\TraversablePatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php',
'Prophecy\\Doubler\\DoubleInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php',
'Prophecy\\Doubler\\Doubler' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php',
@ -2827,7 +2888,6 @@ return array(
'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => $vendorDir . '/sebastian/recursion-context/src/InvalidArgumentException.php',
'SebastianBergmann\\ResourceOperations\\ResourceOperations' => $vendorDir . '/sebastian/resource-operations/src/ResourceOperations.php',
'SebastianBergmann\\Version' => $vendorDir . '/sebastian/version/src/Version.php',
'SessionUpdateTimestampHandlerInterface' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/SessionUpdateTimestampHandlerInterface.php',
'SettingsSeeder' => $baseDir . '/database/seeds/SettingsSeeder.php',
'Symfony\\Component\\Console\\Application' => $vendorDir . '/symfony/console/Application.php',
'Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => $vendorDir . '/symfony/console/CommandLoader/CommandLoaderInterface.php',
@ -2850,13 +2910,13 @@ return array(
'Symfony\\Component\\Console\\Event\\ConsoleCommandEvent' => $vendorDir . '/symfony/console/Event/ConsoleCommandEvent.php',
'Symfony\\Component\\Console\\Event\\ConsoleErrorEvent' => $vendorDir . '/symfony/console/Event/ConsoleErrorEvent.php',
'Symfony\\Component\\Console\\Event\\ConsoleEvent' => $vendorDir . '/symfony/console/Event/ConsoleEvent.php',
'Symfony\\Component\\Console\\Event\\ConsoleExceptionEvent' => $vendorDir . '/symfony/console/Event/ConsoleExceptionEvent.php',
'Symfony\\Component\\Console\\Event\\ConsoleTerminateEvent' => $vendorDir . '/symfony/console/Event/ConsoleTerminateEvent.php',
'Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => $vendorDir . '/symfony/console/Exception/CommandNotFoundException.php',
'Symfony\\Component\\Console\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/console/Exception/ExceptionInterface.php',
'Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/console/Exception/InvalidArgumentException.php',
'Symfony\\Component\\Console\\Exception\\InvalidOptionException' => $vendorDir . '/symfony/console/Exception/InvalidOptionException.php',
'Symfony\\Component\\Console\\Exception\\LogicException' => $vendorDir . '/symfony/console/Exception/LogicException.php',
'Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => $vendorDir . '/symfony/console/Exception/NamespaceNotFoundException.php',
'Symfony\\Component\\Console\\Exception\\RuntimeException' => $vendorDir . '/symfony/console/Exception/RuntimeException.php',
'Symfony\\Component\\Console\\Formatter\\OutputFormatter' => $vendorDir . '/symfony/console/Formatter/OutputFormatter.php',
'Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterInterface.php',
@ -2877,6 +2937,7 @@ return array(
'Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => $vendorDir . '/symfony/console/Helper/SymfonyQuestionHelper.php',
'Symfony\\Component\\Console\\Helper\\Table' => $vendorDir . '/symfony/console/Helper/Table.php',
'Symfony\\Component\\Console\\Helper\\TableCell' => $vendorDir . '/symfony/console/Helper/TableCell.php',
'Symfony\\Component\\Console\\Helper\\TableRows' => $vendorDir . '/symfony/console/Helper/TableRows.php',
'Symfony\\Component\\Console\\Helper\\TableSeparator' => $vendorDir . '/symfony/console/Helper/TableSeparator.php',
'Symfony\\Component\\Console\\Helper\\TableStyle' => $vendorDir . '/symfony/console/Helper/TableStyle.php',
'Symfony\\Component\\Console\\Input\\ArgvInput' => $vendorDir . '/symfony/console/Input/ArgvInput.php',
@ -2893,6 +2954,7 @@ return array(
'Symfony\\Component\\Console\\Output\\BufferedOutput' => $vendorDir . '/symfony/console/Output/BufferedOutput.php',
'Symfony\\Component\\Console\\Output\\ConsoleOutput' => $vendorDir . '/symfony/console/Output/ConsoleOutput.php',
'Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => $vendorDir . '/symfony/console/Output/ConsoleOutputInterface.php',
'Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => $vendorDir . '/symfony/console/Output/ConsoleSectionOutput.php',
'Symfony\\Component\\Console\\Output\\NullOutput' => $vendorDir . '/symfony/console/Output/NullOutput.php',
'Symfony\\Component\\Console\\Output\\Output' => $vendorDir . '/symfony/console/Output/Output.php',
'Symfony\\Component\\Console\\Output\\OutputInterface' => $vendorDir . '/symfony/console/Output/OutputInterface.php',
@ -2906,6 +2968,7 @@ return array(
'Symfony\\Component\\Console\\Terminal' => $vendorDir . '/symfony/console/Terminal.php',
'Symfony\\Component\\Console\\Tester\\ApplicationTester' => $vendorDir . '/symfony/console/Tester/ApplicationTester.php',
'Symfony\\Component\\Console\\Tester\\CommandTester' => $vendorDir . '/symfony/console/Tester/CommandTester.php',
'Symfony\\Component\\Console\\Tester\\TesterTrait' => $vendorDir . '/symfony/console/Tester/TesterTrait.php',
'Symfony\\Component\\CssSelector\\CssSelectorConverter' => $vendorDir . '/symfony/css-selector/CssSelectorConverter.php',
'Symfony\\Component\\CssSelector\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/css-selector/Exception/ExceptionInterface.php',
'Symfony\\Component\\CssSelector\\Exception\\ExpressionErrorException' => $vendorDir . '/symfony/css-selector/Exception/ExpressionErrorException.php',
@ -2960,7 +3023,6 @@ return array(
'Symfony\\Component\\Debug\\ErrorHandler' => $vendorDir . '/symfony/debug/ErrorHandler.php',
'Symfony\\Component\\Debug\\ExceptionHandler' => $vendorDir . '/symfony/debug/ExceptionHandler.php',
'Symfony\\Component\\Debug\\Exception\\ClassNotFoundException' => $vendorDir . '/symfony/debug/Exception/ClassNotFoundException.php',
'Symfony\\Component\\Debug\\Exception\\ContextErrorException' => $vendorDir . '/symfony/debug/Exception/ContextErrorException.php',
'Symfony\\Component\\Debug\\Exception\\FatalErrorException' => $vendorDir . '/symfony/debug/Exception/FatalErrorException.php',
'Symfony\\Component\\Debug\\Exception\\FatalThrowableError' => $vendorDir . '/symfony/debug/Exception/FatalThrowableError.php',
'Symfony\\Component\\Debug\\Exception\\FlattenException' => $vendorDir . '/symfony/debug/Exception/FlattenException.php',
@ -2987,7 +3049,6 @@ return array(
'Symfony\\Component\\Finder\\Comparator\\DateComparator' => $vendorDir . '/symfony/finder/Comparator/DateComparator.php',
'Symfony\\Component\\Finder\\Comparator\\NumberComparator' => $vendorDir . '/symfony/finder/Comparator/NumberComparator.php',
'Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => $vendorDir . '/symfony/finder/Exception/AccessDeniedException.php',
'Symfony\\Component\\Finder\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/finder/Exception/ExceptionInterface.php',
'Symfony\\Component\\Finder\\Finder' => $vendorDir . '/symfony/finder/Finder.php',
'Symfony\\Component\\Finder\\Glob' => $vendorDir . '/symfony/finder/Glob.php',
'Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => $vendorDir . '/symfony/finder/Iterator/CustomFilterIterator.php',
@ -2997,7 +3058,6 @@ return array(
'Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FileTypeFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilecontentFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilenameFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\FilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => $vendorDir . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => $vendorDir . '/symfony/finder/Iterator/PathFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => $vendorDir . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php',
@ -3015,8 +3075,15 @@ return array(
'Symfony\\Component\\HttpFoundation\\ExpressionRequestMatcher' => $vendorDir . '/symfony/http-foundation/ExpressionRequestMatcher.php',
'Symfony\\Component\\HttpFoundation\\FileBag' => $vendorDir . '/symfony/http-foundation/FileBag.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\AccessDeniedException' => $vendorDir . '/symfony/http-foundation/File/Exception/AccessDeniedException.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\CannotWriteFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/CannotWriteFileException.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\ExtensionFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/ExtensionFileException.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\FileException' => $vendorDir . '/symfony/http-foundation/File/Exception/FileException.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\FileNotFoundException' => $vendorDir . '/symfony/http-foundation/File/Exception/FileNotFoundException.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\FormSizeFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/FormSizeFileException.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\IniSizeFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/IniSizeFileException.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\NoFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/NoFileException.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\NoTmpDirFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/NoTmpDirFileException.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\PartialFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/PartialFileException.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\UnexpectedTypeException' => $vendorDir . '/symfony/http-foundation/File/Exception/UnexpectedTypeException.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\UploadException' => $vendorDir . '/symfony/http-foundation/File/Exception/UploadException.php',
'Symfony\\Component\\HttpFoundation\\File\\File' => $vendorDir . '/symfony/http-foundation/File/File.php',
@ -3030,6 +3097,7 @@ return array(
'Symfony\\Component\\HttpFoundation\\File\\Stream' => $vendorDir . '/symfony/http-foundation/File/Stream.php',
'Symfony\\Component\\HttpFoundation\\File\\UploadedFile' => $vendorDir . '/symfony/http-foundation/File/UploadedFile.php',
'Symfony\\Component\\HttpFoundation\\HeaderBag' => $vendorDir . '/symfony/http-foundation/HeaderBag.php',
'Symfony\\Component\\HttpFoundation\\HeaderUtils' => $vendorDir . '/symfony/http-foundation/HeaderUtils.php',
'Symfony\\Component\\HttpFoundation\\IpUtils' => $vendorDir . '/symfony/http-foundation/IpUtils.php',
'Symfony\\Component\\HttpFoundation\\JsonResponse' => $vendorDir . '/symfony/http-foundation/JsonResponse.php',
'Symfony\\Component\\HttpFoundation\\ParameterBag' => $vendorDir . '/symfony/http-foundation/ParameterBag.php',
@ -3052,22 +3120,20 @@ return array(
'Symfony\\Component\\HttpFoundation\\Session\\SessionBagProxy' => $vendorDir . '/symfony/http-foundation/Session/SessionBagProxy.php',
'Symfony\\Component\\HttpFoundation\\Session\\SessionInterface' => $vendorDir . '/symfony/http-foundation/Session/SessionInterface.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\AbstractSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MemcacheSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MemcacheSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MemcachedSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MigratingSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MigratingSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MongoDbSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NativeFileSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NativeSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/NativeSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NullSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/NullSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\PdoSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\RedisSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\StrictSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\WriteCheckSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/WriteCheckSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MetadataBag' => $vendorDir . '/symfony/http-foundation/Session/Storage/MetadataBag.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MockArraySessionStorage' => $vendorDir . '/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MockFileSessionStorage' => $vendorDir . '/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\NativeSessionStorage' => $vendorDir . '/symfony/http-foundation/Session/Storage/NativeSessionStorage.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\PhpBridgeSessionStorage' => $vendorDir . '/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorage.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Proxy\\AbstractProxy' => $vendorDir . '/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Proxy\\NativeProxy' => $vendorDir . '/symfony/http-foundation/Session/Storage/Proxy/NativeProxy.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Proxy\\SessionHandlerProxy' => $vendorDir . '/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\SessionStorageInterface' => $vendorDir . '/symfony/http-foundation/Session/Storage/SessionStorageInterface.php',
'Symfony\\Component\\HttpFoundation\\StreamedResponse' => $vendorDir . '/symfony/http-foundation/StreamedResponse.php',
@ -3081,7 +3147,6 @@ return array(
'Symfony\\Component\\HttpKernel\\CacheWarmer\\CacheWarmerInterface' => $vendorDir . '/symfony/http-kernel/CacheWarmer/CacheWarmerInterface.php',
'Symfony\\Component\\HttpKernel\\CacheWarmer\\WarmableInterface' => $vendorDir . '/symfony/http-kernel/CacheWarmer/WarmableInterface.php',
'Symfony\\Component\\HttpKernel\\Client' => $vendorDir . '/symfony/http-kernel/Client.php',
'Symfony\\Component\\HttpKernel\\Config\\EnvParametersResource' => $vendorDir . '/symfony/http-kernel/Config/EnvParametersResource.php',
'Symfony\\Component\\HttpKernel\\Config\\FileLocator' => $vendorDir . '/symfony/http-kernel/Config/FileLocator.php',
'Symfony\\Component\\HttpKernel\\ControllerMetadata\\ArgumentMetadata' => $vendorDir . '/symfony/http-kernel/ControllerMetadata/ArgumentMetadata.php',
'Symfony\\Component\\HttpKernel\\ControllerMetadata\\ArgumentMetadataFactory' => $vendorDir . '/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactory.php',
@ -3093,6 +3158,7 @@ return array(
'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/RequestValueResolver.php',
'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\ServiceValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/ServiceValueResolver.php',
'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\SessionValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/SessionValueResolver.php',
'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\TraceableValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/TraceableValueResolver.php',
'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\VariadicValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/VariadicValueResolver.php',
'Symfony\\Component\\HttpKernel\\Controller\\ArgumentValueResolverInterface' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentValueResolverInterface.php',
'Symfony\\Component\\HttpKernel\\Controller\\ContainerControllerResolver' => $vendorDir . '/symfony/http-kernel/Controller/ContainerControllerResolver.php',
@ -3114,11 +3180,9 @@ return array(
'Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/RequestDataCollector.php',
'Symfony\\Component\\HttpKernel\\DataCollector\\RouterDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/RouterDataCollector.php',
'Symfony\\Component\\HttpKernel\\DataCollector\\TimeDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/TimeDataCollector.php',
'Symfony\\Component\\HttpKernel\\DataCollector\\Util\\ValueExporter' => $vendorDir . '/symfony/http-kernel/DataCollector/Util/ValueExporter.php',
'Symfony\\Component\\HttpKernel\\Debug\\FileLinkFormatter' => $vendorDir . '/symfony/http-kernel/Debug/FileLinkFormatter.php',
'Symfony\\Component\\HttpKernel\\Debug\\TraceableEventDispatcher' => $vendorDir . '/symfony/http-kernel/Debug/TraceableEventDispatcher.php',
'Symfony\\Component\\HttpKernel\\DependencyInjection\\AddAnnotatedClassesToCachePass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/AddAnnotatedClassesToCachePass.php',
'Symfony\\Component\\HttpKernel\\DependencyInjection\\AddClassesToCachePass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/AddClassesToCachePass.php',
'Symfony\\Component\\HttpKernel\\DependencyInjection\\ConfigurableExtension' => $vendorDir . '/symfony/http-kernel/DependencyInjection/ConfigurableExtension.php',
'Symfony\\Component\\HttpKernel\\DependencyInjection\\ControllerArgumentValueResolverPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/ControllerArgumentValueResolverPass.php',
'Symfony\\Component\\HttpKernel\\DependencyInjection\\Extension' => $vendorDir . '/symfony/http-kernel/DependencyInjection/Extension.php',
@ -3190,6 +3254,7 @@ return array(
'Symfony\\Component\\HttpKernel\\HttpCache\\Ssi' => $vendorDir . '/symfony/http-kernel/HttpCache/Ssi.php',
'Symfony\\Component\\HttpKernel\\HttpCache\\Store' => $vendorDir . '/symfony/http-kernel/HttpCache/Store.php',
'Symfony\\Component\\HttpKernel\\HttpCache\\StoreInterface' => $vendorDir . '/symfony/http-kernel/HttpCache/StoreInterface.php',
'Symfony\\Component\\HttpKernel\\HttpCache\\SubRequestHandler' => $vendorDir . '/symfony/http-kernel/HttpCache/SubRequestHandler.php',
'Symfony\\Component\\HttpKernel\\HttpCache\\SurrogateInterface' => $vendorDir . '/symfony/http-kernel/HttpCache/SurrogateInterface.php',
'Symfony\\Component\\HttpKernel\\HttpKernel' => $vendorDir . '/symfony/http-kernel/HttpKernel.php',
'Symfony\\Component\\HttpKernel\\HttpKernelInterface' => $vendorDir . '/symfony/http-kernel/HttpKernelInterface.php',
@ -3209,6 +3274,7 @@ return array(
'Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/process/Exception/InvalidArgumentException.php',
'Symfony\\Component\\Process\\Exception\\LogicException' => $vendorDir . '/symfony/process/Exception/LogicException.php',
'Symfony\\Component\\Process\\Exception\\ProcessFailedException' => $vendorDir . '/symfony/process/Exception/ProcessFailedException.php',
'Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => $vendorDir . '/symfony/process/Exception/ProcessSignaledException.php',
'Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => $vendorDir . '/symfony/process/Exception/ProcessTimedOutException.php',
'Symfony\\Component\\Process\\Exception\\RuntimeException' => $vendorDir . '/symfony/process/Exception/RuntimeException.php',
'Symfony\\Component\\Process\\ExecutableFinder' => $vendorDir . '/symfony/process/ExecutableFinder.php',
@ -3220,7 +3286,6 @@ return array(
'Symfony\\Component\\Process\\Pipes\\UnixPipes' => $vendorDir . '/symfony/process/Pipes/UnixPipes.php',
'Symfony\\Component\\Process\\Pipes\\WindowsPipes' => $vendorDir . '/symfony/process/Pipes/WindowsPipes.php',
'Symfony\\Component\\Process\\Process' => $vendorDir . '/symfony/process/Process.php',
'Symfony\\Component\\Process\\ProcessBuilder' => $vendorDir . '/symfony/process/ProcessBuilder.php',
'Symfony\\Component\\Process\\ProcessUtils' => $vendorDir . '/symfony/process/ProcessUtils.php',
'Symfony\\Component\\Routing\\Annotation\\Route' => $vendorDir . '/symfony/routing/Annotation/Route.php',
'Symfony\\Component\\Routing\\CompiledRoute' => $vendorDir . '/symfony/routing/CompiledRoute.php',
@ -3256,8 +3321,6 @@ return array(
'Symfony\\Component\\Routing\\Loader\\ProtectedPhpFileLoader' => $vendorDir . '/symfony/routing/Loader/PhpFileLoader.php',
'Symfony\\Component\\Routing\\Loader\\XmlFileLoader' => $vendorDir . '/symfony/routing/Loader/XmlFileLoader.php',
'Symfony\\Component\\Routing\\Loader\\YamlFileLoader' => $vendorDir . '/symfony/routing/Loader/YamlFileLoader.php',
'Symfony\\Component\\Routing\\Matcher\\Dumper\\DumperCollection' => $vendorDir . '/symfony/routing/Matcher/Dumper/DumperCollection.php',
'Symfony\\Component\\Routing\\Matcher\\Dumper\\DumperRoute' => $vendorDir . '/symfony/routing/Matcher/Dumper/DumperRoute.php',
'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumper' => $vendorDir . '/symfony/routing/Matcher/Dumper/MatcherDumper.php',
'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumperInterface' => $vendorDir . '/symfony/routing/Matcher/Dumper/MatcherDumperInterface.php',
'Symfony\\Component\\Routing\\Matcher\\Dumper\\PhpMatcherDumper' => $vendorDir . '/symfony/routing/Matcher/Dumper/PhpMatcherDumper.php',
@ -3356,8 +3419,8 @@ return array(
'Symfony\\Component\\VarDumper\\Caster\\EnumStub' => $vendorDir . '/symfony/var-dumper/Caster/EnumStub.php',
'Symfony\\Component\\VarDumper\\Caster\\ExceptionCaster' => $vendorDir . '/symfony/var-dumper/Caster/ExceptionCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\FrameStub' => $vendorDir . '/symfony/var-dumper/Caster/FrameStub.php',
'Symfony\\Component\\VarDumper\\Caster\\GmpCaster' => $vendorDir . '/symfony/var-dumper/Caster/GmpCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\LinkStub' => $vendorDir . '/symfony/var-dumper/Caster/LinkStub.php',
'Symfony\\Component\\VarDumper\\Caster\\MongoCaster' => $vendorDir . '/symfony/var-dumper/Caster/MongoCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\PdoCaster' => $vendorDir . '/symfony/var-dumper/Caster/PdoCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\PgSqlCaster' => $vendorDir . '/symfony/var-dumper/Caster/PgSqlCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\RedisCaster' => $vendorDir . '/symfony/var-dumper/Caster/RedisCaster.php',
@ -3376,17 +3439,29 @@ return array(
'Symfony\\Component\\VarDumper\\Cloner\\DumperInterface' => $vendorDir . '/symfony/var-dumper/Cloner/DumperInterface.php',
'Symfony\\Component\\VarDumper\\Cloner\\Stub' => $vendorDir . '/symfony/var-dumper/Cloner/Stub.php',
'Symfony\\Component\\VarDumper\\Cloner\\VarCloner' => $vendorDir . '/symfony/var-dumper/Cloner/VarCloner.php',
'Symfony\\Component\\VarDumper\\Command\\Descriptor\\CliDescriptor' => $vendorDir . '/symfony/var-dumper/Command/Descriptor/CliDescriptor.php',
'Symfony\\Component\\VarDumper\\Command\\Descriptor\\DumpDescriptorInterface' => $vendorDir . '/symfony/var-dumper/Command/Descriptor/DumpDescriptorInterface.php',
'Symfony\\Component\\VarDumper\\Command\\Descriptor\\HtmlDescriptor' => $vendorDir . '/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php',
'Symfony\\Component\\VarDumper\\Command\\ServerDumpCommand' => $vendorDir . '/symfony/var-dumper/Command/ServerDumpCommand.php',
'Symfony\\Component\\VarDumper\\Dumper\\AbstractDumper' => $vendorDir . '/symfony/var-dumper/Dumper/AbstractDumper.php',
'Symfony\\Component\\VarDumper\\Dumper\\CliDumper' => $vendorDir . '/symfony/var-dumper/Dumper/CliDumper.php',
'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\CliContextProvider' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php',
'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\ContextProviderInterface' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php',
'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\RequestContextProvider' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php',
'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\SourceContextProvider' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php',
'Symfony\\Component\\VarDumper\\Dumper\\DataDumperInterface' => $vendorDir . '/symfony/var-dumper/Dumper/DataDumperInterface.php',
'Symfony\\Component\\VarDumper\\Dumper\\HtmlDumper' => $vendorDir . '/symfony/var-dumper/Dumper/HtmlDumper.php',
'Symfony\\Component\\VarDumper\\Dumper\\ServerDumper' => $vendorDir . '/symfony/var-dumper/Dumper/ServerDumper.php',
'Symfony\\Component\\VarDumper\\Exception\\ThrowingCasterException' => $vendorDir . '/symfony/var-dumper/Exception/ThrowingCasterException.php',
'Symfony\\Component\\VarDumper\\Server\\Connection' => $vendorDir . '/symfony/var-dumper/Server/Connection.php',
'Symfony\\Component\\VarDumper\\Server\\DumpServer' => $vendorDir . '/symfony/var-dumper/Server/DumpServer.php',
'Symfony\\Component\\VarDumper\\Test\\VarDumperTestTrait' => $vendorDir . '/symfony/var-dumper/Test/VarDumperTestTrait.php',
'Symfony\\Component\\VarDumper\\VarDumper' => $vendorDir . '/symfony/var-dumper/VarDumper.php',
'Symfony\\Polyfill\\Ctype\\Ctype' => $vendorDir . '/symfony/polyfill-ctype/Ctype.php',
'Symfony\\Polyfill\\Mbstring\\Mbstring' => $vendorDir . '/symfony/polyfill-mbstring/Mbstring.php',
'Symfony\\Polyfill\\Php70\\Php70' => $vendorDir . '/symfony/polyfill-php70/Php70.php',
'Symfony\\Polyfill\\Php72\\Php72' => $vendorDir . '/symfony/polyfill-php72/Php72.php',
'Symfony\\Thanks\\Command\\ThanksCommand' => $vendorDir . '/symfony/thanks/src/Command/ThanksCommand.php',
'Symfony\\Thanks\\GitHubClient' => $vendorDir . '/symfony/thanks/src/GitHubClient.php',
'Symfony\\Thanks\\Thanks' => $vendorDir . '/symfony/thanks/src/Thanks.php',
'Tests\\CreatesApplication' => $baseDir . '/tests/CreatesApplication.php',
'Tests\\Feature\\ExampleTest' => $baseDir . '/tests/Feature/ExampleTest.php',
@ -3407,7 +3482,6 @@ return array(
'TijsVerkoyen\\CssToInlineStyles\\Css\\Property\\Property' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/Css/Property/Property.php',
'TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Processor' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Processor.php',
'TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Rule' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Rule.php',
'TypeError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/TypeError.php',
'UsersSeeder' => $baseDir . '/database/seeds/UsersSeeder.php',
'Webmozart\\Assert\\Assert' => $vendorDir . '/webmozart/assert/src/Assert.php',
'Whoops\\Exception\\ErrorException' => $vendorDir . '/filp/whoops/src/Whoops/Exception/ErrorException.php',

View file

@ -7,15 +7,15 @@ $baseDir = dirname($vendorDir);
return array(
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
'5255c38a0faeba867671b61dfda6d864' => $vendorDir . '/paragonie/random_compat/lib/random.php',
'023d27dca8066ef29e6739335ea73bad' => $vendorDir . '/symfony/polyfill-php70/bootstrap.php',
'25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
'667aeda72477189d0494fecd327c3641' => $vendorDir . '/symfony/var-dumper/Resources/functions/dump.php',
'2c102faa651ef8ea5874edb585946bce' => $vendorDir . '/swiftmailer/swiftmailer/lib/swift_required.php',
'320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
'2c102faa651ef8ea5874edb585946bce' => $vendorDir . '/swiftmailer/swiftmailer/lib/swift_required.php',
'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php',
'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php',
'801c31d8ed748cfa537fa45402288c95' => $vendorDir . '/psy/psysh/src/functions.php',
'6124b4c8570aa390c21fafd04a26c69f' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
'538ca81a9a966a6716601ecf48f4eaef' => $vendorDir . '/opis/closure/functions.php',
'801c31d8ed748cfa537fa45402288c95' => $vendorDir . '/psy/psysh/src/functions.php',
'37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php',
'f0906e6318348a765ffb6eb24e0d0938' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/helpers.php',
'58571171fd5812e6e447dce228f52f4d' => $vendorDir . '/laravel/framework/src/Illuminate/Support/helpers.php',

View file

@ -9,7 +9,5 @@ return array(
'Prophecy\\' => array($vendorDir . '/phpspec/prophecy/src'),
'Parsedown' => array($vendorDir . '/erusev/parsedown'),
'Mockery' => array($vendorDir . '/mockery/mockery/library'),
'JakubOnderka\\PhpConsoleHighlighter' => array($vendorDir . '/jakub-onderka/php-console-highlighter/src'),
'JakubOnderka\\PhpConsoleColor' => array($vendorDir . '/jakub-onderka/php-console-color/src'),
'Doctrine\\Common\\Lexer\\' => array($vendorDir . '/doctrine/lexer/lib'),
);

View file

@ -13,7 +13,7 @@ return array(
'TijsVerkoyen\\CssToInlineStyles\\' => array($vendorDir . '/tijsverkoyen/css-to-inline-styles/src'),
'Tests\\' => array($baseDir . '/tests'),
'Symfony\\Thanks\\' => array($vendorDir . '/symfony/thanks/src'),
'Symfony\\Polyfill\\Php70\\' => array($vendorDir . '/symfony/polyfill-php70'),
'Symfony\\Polyfill\\Php72\\' => array($vendorDir . '/symfony/polyfill-php72'),
'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'),
'Symfony\\Component\\VarDumper\\' => array($vendorDir . '/symfony/var-dumper'),
@ -34,9 +34,12 @@ return array(
'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'),
'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),
'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'),
'Opis\\Closure\\' => array($vendorDir . '/opis/closure/src'),
'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'),
'League\\Flysystem\\' => array($vendorDir . '/league/flysystem/src'),
'Laravel\\Tinker\\' => array($vendorDir . '/laravel/tinker/src'),
'JakubOnderka\\PhpConsoleHighlighter\\' => array($vendorDir . '/jakub-onderka/php-console-highlighter/src'),
'JakubOnderka\\PhpConsoleColor\\' => array($vendorDir . '/jakub-onderka/php-console-color/src'),
'Illuminate\\' => array($vendorDir . '/laravel/framework/src/Illuminate'),
'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'),
'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'),
@ -48,7 +51,7 @@ return array(
'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'),
'Doctrine\\Common\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib/Doctrine/Common/Inflector'),
'DeepCopy\\' => array($vendorDir . '/myclabs/deep-copy/src/DeepCopy'),
'Cron\\' => array($vendorDir . '/mtdowling/cron-expression/src/Cron'),
'Cron\\' => array($vendorDir . '/dragonmantank/cron-expression/src/Cron'),
'Collective\\Html\\' => array($vendorDir . '/laravelcollective/html/src'),
'App\\' => array($baseDir . '/app'),
'' => array($vendorDir . '/nesbot/carbon/src'),

View file

@ -8,15 +8,15 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
{
public static $files = array (
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
'5255c38a0faeba867671b61dfda6d864' => __DIR__ . '/..' . '/paragonie/random_compat/lib/random.php',
'023d27dca8066ef29e6739335ea73bad' => __DIR__ . '/..' . '/symfony/polyfill-php70/bootstrap.php',
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
'667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php',
'2c102faa651ef8ea5874edb585946bce' => __DIR__ . '/..' . '/swiftmailer/swiftmailer/lib/swift_required.php',
'320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
'2c102faa651ef8ea5874edb585946bce' => __DIR__ . '/..' . '/swiftmailer/swiftmailer/lib/swift_required.php',
'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php',
'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php',
'801c31d8ed748cfa537fa45402288c95' => __DIR__ . '/..' . '/psy/psysh/src/functions.php',
'6124b4c8570aa390c21fafd04a26c69f' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
'538ca81a9a966a6716601ecf48f4eaef' => __DIR__ . '/..' . '/opis/closure/functions.php',
'801c31d8ed748cfa537fa45402288c95' => __DIR__ . '/..' . '/psy/psysh/src/functions.php',
'37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php',
'f0906e6318348a765ffb6eb24e0d0938' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/helpers.php',
'58571171fd5812e6e447dce228f52f4d' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/helpers.php',
@ -46,7 +46,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'S' =>
array (
'Symfony\\Thanks\\' => 15,
'Symfony\\Polyfill\\Php70\\' => 23,
'Symfony\\Polyfill\\Php72\\' => 23,
'Symfony\\Polyfill\\Mbstring\\' => 26,
'Symfony\\Polyfill\\Ctype\\' => 23,
'Symfony\\Component\\VarDumper\\' => 28,
@ -74,6 +74,10 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Psr\\Container\\' => 14,
'PhpParser\\' => 10,
),
'O' =>
array (
'Opis\\Closure\\' => 13,
),
'M' =>
array (
'Monolog\\' => 8,
@ -83,6 +87,11 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'League\\Flysystem\\' => 17,
'Laravel\\Tinker\\' => 15,
),
'J' =>
array (
'JakubOnderka\\PhpConsoleHighlighter\\' => 35,
'JakubOnderka\\PhpConsoleColor\\' => 29,
),
'I' =>
array (
'Illuminate\\' => 11,
@ -151,9 +160,9 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
array (
0 => __DIR__ . '/..' . '/symfony/thanks/src',
),
'Symfony\\Polyfill\\Php70\\' =>
'Symfony\\Polyfill\\Php72\\' =>
array (
0 => __DIR__ . '/..' . '/symfony/polyfill-php70',
0 => __DIR__ . '/..' . '/symfony/polyfill-php72',
),
'Symfony\\Polyfill\\Mbstring\\' =>
array (
@ -235,6 +244,10 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
array (
0 => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser',
),
'Opis\\Closure\\' =>
array (
0 => __DIR__ . '/..' . '/opis/closure/src',
),
'Monolog\\' =>
array (
0 => __DIR__ . '/..' . '/monolog/monolog/src/Monolog',
@ -247,6 +260,14 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
array (
0 => __DIR__ . '/..' . '/laravel/tinker/src',
),
'JakubOnderka\\PhpConsoleHighlighter\\' =>
array (
0 => __DIR__ . '/..' . '/jakub-onderka/php-console-highlighter/src',
),
'JakubOnderka\\PhpConsoleColor\\' =>
array (
0 => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src',
),
'Illuminate\\' =>
array (
0 => __DIR__ . '/..' . '/laravel/framework/src/Illuminate',
@ -293,7 +314,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
),
'Cron\\' =>
array (
0 => __DIR__ . '/..' . '/mtdowling/cron-expression/src/Cron',
0 => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron',
),
'Collective\\Html\\' =>
array (
@ -328,17 +349,6 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
0 => __DIR__ . '/..' . '/mockery/mockery/library',
),
),
'J' =>
array (
'JakubOnderka\\PhpConsoleHighlighter' =>
array (
0 => __DIR__ . '/..' . '/jakub-onderka/php-console-highlighter/src',
),
'JakubOnderka\\PhpConsoleColor' =>
array (
0 => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src',
),
),
'D' =>
array (
'Doctrine\\Common\\Lexer\\' =>
@ -356,6 +366,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'App\\Http\\Controllers\\Auth\\RegisterController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/RegisterController.php',
'App\\Http\\Controllers\\Auth\\ResetPasswordController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/ResetPasswordController.php',
'App\\Http\\Controllers\\Controller' => __DIR__ . '/../..' . '/app/Http/Controllers/Controller.php',
'App\\Http\\Controllers\\HomeController' => __DIR__ . '/../..' . '/app/Http/Controllers/HomeController.php',
'App\\Http\\Controllers\\ItemController' => __DIR__ . '/../..' . '/app/Http/Controllers/ItemController.php',
'App\\Http\\Controllers\\SettingsController' => __DIR__ . '/../..' . '/app/Http/Controllers/SettingsController.php',
'App\\Http\\Controllers\\TagController' => __DIR__ . '/../..' . '/app/Http/Controllers/TagController.php',
@ -437,12 +448,11 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'App\\SupportedApps\\pyLoad' => __DIR__ . '/../..' . '/app/SupportedApps/pyLoad.php',
'App\\SupportedApps\\ruTorrent' => __DIR__ . '/../..' . '/app/SupportedApps/ruTorrent.php',
'App\\User' => __DIR__ . '/../..' . '/app/User.php',
'ArithmeticError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php',
'AssertionError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/AssertionError.php',
'Carbon\\Carbon' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Carbon.php',
'Carbon\\CarbonInterval' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/CarbonInterval.php',
'Carbon\\CarbonPeriod' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/CarbonPeriod.php',
'Carbon\\Exceptions\\InvalidDateException' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php',
'Carbon\\Laravel\\ServiceProvider' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Laravel/ServiceProvider.php',
'Carbon\\Translator' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Translator.php',
'Collective\\Html\\Componentable' => __DIR__ . '/..' . '/laravelcollective/html/src/Componentable.php',
'Collective\\Html\\Eloquent\\FormAccessible' => __DIR__ . '/..' . '/laravelcollective/html/src/Eloquent/FormAccessible.php',
@ -451,16 +461,15 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Collective\\Html\\HtmlBuilder' => __DIR__ . '/..' . '/laravelcollective/html/src/HtmlBuilder.php',
'Collective\\Html\\HtmlFacade' => __DIR__ . '/..' . '/laravelcollective/html/src/HtmlFacade.php',
'Collective\\Html\\HtmlServiceProvider' => __DIR__ . '/..' . '/laravelcollective/html/src/HtmlServiceProvider.php',
'Cron\\AbstractField' => __DIR__ . '/..' . '/mtdowling/cron-expression/src/Cron/AbstractField.php',
'Cron\\CronExpression' => __DIR__ . '/..' . '/mtdowling/cron-expression/src/Cron/CronExpression.php',
'Cron\\DayOfMonthField' => __DIR__ . '/..' . '/mtdowling/cron-expression/src/Cron/DayOfMonthField.php',
'Cron\\DayOfWeekField' => __DIR__ . '/..' . '/mtdowling/cron-expression/src/Cron/DayOfWeekField.php',
'Cron\\FieldFactory' => __DIR__ . '/..' . '/mtdowling/cron-expression/src/Cron/FieldFactory.php',
'Cron\\FieldInterface' => __DIR__ . '/..' . '/mtdowling/cron-expression/src/Cron/FieldInterface.php',
'Cron\\HoursField' => __DIR__ . '/..' . '/mtdowling/cron-expression/src/Cron/HoursField.php',
'Cron\\MinutesField' => __DIR__ . '/..' . '/mtdowling/cron-expression/src/Cron/MinutesField.php',
'Cron\\MonthField' => __DIR__ . '/..' . '/mtdowling/cron-expression/src/Cron/MonthField.php',
'Cron\\YearField' => __DIR__ . '/..' . '/mtdowling/cron-expression/src/Cron/YearField.php',
'Cron\\AbstractField' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/AbstractField.php',
'Cron\\CronExpression' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/CronExpression.php',
'Cron\\DayOfMonthField' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/DayOfMonthField.php',
'Cron\\DayOfWeekField' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/DayOfWeekField.php',
'Cron\\FieldFactory' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/FieldFactory.php',
'Cron\\FieldInterface' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/FieldInterface.php',
'Cron\\HoursField' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/HoursField.php',
'Cron\\MinutesField' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/MinutesField.php',
'Cron\\MonthField' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/MonthField.php',
'DatabaseSeeder' => __DIR__ . '/../..' . '/database/seeds/DatabaseSeeder.php',
'DeepCopy\\DeepCopy' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/DeepCopy.php',
'DeepCopy\\Exception\\CloneException' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php',
@ -485,7 +494,6 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'DeepCopy\\TypeFilter\\Spl\\SplDoublyLinkedListFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedListFilter.php',
'DeepCopy\\TypeFilter\\TypeFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php',
'DeepCopy\\TypeMatcher\\TypeMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeMatcher/TypeMatcher.php',
'DivisionByZeroError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/DivisionByZeroError.php',
'Doctrine\\Common\\Inflector\\Inflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php',
'Doctrine\\Common\\Lexer\\AbstractLexer' => __DIR__ . '/..' . '/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php',
'Doctrine\\Instantiator\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php',
@ -564,10 +572,10 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Egulias\\EmailValidator\\Warning\\QuotedString' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/QuotedString.php',
'Egulias\\EmailValidator\\Warning\\TLD' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/TLD.php',
'Egulias\\EmailValidator\\Warning\\Warning' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/Warning.php',
'Error' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/Error.php',
'Faker\\Calculator\\Iban' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Calculator/Iban.php',
'Faker\\Calculator\\Inn' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Calculator/Inn.php',
'Faker\\Calculator\\Luhn' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Calculator/Luhn.php',
'Faker\\Calculator\\TCNo' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Calculator/TCNo.php',
'Faker\\DefaultGenerator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/DefaultGenerator.php',
'Faker\\Documentor' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Documentor.php',
'Faker\\Factory' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Factory.php',
@ -872,6 +880,12 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\me_ME\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/me_ME/PhoneNumber.php',
'Faker\\Provider\\mn_MN\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/mn_MN/Person.php',
'Faker\\Provider\\mn_MN\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/mn_MN/PhoneNumber.php',
'Faker\\Provider\\ms_MY\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Address.php',
'Faker\\Provider\\ms_MY\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Company.php',
'Faker\\Provider\\ms_MY\\Miscellaneous' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Miscellaneous.php',
'Faker\\Provider\\ms_MY\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Payment.php',
'Faker\\Provider\\ms_MY\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Person.php',
'Faker\\Provider\\ms_MY\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/PhoneNumber.php',
'Faker\\Provider\\nb_NO\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Address.php',
'Faker\\Provider\\nb_NO\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Company.php',
'Faker\\Provider\\nb_NO\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Payment.php',
@ -937,6 +951,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\sk_SK\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Person.php',
'Faker\\Provider\\sk_SK\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sk_SK/PhoneNumber.php',
'Faker\\Provider\\sl_SI\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Address.php',
'Faker\\Provider\\sl_SI\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Company.php',
'Faker\\Provider\\sl_SI\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Internet.php',
'Faker\\Provider\\sl_SI\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Payment.php',
'Faker\\Provider\\sl_SI\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Person.php',
@ -956,12 +971,14 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\sv_SE\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Person.php',
'Faker\\Provider\\sv_SE\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sv_SE/PhoneNumber.php',
'Faker\\Provider\\th_TH\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Address.php',
'Faker\\Provider\\th_TH\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Color.php',
'Faker\\Provider\\th_TH\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Company.php',
'Faker\\Provider\\th_TH\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Internet.php',
'Faker\\Provider\\th_TH\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Payment.php',
'Faker\\Provider\\th_TH\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/PhoneNumber.php',
'Faker\\Provider\\tr_TR\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Address.php',
'Faker\\Provider\\tr_TR\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Color.php',
'Faker\\Provider\\tr_TR\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Company.php',
'Faker\\Provider\\tr_TR\\DateTime' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/DateTime.php',
'Faker\\Provider\\tr_TR\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Internet.php',
'Faker\\Provider\\tr_TR\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Payment.php',
@ -971,10 +988,10 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\uk_UA\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Color.php',
'Faker\\Provider\\uk_UA\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Company.php',
'Faker\\Provider\\uk_UA\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Internet.php',
'Faker\\Provider\\uk_UA\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Payment.php',
'Faker\\Provider\\uk_UA\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Person.php',
'Faker\\Provider\\uk_UA\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php',
'Faker\\Provider\\uk_UA\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Text.php',
'Faker\\Provider\\uk_Ua\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Payment.php',
'Faker\\Provider\\vi_VN\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Address.php',
'Faker\\Provider\\vi_VN\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Color.php',
'Faker\\Provider\\vi_VN\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Internet.php',
@ -1161,12 +1178,17 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Auth\\Events\\Logout' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Logout.php',
'Illuminate\\Auth\\Events\\PasswordReset' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/PasswordReset.php',
'Illuminate\\Auth\\Events\\Registered' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Registered.php',
'Illuminate\\Auth\\Events\\Verified' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Verified.php',
'Illuminate\\Auth\\GenericUser' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/GenericUser.php',
'Illuminate\\Auth\\GuardHelpers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/GuardHelpers.php',
'Illuminate\\Auth\\Listeners\\SendEmailVerificationNotification' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Listeners/SendEmailVerificationNotification.php',
'Illuminate\\Auth\\Middleware\\Authenticate' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php',
'Illuminate\\Auth\\Middleware\\AuthenticateWithBasicAuth' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Middleware/AuthenticateWithBasicAuth.php',
'Illuminate\\Auth\\Middleware\\Authorize' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Middleware/Authorize.php',
'Illuminate\\Auth\\Middleware\\EnsureEmailIsVerified' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Middleware/EnsureEmailIsVerified.php',
'Illuminate\\Auth\\MustVerifyEmail' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/MustVerifyEmail.php',
'Illuminate\\Auth\\Notifications\\ResetPassword' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php',
'Illuminate\\Auth\\Notifications\\VerifyEmail' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Notifications/VerifyEmail.php',
'Illuminate\\Auth\\Passwords\\CanResetPassword' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Passwords/CanResetPassword.php',
'Illuminate\\Auth\\Passwords\\DatabaseTokenRepository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Passwords/DatabaseTokenRepository.php',
'Illuminate\\Auth\\Passwords\\PasswordBroker' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBroker.php',
@ -1235,15 +1257,17 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Console\\GeneratorCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/GeneratorCommand.php',
'Illuminate\\Console\\OutputStyle' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/OutputStyle.php',
'Illuminate\\Console\\Parser' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Parser.php',
'Illuminate\\Console\\Scheduling\\CacheMutex' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/CacheMutex.php',
'Illuminate\\Console\\Scheduling\\CacheEventMutex' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php',
'Illuminate\\Console\\Scheduling\\CacheSchedulingMutex' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/CacheSchedulingMutex.php',
'Illuminate\\Console\\Scheduling\\CallbackEvent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php',
'Illuminate\\Console\\Scheduling\\CommandBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/CommandBuilder.php',
'Illuminate\\Console\\Scheduling\\Event' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/Event.php',
'Illuminate\\Console\\Scheduling\\EventMutex' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/EventMutex.php',
'Illuminate\\Console\\Scheduling\\ManagesFrequencies' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/ManagesFrequencies.php',
'Illuminate\\Console\\Scheduling\\Mutex' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/Mutex.php',
'Illuminate\\Console\\Scheduling\\Schedule' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/Schedule.php',
'Illuminate\\Console\\Scheduling\\ScheduleFinishCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php',
'Illuminate\\Console\\Scheduling\\ScheduleRunCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php',
'Illuminate\\Console\\Scheduling\\SchedulingMutex' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/SchedulingMutex.php',
'Illuminate\\Container\\BoundMethod' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Container/BoundMethod.php',
'Illuminate\\Container\\Container' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Container/Container.php',
'Illuminate\\Container\\ContextualBindingBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Container/ContextualBindingBuilder.php',
@ -1254,6 +1278,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Contracts\\Auth\\CanResetPassword' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/CanResetPassword.php',
'Illuminate\\Contracts\\Auth\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/Factory.php',
'Illuminate\\Contracts\\Auth\\Guard' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/Guard.php',
'Illuminate\\Contracts\\Auth\\MustVerifyEmail' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/MustVerifyEmail.php',
'Illuminate\\Contracts\\Auth\\PasswordBroker' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/PasswordBroker.php',
'Illuminate\\Contracts\\Auth\\PasswordBrokerFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/PasswordBrokerFactory.php',
'Illuminate\\Contracts\\Auth\\StatefulGuard' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/StatefulGuard.php',
@ -1287,12 +1312,12 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Contracts\\Events\\Dispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Events/Dispatcher.php',
'Illuminate\\Contracts\\Filesystem\\Cloud' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Cloud.php',
'Illuminate\\Contracts\\Filesystem\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Factory.php',
'Illuminate\\Contracts\\Filesystem\\FileExistsException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Filesystem/FileExistsException.php',
'Illuminate\\Contracts\\Filesystem\\FileNotFoundException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Filesystem/FileNotFoundException.php',
'Illuminate\\Contracts\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Filesystem.php',
'Illuminate\\Contracts\\Foundation\\Application' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Foundation/Application.php',
'Illuminate\\Contracts\\Hashing\\Hasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Hashing/Hasher.php',
'Illuminate\\Contracts\\Http\\Kernel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Http/Kernel.php',
'Illuminate\\Contracts\\Logging\\Log' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Logging/Log.php',
'Illuminate\\Contracts\\Mail\\MailQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Mail/MailQueue.php',
'Illuminate\\Contracts\\Mail\\Mailable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Mail/Mailable.php',
'Illuminate\\Contracts\\Mail\\Mailer' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Mail/Mailer.php',
@ -1311,6 +1336,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Contracts\\Queue\\QueueableCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/QueueableCollection.php',
'Illuminate\\Contracts\\Queue\\QueueableEntity' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/QueueableEntity.php',
'Illuminate\\Contracts\\Queue\\ShouldQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/ShouldQueue.php',
'Illuminate\\Contracts\\Redis\\Connection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Redis/Connection.php',
'Illuminate\\Contracts\\Redis\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Redis/Factory.php',
'Illuminate\\Contracts\\Redis\\LimiterTimeoutException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Redis/LimiterTimeoutException.php',
'Illuminate\\Contracts\\Routing\\BindingRegistrar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Routing/BindingRegistrar.php',
@ -1326,6 +1352,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Contracts\\Support\\MessageProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/MessageProvider.php',
'Illuminate\\Contracts\\Support\\Renderable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/Renderable.php',
'Illuminate\\Contracts\\Support\\Responsable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/Responsable.php',
'Illuminate\\Contracts\\Translation\\HasLocalePreference' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Translation/HasLocalePreference.php',
'Illuminate\\Contracts\\Translation\\Loader' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Translation/Loader.php',
'Illuminate\\Contracts\\Translation\\Translator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Translation/Translator.php',
'Illuminate\\Contracts\\Validation\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Validation/Factory.php',
@ -1364,6 +1391,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Database\\Console\\Migrations\\ResetCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/ResetCommand.php',
'Illuminate\\Database\\Console\\Migrations\\RollbackCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/RollbackCommand.php',
'Illuminate\\Database\\Console\\Migrations\\StatusCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/StatusCommand.php',
'Illuminate\\Database\\Console\\Migrations\\TableGuesser' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/TableGuesser.php',
'Illuminate\\Database\\Console\\Seeds\\SeedCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php',
'Illuminate\\Database\\Console\\Seeds\\SeederMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Seeds/SeederMakeCommand.php',
'Illuminate\\Database\\DatabaseManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/DatabaseManager.php',
@ -1390,6 +1418,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Database\\Eloquent\\RelationNotFoundException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/RelationNotFoundException.php',
'Illuminate\\Database\\Eloquent\\Relations\\BelongsTo' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php',
'Illuminate\\Database\\Eloquent\\Relations\\BelongsToMany' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php',
'Illuminate\\Database\\Eloquent\\Relations\\Concerns\\AsPivot' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/AsPivot.php',
'Illuminate\\Database\\Eloquent\\Relations\\Concerns\\InteractsWithPivotTable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php',
'Illuminate\\Database\\Eloquent\\Relations\\Concerns\\SupportsDefaultModels' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/SupportsDefaultModels.php',
'Illuminate\\Database\\Eloquent\\Relations\\HasMany' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasMany.php',
@ -1440,6 +1469,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Database\\SQLiteConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/SQLiteConnection.php',
'Illuminate\\Database\\Schema\\Blueprint' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php',
'Illuminate\\Database\\Schema\\Builder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Builder.php',
'Illuminate\\Database\\Schema\\ColumnDefinition' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/ColumnDefinition.php',
'Illuminate\\Database\\Schema\\Grammars\\ChangeColumn' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/ChangeColumn.php',
'Illuminate\\Database\\Schema\\Grammars\\Grammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php',
'Illuminate\\Database\\Schema\\Grammars\\MySqlGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/MySqlGrammar.php',
@ -1474,6 +1504,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Foundation\\Auth\\SendsPasswordResetEmails' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/SendsPasswordResetEmails.php',
'Illuminate\\Foundation\\Auth\\ThrottlesLogins' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/ThrottlesLogins.php',
'Illuminate\\Foundation\\Auth\\User' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/User.php',
'Illuminate\\Foundation\\Auth\\VerifiesEmails' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/VerifiesEmails.php',
'Illuminate\\Foundation\\Bootstrap\\BootProviders' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php',
'Illuminate\\Foundation\\Bootstrap\\HandleExceptions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php',
'Illuminate\\Foundation\\Bootstrap\\LoadConfiguration' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php',
@ -1487,6 +1518,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Foundation\\Bus\\PendingDispatch' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php',
'Illuminate\\Foundation\\ComposerScripts' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/ComposerScripts.php',
'Illuminate\\Foundation\\Console\\AppNameCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/AppNameCommand.php',
'Illuminate\\Foundation\\Console\\ChannelMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ChannelMakeCommand.php',
'Illuminate\\Foundation\\Console\\ClearCompiledCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ClearCompiledCommand.php',
'Illuminate\\Foundation\\Console\\ClosureCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ClosureCommand.php',
'Illuminate\\Foundation\\Console\\ConfigCacheCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ConfigCacheCommand.php',
@ -1504,6 +1536,8 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Foundation\\Console\\MailMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/MailMakeCommand.php',
'Illuminate\\Foundation\\Console\\ModelMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ModelMakeCommand.php',
'Illuminate\\Foundation\\Console\\NotificationMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/NotificationMakeCommand.php',
'Illuminate\\Foundation\\Console\\ObserverMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ObserverMakeCommand.php',
'Illuminate\\Foundation\\Console\\OptimizeClearCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/OptimizeClearCommand.php',
'Illuminate\\Foundation\\Console\\OptimizeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/OptimizeCommand.php',
'Illuminate\\Foundation\\Console\\PackageDiscoverCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/PackageDiscoverCommand.php',
'Illuminate\\Foundation\\Console\\PolicyMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/PolicyMakeCommand.php',
@ -1526,11 +1560,13 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Foundation\\Console\\TestMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/TestMakeCommand.php',
'Illuminate\\Foundation\\Console\\UpCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/UpCommand.php',
'Illuminate\\Foundation\\Console\\VendorPublishCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php',
'Illuminate\\Foundation\\Console\\ViewCacheCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ViewCacheCommand.php',
'Illuminate\\Foundation\\Console\\ViewClearCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ViewClearCommand.php',
'Illuminate\\Foundation\\EnvironmentDetector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/EnvironmentDetector.php',
'Illuminate\\Foundation\\Events\\Dispatchable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Events/Dispatchable.php',
'Illuminate\\Foundation\\Events\\LocaleUpdated' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Events/LocaleUpdated.php',
'Illuminate\\Foundation\\Exceptions\\Handler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php',
'Illuminate\\Foundation\\Exceptions\\WhoopsHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Exceptions/WhoopsHandler.php',
'Illuminate\\Foundation\\Http\\Events\\RequestHandled' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Events/RequestHandled.php',
'Illuminate\\Foundation\\Http\\Exceptions\\MaintenanceModeException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Exceptions/MaintenanceModeException.php',
'Illuminate\\Foundation\\Http\\FormRequest' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php',
@ -1562,10 +1598,12 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Foundation\\Testing\\Concerns\\MakesHttpRequests' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php',
'Illuminate\\Foundation\\Testing\\Concerns\\MocksApplicationServices' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MocksApplicationServices.php',
'Illuminate\\Foundation\\Testing\\Constraints\\HasInDatabase' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/HasInDatabase.php',
'Illuminate\\Foundation\\Testing\\Constraints\\SeeInOrder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SeeInOrder.php',
'Illuminate\\Foundation\\Testing\\Constraints\\SoftDeletedInDatabase' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SoftDeletedInDatabase.php',
'Illuminate\\Foundation\\Testing\\DatabaseMigrations' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseMigrations.php',
'Illuminate\\Foundation\\Testing\\DatabaseTransactions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseTransactions.php',
'Illuminate\\Foundation\\Testing\\HttpException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/HttpException.php',
'Illuminate\\Foundation\\Testing\\PendingCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/PendingCommand.php',
'Illuminate\\Foundation\\Testing\\RefreshDatabase' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php',
'Illuminate\\Foundation\\Testing\\RefreshDatabaseState' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabaseState.php',
'Illuminate\\Foundation\\Testing\\TestCase' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php',
@ -1574,24 +1612,31 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Foundation\\Testing\\WithoutEvents' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutEvents.php',
'Illuminate\\Foundation\\Testing\\WithoutMiddleware' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutMiddleware.php',
'Illuminate\\Foundation\\Validation\\ValidatesRequests' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php',
'Illuminate\\Hashing\\AbstractHasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/AbstractHasher.php',
'Illuminate\\Hashing\\Argon2IdHasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/Argon2IdHasher.php',
'Illuminate\\Hashing\\ArgonHasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/ArgonHasher.php',
'Illuminate\\Hashing\\BcryptHasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php',
'Illuminate\\Hashing\\HashManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/HashManager.php',
'Illuminate\\Hashing\\HashServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/HashServiceProvider.php',
'Illuminate\\Http\\Concerns\\InteractsWithContentTypes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php',
'Illuminate\\Http\\Concerns\\InteractsWithFlashData' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithFlashData.php',
'Illuminate\\Http\\Concerns\\InteractsWithInput' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php',
'Illuminate\\Http\\Exceptions\\HttpResponseException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Exceptions/HttpResponseException.php',
'Illuminate\\Http\\Exceptions\\PostTooLargeException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Exceptions/PostTooLargeException.php',
'Illuminate\\Http\\Exceptions\\ThrottleRequestsException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Exceptions/ThrottleRequestsException.php',
'Illuminate\\Http\\File' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/File.php',
'Illuminate\\Http\\FileHelpers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/FileHelpers.php',
'Illuminate\\Http\\JsonResponse' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/JsonResponse.php',
'Illuminate\\Http\\Middleware\\CheckResponseForModifications' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Middleware/CheckResponseForModifications.php',
'Illuminate\\Http\\Middleware\\FrameGuard' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Middleware/FrameGuard.php',
'Illuminate\\Http\\Middleware\\SetCacheHeaders' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Middleware/SetCacheHeaders.php',
'Illuminate\\Http\\RedirectResponse' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/RedirectResponse.php',
'Illuminate\\Http\\Request' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Request.php',
'Illuminate\\Http\\Resources\\CollectsResources' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/CollectsResources.php',
'Illuminate\\Http\\Resources\\ConditionallyLoadsAttributes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/ConditionallyLoadsAttributes.php',
'Illuminate\\Http\\Resources\\DelegatesToResource' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php',
'Illuminate\\Http\\Resources\\Json\\AnonymousResourceCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Json/AnonymousResourceCollection.php',
'Illuminate\\Http\\Resources\\Json\\JsonResource' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Json/JsonResource.php',
'Illuminate\\Http\\Resources\\Json\\PaginatedResourceResponse' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Json/PaginatedResourceResponse.php',
'Illuminate\\Http\\Resources\\Json\\Resource' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Json/Resource.php',
'Illuminate\\Http\\Resources\\Json\\ResourceCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceCollection.php',
@ -1606,8 +1651,10 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Http\\Testing\\MimeType' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Testing/MimeType.php',
'Illuminate\\Http\\UploadedFile' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/UploadedFile.php',
'Illuminate\\Log\\Events\\MessageLogged' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/Events/MessageLogged.php',
'Illuminate\\Log\\LogManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/LogManager.php',
'Illuminate\\Log\\LogServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/LogServiceProvider.php',
'Illuminate\\Log\\Writer' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/Writer.php',
'Illuminate\\Log\\Logger' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/Logger.php',
'Illuminate\\Log\\ParsesLogConfiguration' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/ParsesLogConfiguration.php',
'Illuminate\\Mail\\Events\\MessageSending' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Events/MessageSending.php',
'Illuminate\\Mail\\Events\\MessageSent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Events/MessageSent.php',
'Illuminate\\Mail\\MailServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php',
@ -1664,6 +1711,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Pipeline\\Pipeline' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pipeline/Pipeline.php',
'Illuminate\\Pipeline\\PipelineServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pipeline/PipelineServiceProvider.php',
'Illuminate\\Queue\\BeanstalkdQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/BeanstalkdQueue.php',
'Illuminate\\Queue\\CallQueuedClosure' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/CallQueuedClosure.php',
'Illuminate\\Queue\\CallQueuedHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php',
'Illuminate\\Queue\\Capsule\\Manager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Capsule/Manager.php',
'Illuminate\\Queue\\Connectors\\BeanstalkdConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Connectors/BeanstalkdConnector.php',
@ -1713,6 +1761,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Queue\\QueueManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/QueueManager.php',
'Illuminate\\Queue\\QueueServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php',
'Illuminate\\Queue\\RedisQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/RedisQueue.php',
'Illuminate\\Queue\\SerializableClosure' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/SerializableClosure.php',
'Illuminate\\Queue\\SerializesAndRestoresModelIdentifiers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php',
'Illuminate\\Queue\\SerializesModels' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/SerializesModels.php',
'Illuminate\\Queue\\SqsQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/SqsQueue.php',
@ -1726,6 +1775,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Redis\\Connections\\PredisConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connections/PredisConnection.php',
'Illuminate\\Redis\\Connectors\\PhpRedisConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php',
'Illuminate\\Redis\\Connectors\\PredisConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connectors/PredisConnector.php',
'Illuminate\\Redis\\Events\\CommandExecuted' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Events/CommandExecuted.php',
'Illuminate\\Redis\\Limiters\\ConcurrencyLimiter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiter.php',
'Illuminate\\Redis\\Limiters\\ConcurrencyLimiterBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiterBuilder.php',
'Illuminate\\Redis\\Limiters\\DurationLimiter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiter.php',
@ -1739,6 +1789,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Routing\\ControllerDispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php',
'Illuminate\\Routing\\ControllerMiddlewareOptions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/ControllerMiddlewareOptions.php',
'Illuminate\\Routing\\Events\\RouteMatched' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Events/RouteMatched.php',
'Illuminate\\Routing\\Exceptions\\InvalidSignatureException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Exceptions/InvalidSignatureException.php',
'Illuminate\\Routing\\Exceptions\\UrlGenerationException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Exceptions/UrlGenerationException.php',
'Illuminate\\Routing\\ImplicitRouteBinding' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php',
'Illuminate\\Routing\\Matching\\HostValidator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Matching/HostValidator.php',
@ -1750,6 +1801,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Routing\\Middleware\\SubstituteBindings' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php',
'Illuminate\\Routing\\Middleware\\ThrottleRequests' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php',
'Illuminate\\Routing\\Middleware\\ThrottleRequestsWithRedis' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequestsWithRedis.php',
'Illuminate\\Routing\\Middleware\\ValidateSignature' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Middleware/ValidateSignature.php',
'Illuminate\\Routing\\PendingResourceRegistration' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/PendingResourceRegistration.php',
'Illuminate\\Routing\\Pipeline' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Pipeline.php',
'Illuminate\\Routing\\RedirectController' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RedirectController.php',
@ -1791,8 +1843,6 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Support\\Carbon' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Carbon.php',
'Illuminate\\Support\\Collection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Collection.php',
'Illuminate\\Support\\Composer' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Composer.php',
'Illuminate\\Support\\Debug\\Dumper' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Debug/Dumper.php',
'Illuminate\\Support\\Debug\\HtmlDumper' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Debug/HtmlDumper.php',
'Illuminate\\Support\\Facades\\App' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/App.php',
'Illuminate\\Support\\Facades\\Artisan' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Artisan.php',
'Illuminate\\Support\\Facades\\Auth' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Auth.php',
@ -1847,6 +1897,8 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Support\\Testing\\Fakes\\PendingMailFake' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/PendingMailFake.php',
'Illuminate\\Support\\Testing\\Fakes\\QueueFake' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/QueueFake.php',
'Illuminate\\Support\\Traits\\CapsuleManagerTrait' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Traits/CapsuleManagerTrait.php',
'Illuminate\\Support\\Traits\\ForwardsCalls' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php',
'Illuminate\\Support\\Traits\\Localizable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Traits/Localizable.php',
'Illuminate\\Support\\Traits\\Macroable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Traits/Macroable.php',
'Illuminate\\Support\\ViewErrorBag' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/ViewErrorBag.php',
'Illuminate\\Translation\\ArrayLoader' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Translation/ArrayLoader.php',
@ -1867,6 +1919,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Validation\\Rules\\Exists' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/Exists.php',
'Illuminate\\Validation\\Rules\\In' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/In.php',
'Illuminate\\Validation\\Rules\\NotIn' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/NotIn.php',
'Illuminate\\Validation\\Rules\\RequiredIf' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/RequiredIf.php',
'Illuminate\\Validation\\Rules\\Unique' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/Unique.php',
'Illuminate\\Validation\\UnauthorizedException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/UnauthorizedException.php',
'Illuminate\\Validation\\ValidatesWhenResolvedTrait' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/ValidatesWhenResolvedTrait.php',
@ -1883,6 +1936,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\View\\Compilers\\Concerns\\CompilesComponents' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComponents.php',
'Illuminate\\View\\Compilers\\Concerns\\CompilesConditionals' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesConditionals.php',
'Illuminate\\View\\Compilers\\Concerns\\CompilesEchos' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesEchos.php',
'Illuminate\\View\\Compilers\\Concerns\\CompilesHelpers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesHelpers.php',
'Illuminate\\View\\Compilers\\Concerns\\CompilesIncludes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesIncludes.php',
'Illuminate\\View\\Compilers\\Concerns\\CompilesInjections' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesInjections.php',
'Illuminate\\View\\Compilers\\Concerns\\CompilesJson' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesJson.php',
@ -1909,9 +1963,9 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\View\\ViewFinderInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/ViewFinderInterface.php',
'Illuminate\\View\\ViewName' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/ViewName.php',
'Illuminate\\View\\ViewServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/ViewServiceProvider.php',
'JakubOnderka\\PhpConsoleColor\\ConsoleColor' => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/ConsoleColor.php',
'JakubOnderka\\PhpConsoleColor\\InvalidStyleException' => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/InvalidStyleException.php',
'JakubOnderka\\PhpConsoleHighlighter\\Highlighter' => __DIR__ . '/..' . '/jakub-onderka/php-console-highlighter/src/JakubOnderka/PhpConsoleHighlighter/Highlighter.php',
'JakubOnderka\\PhpConsoleColor\\ConsoleColor' => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src/ConsoleColor.php',
'JakubOnderka\\PhpConsoleColor\\InvalidStyleException' => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src/InvalidStyleException.php',
'JakubOnderka\\PhpConsoleHighlighter\\Highlighter' => __DIR__ . '/..' . '/jakub-onderka/php-console-highlighter/src/Highlighter.php',
'JsonSerializable' => __DIR__ . '/..' . '/nesbot/carbon/src/JsonSerializable.php',
'Laravel\\Tinker\\ClassAliasAutoloader' => __DIR__ . '/..' . '/laravel/tinker/src/ClassAliasAutoloader.php',
'Laravel\\Tinker\\Console\\TinkerCommand' => __DIR__ . '/..' . '/laravel/tinker/src/Console/TinkerCommand.php',
@ -1964,9 +2018,14 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'League\\Flysystem\\Util\\MimeType' => __DIR__ . '/..' . '/league/flysystem/src/Util/MimeType.php',
'League\\Flysystem\\Util\\StreamHasher' => __DIR__ . '/..' . '/league/flysystem/src/Util/StreamHasher.php',
'Mockery' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery.php',
'Mockery\\Adapter\\Phpunit\\Legacy\\TestListenerForV5' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/Legacy/TestListenerForV5.php',
'Mockery\\Adapter\\Phpunit\\Legacy\\TestListenerForV6' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/Legacy/TestListenerForV6.php',
'Mockery\\Adapter\\Phpunit\\Legacy\\TestListenerForV7' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/Legacy/TestListenerForV7.php',
'Mockery\\Adapter\\Phpunit\\Legacy\\TestListenerTrait' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/Legacy/TestListenerTrait.php',
'Mockery\\Adapter\\Phpunit\\MockeryPHPUnitIntegration' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegration.php',
'Mockery\\Adapter\\Phpunit\\MockeryTestCase' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryTestCase.php',
'Mockery\\Adapter\\Phpunit\\TestListener' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/TestListener.php',
'Mockery\\ClosureWrapper' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/ClosureWrapper.php',
'Mockery\\CompositeExpectation' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CompositeExpectation.php',
'Mockery\\Configuration' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Configuration.php',
'Mockery\\Container' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Container.php',
@ -2130,6 +2189,16 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Monolog\\Processor\\UidProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/UidProcessor.php',
'Monolog\\Processor\\WebProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/WebProcessor.php',
'Monolog\\Registry' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Registry.php',
'Opis\\Closure\\Analyzer' => __DIR__ . '/..' . '/opis/closure/src/Analyzer.php',
'Opis\\Closure\\ClosureContext' => __DIR__ . '/..' . '/opis/closure/src/ClosureContext.php',
'Opis\\Closure\\ClosureScope' => __DIR__ . '/..' . '/opis/closure/src/ClosureScope.php',
'Opis\\Closure\\ClosureStream' => __DIR__ . '/..' . '/opis/closure/src/ClosureStream.php',
'Opis\\Closure\\ISecurityProvider' => __DIR__ . '/..' . '/opis/closure/src/ISecurityProvider.php',
'Opis\\Closure\\ReflectionClosure' => __DIR__ . '/..' . '/opis/closure/src/ReflectionClosure.php',
'Opis\\Closure\\SecurityException' => __DIR__ . '/..' . '/opis/closure/src/SecurityException.php',
'Opis\\Closure\\SecurityProvider' => __DIR__ . '/..' . '/opis/closure/src/SecurityProvider.php',
'Opis\\Closure\\SelfReference' => __DIR__ . '/..' . '/opis/closure/src/SelfReference.php',
'Opis\\Closure\\SerializableClosure' => __DIR__ . '/..' . '/opis/closure/src/SerializableClosure.php',
'PHPUnit\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Exception.php',
'PHPUnit\\Framework\\Assert' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Assert.php',
'PHPUnit\\Framework\\AssertionFailedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/AssertionFailedError.php',
@ -2502,7 +2571,6 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'PHP_Token_XOR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
'PHP_Token_YIELD' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
'PHP_Token_YIELD_FROM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
'ParseError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/ParseError.php',
'Parsedown' => __DIR__ . '/..' . '/erusev/parsedown/Parsedown.php',
'PharIo\\Manifest\\Application' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Application.php',
'PharIo\\Manifest\\ApplicationName' => __DIR__ . '/..' . '/phar-io/manifest/src/values/ApplicationName.php',
@ -2582,6 +2650,8 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'PhpParser\\Builder\\Namespace_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php',
'PhpParser\\Builder\\Param' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Param.php',
'PhpParser\\Builder\\Property' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Property.php',
'PhpParser\\Builder\\TraitUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php',
'PhpParser\\Builder\\TraitUseAdaptation' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php',
'PhpParser\\Builder\\Trait_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Trait_.php',
'PhpParser\\Builder\\Use_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Use_.php',
'PhpParser\\Comment' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Comment.php',
@ -2814,6 +2884,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Prophecy\\Doubler\\ClassPatch\\ProphecySubjectPatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php',
'Prophecy\\Doubler\\ClassPatch\\ReflectionClassNewInstancePatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php',
'Prophecy\\Doubler\\ClassPatch\\SplFileInfoPatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php',
'Prophecy\\Doubler\\ClassPatch\\ThrowablePatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ThrowablePatch.php',
'Prophecy\\Doubler\\ClassPatch\\TraversablePatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php',
'Prophecy\\Doubler\\DoubleInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php',
'Prophecy\\Doubler\\Doubler' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php',
@ -3170,7 +3241,6 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/recursion-context/src/InvalidArgumentException.php',
'SebastianBergmann\\ResourceOperations\\ResourceOperations' => __DIR__ . '/..' . '/sebastian/resource-operations/src/ResourceOperations.php',
'SebastianBergmann\\Version' => __DIR__ . '/..' . '/sebastian/version/src/Version.php',
'SessionUpdateTimestampHandlerInterface' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/SessionUpdateTimestampHandlerInterface.php',
'SettingsSeeder' => __DIR__ . '/../..' . '/database/seeds/SettingsSeeder.php',
'Symfony\\Component\\Console\\Application' => __DIR__ . '/..' . '/symfony/console/Application.php',
'Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => __DIR__ . '/..' . '/symfony/console/CommandLoader/CommandLoaderInterface.php',
@ -3193,13 +3263,13 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\Console\\Event\\ConsoleCommandEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleCommandEvent.php',
'Symfony\\Component\\Console\\Event\\ConsoleErrorEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleErrorEvent.php',
'Symfony\\Component\\Console\\Event\\ConsoleEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleEvent.php',
'Symfony\\Component\\Console\\Event\\ConsoleExceptionEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleExceptionEvent.php',
'Symfony\\Component\\Console\\Event\\ConsoleTerminateEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleTerminateEvent.php',
'Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/CommandNotFoundException.php',
'Symfony\\Component\\Console\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/console/Exception/ExceptionInterface.php',
'Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidArgumentException.php',
'Symfony\\Component\\Console\\Exception\\InvalidOptionException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidOptionException.php',
'Symfony\\Component\\Console\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/console/Exception/LogicException.php',
'Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/NamespaceNotFoundException.php',
'Symfony\\Component\\Console\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/console/Exception/RuntimeException.php',
'Symfony\\Component\\Console\\Formatter\\OutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatter.php',
'Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterInterface.php',
@ -3220,6 +3290,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/SymfonyQuestionHelper.php',
'Symfony\\Component\\Console\\Helper\\Table' => __DIR__ . '/..' . '/symfony/console/Helper/Table.php',
'Symfony\\Component\\Console\\Helper\\TableCell' => __DIR__ . '/..' . '/symfony/console/Helper/TableCell.php',
'Symfony\\Component\\Console\\Helper\\TableRows' => __DIR__ . '/..' . '/symfony/console/Helper/TableRows.php',
'Symfony\\Component\\Console\\Helper\\TableSeparator' => __DIR__ . '/..' . '/symfony/console/Helper/TableSeparator.php',
'Symfony\\Component\\Console\\Helper\\TableStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TableStyle.php',
'Symfony\\Component\\Console\\Input\\ArgvInput' => __DIR__ . '/..' . '/symfony/console/Input/ArgvInput.php',
@ -3236,6 +3307,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\Console\\Output\\BufferedOutput' => __DIR__ . '/..' . '/symfony/console/Output/BufferedOutput.php',
'Symfony\\Component\\Console\\Output\\ConsoleOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutput.php',
'Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutputInterface.php',
'Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleSectionOutput.php',
'Symfony\\Component\\Console\\Output\\NullOutput' => __DIR__ . '/..' . '/symfony/console/Output/NullOutput.php',
'Symfony\\Component\\Console\\Output\\Output' => __DIR__ . '/..' . '/symfony/console/Output/Output.php',
'Symfony\\Component\\Console\\Output\\OutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/OutputInterface.php',
@ -3249,6 +3321,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\Console\\Terminal' => __DIR__ . '/..' . '/symfony/console/Terminal.php',
'Symfony\\Component\\Console\\Tester\\ApplicationTester' => __DIR__ . '/..' . '/symfony/console/Tester/ApplicationTester.php',
'Symfony\\Component\\Console\\Tester\\CommandTester' => __DIR__ . '/..' . '/symfony/console/Tester/CommandTester.php',
'Symfony\\Component\\Console\\Tester\\TesterTrait' => __DIR__ . '/..' . '/symfony/console/Tester/TesterTrait.php',
'Symfony\\Component\\CssSelector\\CssSelectorConverter' => __DIR__ . '/..' . '/symfony/css-selector/CssSelectorConverter.php',
'Symfony\\Component\\CssSelector\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/css-selector/Exception/ExceptionInterface.php',
'Symfony\\Component\\CssSelector\\Exception\\ExpressionErrorException' => __DIR__ . '/..' . '/symfony/css-selector/Exception/ExpressionErrorException.php',
@ -3303,7 +3376,6 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\Debug\\ErrorHandler' => __DIR__ . '/..' . '/symfony/debug/ErrorHandler.php',
'Symfony\\Component\\Debug\\ExceptionHandler' => __DIR__ . '/..' . '/symfony/debug/ExceptionHandler.php',
'Symfony\\Component\\Debug\\Exception\\ClassNotFoundException' => __DIR__ . '/..' . '/symfony/debug/Exception/ClassNotFoundException.php',
'Symfony\\Component\\Debug\\Exception\\ContextErrorException' => __DIR__ . '/..' . '/symfony/debug/Exception/ContextErrorException.php',
'Symfony\\Component\\Debug\\Exception\\FatalErrorException' => __DIR__ . '/..' . '/symfony/debug/Exception/FatalErrorException.php',
'Symfony\\Component\\Debug\\Exception\\FatalThrowableError' => __DIR__ . '/..' . '/symfony/debug/Exception/FatalThrowableError.php',
'Symfony\\Component\\Debug\\Exception\\FlattenException' => __DIR__ . '/..' . '/symfony/debug/Exception/FlattenException.php',
@ -3330,7 +3402,6 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\Finder\\Comparator\\DateComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/DateComparator.php',
'Symfony\\Component\\Finder\\Comparator\\NumberComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/NumberComparator.php',
'Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => __DIR__ . '/..' . '/symfony/finder/Exception/AccessDeniedException.php',
'Symfony\\Component\\Finder\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/finder/Exception/ExceptionInterface.php',
'Symfony\\Component\\Finder\\Finder' => __DIR__ . '/..' . '/symfony/finder/Finder.php',
'Symfony\\Component\\Finder\\Glob' => __DIR__ . '/..' . '/symfony/finder/Glob.php',
'Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/CustomFilterIterator.php',
@ -3340,7 +3411,6 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FileTypeFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilecontentFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilenameFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\FilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/PathFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php',
@ -3358,8 +3428,15 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\HttpFoundation\\ExpressionRequestMatcher' => __DIR__ . '/..' . '/symfony/http-foundation/ExpressionRequestMatcher.php',
'Symfony\\Component\\HttpFoundation\\FileBag' => __DIR__ . '/..' . '/symfony/http-foundation/FileBag.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\AccessDeniedException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/AccessDeniedException.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\CannotWriteFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/CannotWriteFileException.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\ExtensionFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/ExtensionFileException.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\FileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/FileException.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\FileNotFoundException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/FileNotFoundException.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\FormSizeFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/FormSizeFileException.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\IniSizeFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/IniSizeFileException.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\NoFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/NoFileException.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\NoTmpDirFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/NoTmpDirFileException.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\PartialFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/PartialFileException.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\UnexpectedTypeException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/UnexpectedTypeException.php',
'Symfony\\Component\\HttpFoundation\\File\\Exception\\UploadException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/UploadException.php',
'Symfony\\Component\\HttpFoundation\\File\\File' => __DIR__ . '/..' . '/symfony/http-foundation/File/File.php',
@ -3373,6 +3450,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\HttpFoundation\\File\\Stream' => __DIR__ . '/..' . '/symfony/http-foundation/File/Stream.php',
'Symfony\\Component\\HttpFoundation\\File\\UploadedFile' => __DIR__ . '/..' . '/symfony/http-foundation/File/UploadedFile.php',
'Symfony\\Component\\HttpFoundation\\HeaderBag' => __DIR__ . '/..' . '/symfony/http-foundation/HeaderBag.php',
'Symfony\\Component\\HttpFoundation\\HeaderUtils' => __DIR__ . '/..' . '/symfony/http-foundation/HeaderUtils.php',
'Symfony\\Component\\HttpFoundation\\IpUtils' => __DIR__ . '/..' . '/symfony/http-foundation/IpUtils.php',
'Symfony\\Component\\HttpFoundation\\JsonResponse' => __DIR__ . '/..' . '/symfony/http-foundation/JsonResponse.php',
'Symfony\\Component\\HttpFoundation\\ParameterBag' => __DIR__ . '/..' . '/symfony/http-foundation/ParameterBag.php',
@ -3395,22 +3473,20 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\HttpFoundation\\Session\\SessionBagProxy' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionBagProxy.php',
'Symfony\\Component\\HttpFoundation\\Session\\SessionInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionInterface.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\AbstractSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MemcacheSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MemcacheSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MemcachedSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MigratingSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MigratingSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MongoDbSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NativeFileSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NativeSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/NativeSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NullSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/NullSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\PdoSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\RedisSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\StrictSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\WriteCheckSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/WriteCheckSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MetadataBag' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/MetadataBag.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MockArraySessionStorage' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MockFileSessionStorage' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\NativeSessionStorage' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/NativeSessionStorage.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\PhpBridgeSessionStorage' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorage.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Proxy\\AbstractProxy' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Proxy\\NativeProxy' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Proxy/NativeProxy.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Proxy\\SessionHandlerProxy' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\SessionStorageInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/SessionStorageInterface.php',
'Symfony\\Component\\HttpFoundation\\StreamedResponse' => __DIR__ . '/..' . '/symfony/http-foundation/StreamedResponse.php',
@ -3424,7 +3500,6 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\HttpKernel\\CacheWarmer\\CacheWarmerInterface' => __DIR__ . '/..' . '/symfony/http-kernel/CacheWarmer/CacheWarmerInterface.php',
'Symfony\\Component\\HttpKernel\\CacheWarmer\\WarmableInterface' => __DIR__ . '/..' . '/symfony/http-kernel/CacheWarmer/WarmableInterface.php',
'Symfony\\Component\\HttpKernel\\Client' => __DIR__ . '/..' . '/symfony/http-kernel/Client.php',
'Symfony\\Component\\HttpKernel\\Config\\EnvParametersResource' => __DIR__ . '/..' . '/symfony/http-kernel/Config/EnvParametersResource.php',
'Symfony\\Component\\HttpKernel\\Config\\FileLocator' => __DIR__ . '/..' . '/symfony/http-kernel/Config/FileLocator.php',
'Symfony\\Component\\HttpKernel\\ControllerMetadata\\ArgumentMetadata' => __DIR__ . '/..' . '/symfony/http-kernel/ControllerMetadata/ArgumentMetadata.php',
'Symfony\\Component\\HttpKernel\\ControllerMetadata\\ArgumentMetadataFactory' => __DIR__ . '/..' . '/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactory.php',
@ -3436,6 +3511,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/RequestValueResolver.php',
'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\ServiceValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/ServiceValueResolver.php',
'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\SessionValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/SessionValueResolver.php',
'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\TraceableValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/TraceableValueResolver.php',
'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\VariadicValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/VariadicValueResolver.php',
'Symfony\\Component\\HttpKernel\\Controller\\ArgumentValueResolverInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentValueResolverInterface.php',
'Symfony\\Component\\HttpKernel\\Controller\\ContainerControllerResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ContainerControllerResolver.php',
@ -3457,11 +3533,9 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/RequestDataCollector.php',
'Symfony\\Component\\HttpKernel\\DataCollector\\RouterDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/RouterDataCollector.php',
'Symfony\\Component\\HttpKernel\\DataCollector\\TimeDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/TimeDataCollector.php',
'Symfony\\Component\\HttpKernel\\DataCollector\\Util\\ValueExporter' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/Util/ValueExporter.php',
'Symfony\\Component\\HttpKernel\\Debug\\FileLinkFormatter' => __DIR__ . '/..' . '/symfony/http-kernel/Debug/FileLinkFormatter.php',
'Symfony\\Component\\HttpKernel\\Debug\\TraceableEventDispatcher' => __DIR__ . '/..' . '/symfony/http-kernel/Debug/TraceableEventDispatcher.php',
'Symfony\\Component\\HttpKernel\\DependencyInjection\\AddAnnotatedClassesToCachePass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/AddAnnotatedClassesToCachePass.php',
'Symfony\\Component\\HttpKernel\\DependencyInjection\\AddClassesToCachePass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/AddClassesToCachePass.php',
'Symfony\\Component\\HttpKernel\\DependencyInjection\\ConfigurableExtension' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/ConfigurableExtension.php',
'Symfony\\Component\\HttpKernel\\DependencyInjection\\ControllerArgumentValueResolverPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/ControllerArgumentValueResolverPass.php',
'Symfony\\Component\\HttpKernel\\DependencyInjection\\Extension' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/Extension.php',
@ -3533,6 +3607,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\HttpKernel\\HttpCache\\Ssi' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/Ssi.php',
'Symfony\\Component\\HttpKernel\\HttpCache\\Store' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/Store.php',
'Symfony\\Component\\HttpKernel\\HttpCache\\StoreInterface' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/StoreInterface.php',
'Symfony\\Component\\HttpKernel\\HttpCache\\SubRequestHandler' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/SubRequestHandler.php',
'Symfony\\Component\\HttpKernel\\HttpCache\\SurrogateInterface' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/SurrogateInterface.php',
'Symfony\\Component\\HttpKernel\\HttpKernel' => __DIR__ . '/..' . '/symfony/http-kernel/HttpKernel.php',
'Symfony\\Component\\HttpKernel\\HttpKernelInterface' => __DIR__ . '/..' . '/symfony/http-kernel/HttpKernelInterface.php',
@ -3552,6 +3627,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/process/Exception/InvalidArgumentException.php',
'Symfony\\Component\\Process\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/process/Exception/LogicException.php',
'Symfony\\Component\\Process\\Exception\\ProcessFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessFailedException.php',
'Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessSignaledException.php',
'Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessTimedOutException.php',
'Symfony\\Component\\Process\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/process/Exception/RuntimeException.php',
'Symfony\\Component\\Process\\ExecutableFinder' => __DIR__ . '/..' . '/symfony/process/ExecutableFinder.php',
@ -3563,7 +3639,6 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\Process\\Pipes\\UnixPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/UnixPipes.php',
'Symfony\\Component\\Process\\Pipes\\WindowsPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/WindowsPipes.php',
'Symfony\\Component\\Process\\Process' => __DIR__ . '/..' . '/symfony/process/Process.php',
'Symfony\\Component\\Process\\ProcessBuilder' => __DIR__ . '/..' . '/symfony/process/ProcessBuilder.php',
'Symfony\\Component\\Process\\ProcessUtils' => __DIR__ . '/..' . '/symfony/process/ProcessUtils.php',
'Symfony\\Component\\Routing\\Annotation\\Route' => __DIR__ . '/..' . '/symfony/routing/Annotation/Route.php',
'Symfony\\Component\\Routing\\CompiledRoute' => __DIR__ . '/..' . '/symfony/routing/CompiledRoute.php',
@ -3599,8 +3674,6 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\Routing\\Loader\\ProtectedPhpFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/PhpFileLoader.php',
'Symfony\\Component\\Routing\\Loader\\XmlFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/XmlFileLoader.php',
'Symfony\\Component\\Routing\\Loader\\YamlFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/YamlFileLoader.php',
'Symfony\\Component\\Routing\\Matcher\\Dumper\\DumperCollection' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/DumperCollection.php',
'Symfony\\Component\\Routing\\Matcher\\Dumper\\DumperRoute' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/DumperRoute.php',
'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumper' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/MatcherDumper.php',
'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumperInterface' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/MatcherDumperInterface.php',
'Symfony\\Component\\Routing\\Matcher\\Dumper\\PhpMatcherDumper' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/PhpMatcherDumper.php',
@ -3699,8 +3772,8 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\VarDumper\\Caster\\EnumStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/EnumStub.php',
'Symfony\\Component\\VarDumper\\Caster\\ExceptionCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ExceptionCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\FrameStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/FrameStub.php',
'Symfony\\Component\\VarDumper\\Caster\\GmpCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/GmpCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\LinkStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/LinkStub.php',
'Symfony\\Component\\VarDumper\\Caster\\MongoCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/MongoCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\PdoCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/PdoCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\PgSqlCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/PgSqlCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\RedisCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/RedisCaster.php',
@ -3719,17 +3792,29 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\VarDumper\\Cloner\\DumperInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/DumperInterface.php',
'Symfony\\Component\\VarDumper\\Cloner\\Stub' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/Stub.php',
'Symfony\\Component\\VarDumper\\Cloner\\VarCloner' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/VarCloner.php',
'Symfony\\Component\\VarDumper\\Command\\Descriptor\\CliDescriptor' => __DIR__ . '/..' . '/symfony/var-dumper/Command/Descriptor/CliDescriptor.php',
'Symfony\\Component\\VarDumper\\Command\\Descriptor\\DumpDescriptorInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Command/Descriptor/DumpDescriptorInterface.php',
'Symfony\\Component\\VarDumper\\Command\\Descriptor\\HtmlDescriptor' => __DIR__ . '/..' . '/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php',
'Symfony\\Component\\VarDumper\\Command\\ServerDumpCommand' => __DIR__ . '/..' . '/symfony/var-dumper/Command/ServerDumpCommand.php',
'Symfony\\Component\\VarDumper\\Dumper\\AbstractDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/AbstractDumper.php',
'Symfony\\Component\\VarDumper\\Dumper\\CliDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/CliDumper.php',
'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\CliContextProvider' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php',
'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\ContextProviderInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php',
'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\RequestContextProvider' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php',
'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\SourceContextProvider' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php',
'Symfony\\Component\\VarDumper\\Dumper\\DataDumperInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/DataDumperInterface.php',
'Symfony\\Component\\VarDumper\\Dumper\\HtmlDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/HtmlDumper.php',
'Symfony\\Component\\VarDumper\\Dumper\\ServerDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ServerDumper.php',
'Symfony\\Component\\VarDumper\\Exception\\ThrowingCasterException' => __DIR__ . '/..' . '/symfony/var-dumper/Exception/ThrowingCasterException.php',
'Symfony\\Component\\VarDumper\\Server\\Connection' => __DIR__ . '/..' . '/symfony/var-dumper/Server/Connection.php',
'Symfony\\Component\\VarDumper\\Server\\DumpServer' => __DIR__ . '/..' . '/symfony/var-dumper/Server/DumpServer.php',
'Symfony\\Component\\VarDumper\\Test\\VarDumperTestTrait' => __DIR__ . '/..' . '/symfony/var-dumper/Test/VarDumperTestTrait.php',
'Symfony\\Component\\VarDumper\\VarDumper' => __DIR__ . '/..' . '/symfony/var-dumper/VarDumper.php',
'Symfony\\Polyfill\\Ctype\\Ctype' => __DIR__ . '/..' . '/symfony/polyfill-ctype/Ctype.php',
'Symfony\\Polyfill\\Mbstring\\Mbstring' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/Mbstring.php',
'Symfony\\Polyfill\\Php70\\Php70' => __DIR__ . '/..' . '/symfony/polyfill-php70/Php70.php',
'Symfony\\Polyfill\\Php72\\Php72' => __DIR__ . '/..' . '/symfony/polyfill-php72/Php72.php',
'Symfony\\Thanks\\Command\\ThanksCommand' => __DIR__ . '/..' . '/symfony/thanks/src/Command/ThanksCommand.php',
'Symfony\\Thanks\\GitHubClient' => __DIR__ . '/..' . '/symfony/thanks/src/GitHubClient.php',
'Symfony\\Thanks\\Thanks' => __DIR__ . '/..' . '/symfony/thanks/src/Thanks.php',
'Tests\\CreatesApplication' => __DIR__ . '/../..' . '/tests/CreatesApplication.php',
'Tests\\Feature\\ExampleTest' => __DIR__ . '/../..' . '/tests/Feature/ExampleTest.php',
@ -3750,7 +3835,6 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'TijsVerkoyen\\CssToInlineStyles\\Css\\Property\\Property' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/Css/Property/Property.php',
'TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Processor' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Processor.php',
'TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Rule' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Rule.php',
'TypeError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/TypeError.php',
'UsersSeeder' => __DIR__ . '/../..' . '/database/seeds/UsersSeeder.php',
'Webmozart\\Assert\\Assert' => __DIR__ . '/..' . '/webmozart/assert/src/Assert.php',
'Whoops\\Exception\\ErrorException' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/ErrorException.php',

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,35 @@
# Change Log
## [2.2.0] - 2018-06-05
### Added
- Added support for steps larger than field ranges (#6)
## Changed
- N/A
### Fixed
- Fixed validation for numbers with leading 0s (#12)
## [2.1.0] - 2018-04-06
### Added
- N/A
### Changed
- Upgraded to PHPUnit 6 (#2)
### Fixed
- Refactored timezones to deal with some inconsistent behavior (#3)
- Allow ranges and lists in same expression (#5)
- Fixed regression where literals were not converted to their numerical counterpart (#)
## [2.0.0] - 2017-10-12
### Added
- N/A
### Changed
- Dropped support for PHP 5.x
- Dropped support for the YEAR field, as it was not part of the cron standard
### Fixed
- Reworked validation for all the field types
- Stepping should now work for 1-indexed fields like Month (#153)
## [1.2.0] - 2017-01-22
### Added
- Added IDE, CodeSniffer, and StyleCI.IO support

View file

@ -1,4 +1,4 @@
Copyright (c) 2011 Michael Dowling <mtdowling@gmail.com> and contributors
Copyright (c) 2011 Michael Dowling <mtdowling@gmail.com>, 2016 Chris Tankersley <chris@ctankersley.com>, and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View file

@ -1,7 +1,7 @@
PHP Cron Expression Parser
==========================
[![Latest Stable Version](https://poser.pugx.org/mtdowling/cron-expression/v/stable.png)](https://packagist.org/packages/mtdowling/cron-expression) [![Total Downloads](https://poser.pugx.org/mtdowling/cron-expression/downloads.png)](https://packagist.org/packages/mtdowling/cron-expression) [![Build Status](https://secure.travis-ci.org/mtdowling/cron-expression.png)](http://travis-ci.org/mtdowling/cron-expression)
[![Latest Stable Version](https://poser.pugx.org/dragonmantank/cron-expression/v/stable.png)](https://packagist.org/packages/dragonmantank/cron-expression) [![Total Downloads](https://poser.pugx.org/dragonmantank/cron-expression/downloads.png)](https://packagist.org/packages/dragonmantank/cron-expression) [![Build Status](https://secure.travis-ci.org/dragonmantank/cron-expression.png)](http://travis-ci.org/dragonmantank/cron-expression)
The PHP cron expression parser can parse a CRON expression, determine if it is
due to run, calculate the next run date of the expression, and calculate the previous
@ -13,13 +13,15 @@ lists (e.g. 1,2,3), W to find the nearest weekday for a given day of the month,
find the last day of the month, L to find the last given weekday of a month, and hash
(#) to find the nth weekday of a given month.
More information about this fork can be found in the blog post [here](http://ctankersley.com/2017/10/12/cron-expression-update/). tl;dr - v2.0.0 is a major breaking change, and @dragonmantank can better take care of the project in a separate fork.
Installing
==========
Add the dependency to your project:
```bash
composer require mtdowling/cron-expression
composer require dragonmantank/cron-expression
```
Usage
@ -36,7 +38,7 @@ echo $cron->getNextRunDate()->format('Y-m-d H:i:s');
echo $cron->getPreviousRunDate()->format('Y-m-d H:i:s');
// Works with complex expressions
$cron = Cron\CronExpression::factory('3-59/15 2,6-12 */15 1 2-5');
$cron = Cron\CronExpression::factory('3-59/15 6-12 */15 1 2-5');
echo $cron->getNextRunDate()->format('Y-m-d H:i:s');
// Calculate a run date two iterations into the future
@ -53,10 +55,10 @@ CRON Expressions
A CRON expression is a string representing the schedule for a particular command to execute. The parts of a CRON schedule are as follows:
* * * * * *
- - - - - -
| | | | | |
| | | | | + year [optional]
* * * * *
- - - - -
| | | | |
| | | | |
| | | | +----- day of week (0 - 7) (Sunday=0 or 7)
| | | +---------- month (1 - 12)
| | +--------------- day of month (1 - 31)
@ -66,6 +68,6 @@ A CRON expression is a string representing the schedule for a particular command
Requirements
============
- PHP 5.3+
- PHP 7.0+
- PHPUnit is required to run the unit tests
- Composer is required to run the unit tests
- Composer is required to run the unit tests

View file

@ -0,0 +1,35 @@
{
"name": "dragonmantank/cron-expression",
"type": "library",
"description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due",
"keywords": ["cron", "schedule"],
"license": "MIT",
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
},
{
"name": "Chris Tankersley",
"email": "chris@ctankersley.com",
"homepage": "https://github.com/dragonmantank"
}
],
"require": {
"php": ">=7.0.0"
},
"require-dev": {
"phpunit/phpunit": "~6.4"
},
"autoload": {
"psr-4": {
"Cron\\": "src/Cron/"
}
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/Cron/"
}
}
}

View file

@ -0,0 +1,278 @@
<?php
namespace Cron;
/**
* Abstract CRON expression field
*/
abstract class AbstractField implements FieldInterface
{
/**
* Full range of values that are allowed for this field type
* @var array
*/
protected $fullRange = [];
/**
* Literal values we need to convert to integers
* @var array
*/
protected $literals = [];
/**
* Start value of the full range
* @var integer
*/
protected $rangeStart;
/**
* End value of the full range
* @var integer
*/
protected $rangeEnd;
public function __construct()
{
$this->fullRange = range($this->rangeStart, $this->rangeEnd);
}
/**
* Check to see if a field is satisfied by a value
*
* @param string $dateValue Date value to check
* @param string $value Value to test
*
* @return bool
*/
public function isSatisfied($dateValue, $value)
{
if ($this->isIncrementsOfRanges($value)) {
return $this->isInIncrementsOfRanges($dateValue, $value);
} elseif ($this->isRange($value)) {
return $this->isInRange($dateValue, $value);
}
return $value == '*' || $dateValue == $value;
}
/**
* Check if a value is a range
*
* @param string $value Value to test
*
* @return bool
*/
public function isRange($value)
{
return strpos($value, '-') !== false;
}
/**
* Check if a value is an increments of ranges
*
* @param string $value Value to test
*
* @return bool
*/
public function isIncrementsOfRanges($value)
{
return strpos($value, '/') !== false;
}
/**
* Test if a value is within a range
*
* @param string $dateValue Set date value
* @param string $value Value to test
*
* @return bool
*/
public function isInRange($dateValue, $value)
{
$parts = array_map(function($value) {
$value = trim($value);
$value = $this->convertLiterals($value);
return $value;
},
explode('-', $value, 2)
);
return $dateValue >= $parts[0] && $dateValue <= $parts[1];
}
/**
* Test if a value is within an increments of ranges (offset[-to]/step size)
*
* @param string $dateValue Set date value
* @param string $value Value to test
*
* @return bool
*/
public function isInIncrementsOfRanges($dateValue, $value)
{
$chunks = array_map('trim', explode('/', $value, 2));
$range = $chunks[0];
$step = isset($chunks[1]) ? $chunks[1] : 0;
// No step or 0 steps aren't cool
if (is_null($step) || '0' === $step || 0 === $step) {
return false;
}
// Expand the * to a full range
if ('*' == $range) {
$range = $this->rangeStart . '-' . $this->rangeEnd;
}
// Generate the requested small range
$rangeChunks = explode('-', $range, 2);
$rangeStart = $rangeChunks[0];
$rangeEnd = isset($rangeChunks[1]) ? $rangeChunks[1] : $rangeStart;
if ($rangeStart < $this->rangeStart || $rangeStart > $this->rangeEnd || $rangeStart > $rangeEnd) {
throw new \OutOfRangeException('Invalid range start requested');
}
if ($rangeEnd < $this->rangeStart || $rangeEnd > $this->rangeEnd || $rangeEnd < $rangeStart) {
throw new \OutOfRangeException('Invalid range end requested');
}
// Steps larger than the range need to wrap around and be handled slightly differently than smaller steps
if ($step >= $this->rangeEnd) {
$thisRange = [$this->fullRange[$step % count($this->fullRange)]];
} else {
$thisRange = range($rangeStart, $rangeEnd, $step);
}
return in_array($dateValue, $thisRange);
}
/**
* Returns a range of values for the given cron expression
*
* @param string $expression The expression to evaluate
* @param int $max Maximum offset for range
*
* @return array
*/
public function getRangeForExpression($expression, $max)
{
$values = array();
$expression = $this->convertLiterals($expression);
if (strpos($expression, ',') !== false) {
$ranges = explode(',', $expression);
$values = [];
foreach ($ranges as $range) {
$expanded = $this->getRangeForExpression($range, $this->rangeEnd);
$values = array_merge($values, $expanded);
}
return $values;
}
if ($this->isRange($expression) || $this->isIncrementsOfRanges($expression)) {
if (!$this->isIncrementsOfRanges($expression)) {
list ($offset, $to) = explode('-', $expression);
$offset = $this->convertLiterals($offset);
$to = $this->convertLiterals($to);
$stepSize = 1;
}
else {
$range = array_map('trim', explode('/', $expression, 2));
$stepSize = isset($range[1]) ? $range[1] : 0;
$range = $range[0];
$range = explode('-', $range, 2);
$offset = $range[0];
$to = isset($range[1]) ? $range[1] : $max;
}
$offset = $offset == '*' ? $this->rangeStart : $offset;
if ($stepSize >= $this->rangeEnd) {
$values = [$this->fullRange[$stepSize % count($this->fullRange)]];
} else {
for ($i = $offset; $i <= $to; $i += $stepSize) {
$values[] = (int)$i;
}
}
sort($values);
}
else {
$values = array($expression);
}
return $values;
}
protected function convertLiterals($value)
{
if (count($this->literals)) {
$key = array_search($value, $this->literals);
if ($key !== false) {
return $key;
}
}
return $value;
}
/**
* Checks to see if a value is valid for the field
*
* @param string $value
* @return bool
*/
public function validate($value)
{
$value = $this->convertLiterals($value);
// All fields allow * as a valid value
if ('*' === $value) {
return true;
}
if (strpos($value, '/') !== false) {
list($range, $step) = explode('/', $value);
return $this->validate($range) && filter_var($step, FILTER_VALIDATE_INT);
}
// Validate each chunk of a list individually
if (strpos($value, ',') !== false) {
foreach (explode(',', $value) as $listItem) {
if (!$this->validate($listItem)) {
return false;
}
}
return true;
}
if (strpos($value, '-') !== false) {
if (substr_count($value, '-') > 1) {
return false;
}
$chunks = explode('-', $value);
$chunks[0] = $this->convertLiterals($chunks[0]);
$chunks[1] = $this->convertLiterals($chunks[1]);
if ('*' == $chunks[0] || '*' == $chunks[1]) {
return false;
}
return $this->validate($chunks[0]) && $this->validate($chunks[1]);
}
if (!is_numeric($value)) {
return false;
}
if (is_float($value) || strpos($value, '.') !== false) {
return false;
}
// We should have a numeric by now, so coerce this into an integer
$value = (int) $value;
return in_array($value, $this->fullRange, true);
}
}

View file

@ -171,7 +171,7 @@ class CronExpression
public function setMaxIterationCount($maxIterationCount)
{
$this->maxIterationCount = $maxIterationCount;
return $this;
}
@ -187,13 +187,14 @@ class CronExpression
* matches and so on.
* @param bool $allowCurrentDate Set to TRUE to return the current date if
* it matches the cron expression.
* @param null|string $timeZone TimeZone to use instead of the system default
*
* @return \DateTime
* @throws \RuntimeException on too many iterations
*/
public function getNextRunDate($currentTime = 'now', $nth = 0, $allowCurrentDate = false)
public function getNextRunDate($currentTime = 'now', $nth = 0, $allowCurrentDate = false, $timeZone = null)
{
return $this->getRunDate($currentTime, $nth, false, $allowCurrentDate);
return $this->getRunDate($currentTime, $nth, false, $allowCurrentDate, $timeZone);
}
/**
@ -203,14 +204,15 @@ class CronExpression
* @param int $nth Number of matches to skip before returning
* @param bool $allowCurrentDate Set to TRUE to return the
* current date if it matches the cron expression
* @param null|string $timeZone TimeZone to use instead of the system default
*
* @return \DateTime
* @throws \RuntimeException on too many iterations
* @see \Cron\CronExpression::getNextRunDate
*/
public function getPreviousRunDate($currentTime = 'now', $nth = 0, $allowCurrentDate = false)
public function getPreviousRunDate($currentTime = 'now', $nth = 0, $allowCurrentDate = false, $timeZone = null)
{
return $this->getRunDate($currentTime, $nth, true, $allowCurrentDate);
return $this->getRunDate($currentTime, $nth, true, $allowCurrentDate, $timeZone);
}
/**
@ -221,15 +223,16 @@ class CronExpression
* @param bool $invert Set to TRUE to retrieve previous dates
* @param bool $allowCurrentDate Set to TRUE to return the
* current date if it matches the cron expression
* @param null|string $timeZone TimeZone to use instead of the system default
*
* @return array Returns an array of run dates
*/
public function getMultipleRunDates($total, $currentTime = 'now', $invert = false, $allowCurrentDate = false)
public function getMultipleRunDates($total, $currentTime = 'now', $invert = false, $allowCurrentDate = false, $timeZone = null)
{
$matches = array();
for ($i = 0; $i < max(0, $total); $i++) {
try {
$matches[] = $this->getRunDate($currentTime, $i, $invert, $allowCurrentDate);
$matches[] = $this->getRunDate($currentTime, $i, $invert, $allowCurrentDate, $timeZone);
} catch (RuntimeException $e) {
break;
}
@ -274,34 +277,30 @@ class CronExpression
* seconds are irrelevant, and should be called once per minute.
*
* @param string|\DateTime $currentTime Relative calculation date
* @param null|string $timeZone TimeZone to use instead of the system default
*
* @return bool Returns TRUE if the cron is due to run or FALSE if not
*/
public function isDue($currentTime = 'now')
public function isDue($currentTime = 'now', $timeZone = null)
{
$timeZone = $this->determineTimeZone($currentTime, $timeZone);
if ('now' === $currentTime) {
$currentDate = date('Y-m-d H:i');
$currentTime = strtotime($currentDate);
$currentTime = new DateTime();
} elseif ($currentTime instanceof DateTime) {
$currentDate = clone $currentTime;
// Ensure time in 'current' timezone is used
$currentDate->setTimezone(new DateTimeZone(date_default_timezone_get()));
$currentDate = $currentDate->format('Y-m-d H:i');
$currentTime = strtotime($currentDate);
//
} elseif ($currentTime instanceof DateTimeImmutable) {
$currentDate = DateTime::createFromFormat('U', $currentTime->format('U'));
$currentDate->setTimezone(new DateTimeZone(date_default_timezone_get()));
$currentDate = $currentDate->format('Y-m-d H:i');
$currentTime = strtotime($currentDate);
$currentTime = DateTime::createFromFormat('U', $currentTime->format('U'));
} else {
$currentTime = new DateTime($currentTime);
$currentTime->setTime($currentTime->format('H'), $currentTime->format('i'), 0);
$currentDate = $currentTime->format('Y-m-d H:i');
$currentTime = $currentTime->getTimeStamp();
}
$currentTime->setTimeZone(new DateTimeZone($timeZone));
// drop the seconds to 0
$currentTime = DateTime::createFromFormat('Y-m-d H:i', $currentTime->format('Y-m-d H:i'));
try {
return $this->getNextRunDate($currentDate, 0, true)->getTimestamp() == $currentTime;
return $this->getNextRunDate($currentTime, 0, true)->getTimestamp() === $currentTime->getTimestamp();
} catch (Exception $e) {
return false;
}
@ -315,22 +314,24 @@ class CronExpression
* @param bool $invert Set to TRUE to go backwards in time
* @param bool $allowCurrentDate Set to TRUE to return the
* current date if it matches the cron expression
* @param string|null $timeZone TimeZone to use instead of the system default
*
* @return \DateTime
* @throws \RuntimeException on too many iterations
*/
protected function getRunDate($currentTime = null, $nth = 0, $invert = false, $allowCurrentDate = false)
protected function getRunDate($currentTime = null, $nth = 0, $invert = false, $allowCurrentDate = false, $timeZone = null)
{
$timeZone = $this->determineTimeZone($currentTime, $timeZone);
if ($currentTime instanceof DateTime) {
$currentDate = clone $currentTime;
} elseif ($currentTime instanceof DateTimeImmutable) {
$currentDate = DateTime::createFromFormat('U', $currentTime->format('U'));
$currentDate->setTimezone($currentTime->getTimezone());
} else {
$currentDate = new DateTime($currentTime ?: 'now');
$currentDate->setTimezone(new DateTimeZone(date_default_timezone_get()));
}
$currentDate->setTimeZone(new DateTimeZone($timeZone));
$currentDate->setTime($currentDate->format('H'), $currentDate->format('i'), 0);
$nextRun = clone $currentDate;
$nth = (int) $nth;
@ -386,4 +387,25 @@ class CronExpression
throw new RuntimeException('Impossible CRON expression');
// @codeCoverageIgnoreEnd
}
/**
* Workout what timeZone should be used.
*
* @param string|\DateTime $currentTime Relative calculation date
* @param string|null $timeZone TimeZone to use instead of the system default
*
* @return string
*/
protected function determineTimeZone($currentTime, $timeZone)
{
if (! is_null($timeZone)) {
return $timeZone;
}
if ($currentTime instanceOf Datetime) {
return $currentTime->getTimeZone()->getName();
}
return date_default_timezone_get();
}
}

View file

@ -24,6 +24,9 @@ use DateTime;
*/
class DayOfMonthField extends AbstractField
{
protected $rangeStart = 1;
protected $rangeEnd = 31;
/**
* Get the nearest day of the week for a given day in a month
*
@ -99,75 +102,30 @@ class DayOfMonthField extends AbstractField
}
/**
* Validates that the value is valid for the Day of the Month field
* Days of the month can contain values of 1-31, *, L, or ? by default. This can be augmented with lists via a ',',
* ranges via a '-', or with a '[0-9]W' to specify the closest weekday.
*
* @param string $value
* @return bool
* @inheritDoc
*/
public function validate($value)
{
// Allow wildcards and a single L
if ($value === '?' || $value === '*' || $value === 'L') {
return true;
$basicChecks = parent::validate($value);
// Validate that a list don't have W or L
if (strpos($value, ',') !== false && (strpos($value, 'W') !== false || strpos($value, 'L') !== false)) {
return false;
}
// If you only contain numbers and are within 1-31
if ((bool) preg_match('/^\d{1,2}$/', $value) && ($value >= 1 && $value <= 31)) {
return true;
}
if (!$basicChecks) {
// If you have a -, we will deal with each of your chunks
if ((bool) preg_match('/-/', $value)) {
// We cannot have a range within a list or vice versa
if ((bool) preg_match('/,/', $value)) {
return false;
if ($value === 'L') {
return true;
}
$chunks = explode('-', $value);
foreach ($chunks as $chunk) {
if (!$this->validate($chunk)) {
return false;
}
if (preg_match('/^(.*)W$/', $value, $matches)) {
return $this->validate($matches[1]);
}
return true;
return false;
}
// If you have a comma, we will deal with each value
if ((bool) preg_match('/,/', $value)) {
// We cannot have a range within a list or vice versa
if ((bool) preg_match('/-/', $value)) {
return false;
}
$chunks = explode(',', $value);
foreach ($chunks as $chunk) {
if (!$this->validate($chunk)) {
return false;
}
}
return true;
}
// If you contain a /, we'll deal with it
if ((bool) preg_match('/\//', $value)) {
$chunks = explode('/', $value);
foreach ($chunks as $chunk) {
if (!$this->validate($chunk)) {
return false;
}
}
return true;
}
// If you end in W, make sure that it has a numeric in front of it
if ((bool) preg_match('/^\d{1,2}W$/', $value)) {
return true;
}
return false;
return $basicChecks;
}
}

View file

@ -21,6 +21,19 @@ use InvalidArgumentException;
*/
class DayOfWeekField extends AbstractField
{
protected $rangeStart = 0;
protected $rangeEnd = 7;
protected $nthRange;
protected $literals = [1 => 'MON', 2 => 'TUE', 3 => 'WED', 4 => 'THU', 5 => 'FRI', 6 => 'SAT', 7 => 'SUN'];
public function __construct()
{
$this->nthRange = range(1, 5);
parent::__construct();
}
public function isSatisfiedBy(DateTime $date, $value)
{
if ($value == '?') {
@ -53,18 +66,28 @@ class DayOfWeekField extends AbstractField
if (strpos($value, '#')) {
list($weekday, $nth) = explode('#', $value);
if (!is_numeric($nth)) {
throw new InvalidArgumentException("Hashed weekdays must be numeric, {$nth} given");
} else {
$nth = (int) $nth;
}
// 0 and 7 are both Sunday, however 7 matches date('N') format ISO-8601
if ($weekday === '0') {
$weekday = 7;
}
$weekday = $this->convertLiterals($weekday);
// Validate the hash fields
if ($weekday < 0 || $weekday > 7) {
throw new InvalidArgumentException("Weekday must be a value between 0 and 7. {$weekday} given");
}
if ($nth > 5) {
throw new InvalidArgumentException('There are never more than 5 of a given weekday in a month');
if (!in_array($nth, $this->nthRange)) {
throw new InvalidArgumentException("There are never more than 5 or less than 1 of a given weekday in a month, {$nth} given");
}
// The current weekday must match the targeted weekday to proceed
if ($date->format('N') != $weekday) {
return false;
@ -117,25 +140,31 @@ class DayOfWeekField extends AbstractField
return $this;
}
/**
* @inheritDoc
*/
public function validate($value)
{
$value = $this->convertLiterals($value);
$basicChecks = parent::validate($value);
foreach (explode(',', $value) as $expr) {
if (!preg_match('/^(\*|[0-7](L?|#[1-5]))([\/\,\-][0-7]+)*$/', $expr)) {
return false;
if (!$basicChecks) {
// Handle the # value
if (strpos($value, '#') !== false) {
$chunks = explode('#', $value);
$chunks[0] = $this->convertLiterals($chunks[0]);
if (parent::validate($chunks[0]) && is_numeric($chunks[1]) && in_array($chunks[1], $this->nthRange)) {
return true;
}
}
if (preg_match('/^(.*)L$/', $value, $matches)) {
return $this->validate($matches[1]);
}
return false;
}
return true;
}
private function convertLiterals($string)
{
return str_ireplace(
array('SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'),
range(0, 6),
$string
);
return $basicChecks;
}
}

View file

@ -42,9 +42,6 @@ class FieldFactory
case 4:
$this->fields[$position] = new DayOfWeekField();
break;
case 5:
$this->fields[$position] = new YearField();
break;
default:
throw new InvalidArgumentException(
$position . ' is not a valid position'

View file

@ -10,6 +10,9 @@ use DateTimeZone;
*/
class HoursField extends AbstractField
{
protected $rangeStart = 0;
protected $rangeEnd = 23;
public function isSatisfiedBy(DateTime $date, $value)
{
return $this->isSatisfied($date->format('H'), $value);
@ -63,9 +66,4 @@ class HoursField extends AbstractField
return $this;
}
public function validate($value)
{
return (bool) preg_match('/^[\*,\/\-0-9]+$/', $value);
}
}

View file

@ -10,6 +10,9 @@ use DateTime;
*/
class MinutesField extends AbstractField
{
protected $rangeStart = 0;
protected $rangeEnd = 59;
public function isSatisfiedBy(DateTime $date, $value)
{
return $this->isSatisfied($date->format('i'), $value);
@ -54,9 +57,4 @@ class MinutesField extends AbstractField
return $this;
}
public function validate($value)
{
return (bool) preg_match('/^[\*,\/\-0-9]+$/', $value);
}
}

View file

@ -9,17 +9,14 @@ use DateTime;
*/
class MonthField extends AbstractField
{
protected $rangeStart = 1;
protected $rangeEnd = 12;
protected $literals = [1 => 'JAN', 2 => 'FEB', 3 => 'MAR', 4 => 'APR', 5 => 'MAY', 6 => 'JUN', 7 => 'JUL',
8 => 'AUG', 9 => 'SEP', 10 => 'OCT', 11 => 'NOV', 12 => 'DEC'];
public function isSatisfiedBy(DateTime $date, $value)
{
// Convert text month values to integers
$value = str_ireplace(
array(
'JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN',
'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC'
),
range(1, 12),
$value
);
$value = $this->convertLiterals($value);
return $this->isSatisfied($date->format('m'), $value);
}
@ -37,8 +34,5 @@ class MonthField extends AbstractField
return $this;
}
public function validate($value)
{
return (bool) preg_match('/^[\*,\/\-0-9A-Z]+$/', $value);
}
}

View file

@ -0,0 +1,139 @@
<?php
namespace Cron\Tests;
use Cron\DayOfWeekField;
use Cron\HoursField;
use Cron\MinutesField;
use Cron\MonthField;
use PHPUnit\Framework\TestCase;
/**
* @author Michael Dowling <mtdowling@gmail.com>
*/
class AbstractFieldTest extends TestCase
{
/**
* @covers \Cron\AbstractField::isRange
*/
public function testTestsIfRange()
{
$f = new DayOfWeekField();
$this->assertTrue($f->isRange('1-2'));
$this->assertFalse($f->isRange('2'));
}
/**
* @covers \Cron\AbstractField::isIncrementsOfRanges
*/
public function testTestsIfIncrementsOfRanges()
{
$f = new DayOfWeekField();
$this->assertFalse($f->isIncrementsOfRanges('1-2'));
$this->assertTrue($f->isIncrementsOfRanges('1/2'));
$this->assertTrue($f->isIncrementsOfRanges('*/2'));
$this->assertTrue($f->isIncrementsOfRanges('3-12/2'));
}
/**
* @covers \Cron\AbstractField::isInRange
*/
public function testTestsIfInRange()
{
$f = new DayOfWeekField();
$this->assertTrue($f->isInRange('1', '1-2'));
$this->assertTrue($f->isInRange('2', '1-2'));
$this->assertTrue($f->isInRange('5', '4-12'));
$this->assertFalse($f->isInRange('3', '4-12'));
$this->assertFalse($f->isInRange('13', '4-12'));
}
/**
* @covers \Cron\AbstractField::isInIncrementsOfRanges
*/
public function testTestsIfInIncrementsOfRangesOnZeroStartRange()
{
$f = new MinutesField();
$this->assertTrue($f->isInIncrementsOfRanges('3', '3-59/2'));
$this->assertTrue($f->isInIncrementsOfRanges('13', '3-59/2'));
$this->assertTrue($f->isInIncrementsOfRanges('15', '3-59/2'));
$this->assertTrue($f->isInIncrementsOfRanges('14', '*/2'));
$this->assertFalse($f->isInIncrementsOfRanges('2', '3-59/13'));
$this->assertFalse($f->isInIncrementsOfRanges('14', '*/13'));
$this->assertFalse($f->isInIncrementsOfRanges('14', '3-59/2'));
$this->assertFalse($f->isInIncrementsOfRanges('3', '2-59'));
$this->assertFalse($f->isInIncrementsOfRanges('3', '2'));
$this->assertFalse($f->isInIncrementsOfRanges('3', '*'));
$this->assertFalse($f->isInIncrementsOfRanges('0', '*/0'));
$this->assertFalse($f->isInIncrementsOfRanges('1', '*/0'));
$this->assertTrue($f->isInIncrementsOfRanges('4', '4/1'));
$this->assertFalse($f->isInIncrementsOfRanges('14', '4/1'));
$this->assertFalse($f->isInIncrementsOfRanges('34', '4/1'));
}
/**
* @covers \Cron\AbstractField::isInIncrementsOfRanges
*/
public function testTestsIfInIncrementsOfRangesOnOneStartRange()
{
$f = new MonthField();
$this->assertTrue($f->isInIncrementsOfRanges('3', '3-12/2'));
$this->assertFalse($f->isInIncrementsOfRanges('13', '3-12/2'));
$this->assertFalse($f->isInIncrementsOfRanges('15', '3-12/2'));
$this->assertTrue($f->isInIncrementsOfRanges('3', '*/2'));
$this->assertFalse($f->isInIncrementsOfRanges('3', '*/3'));
$this->assertTrue($f->isInIncrementsOfRanges('7', '*/3'));
$this->assertFalse($f->isInIncrementsOfRanges('14', '3-12/2'));
$this->assertFalse($f->isInIncrementsOfRanges('3', '2-12'));
$this->assertFalse($f->isInIncrementsOfRanges('3', '2'));
$this->assertFalse($f->isInIncrementsOfRanges('3', '*'));
$this->assertFalse($f->isInIncrementsOfRanges('0', '*/0'));
$this->assertFalse($f->isInIncrementsOfRanges('1', '*/0'));
$this->assertTrue($f->isInIncrementsOfRanges('4', '4/1'));
$this->assertFalse($f->isInIncrementsOfRanges('14', '4/1'));
$this->assertFalse($f->isInIncrementsOfRanges('34', '4/1'));
}
/**
* @covers \Cron\AbstractField::isSatisfied
*/
public function testTestsIfSatisfied()
{
$f = new DayOfWeekField();
$this->assertTrue($f->isSatisfied('12', '3-13'));
$this->assertFalse($f->isSatisfied('15', '3-7/2'));
$this->assertTrue($f->isSatisfied('12', '*'));
$this->assertTrue($f->isSatisfied('12', '12'));
$this->assertFalse($f->isSatisfied('12', '3-11'));
$this->assertFalse($f->isSatisfied('12', '3-7/2'));
$this->assertFalse($f->isSatisfied('12', '11'));
}
/**
* Allows ranges and lists to coexist in the same expression
*
* @see https://github.com/dragonmantank/cron-expression/issues/5
*/
public function testAllowRangesAndLists()
{
$expression = '5-7,11-13';
$f = new HoursField();
$this->assertTrue($f->validate($expression));
}
/**
* Makes sure that various types of ranges expand out properly
*
* @see https://github.com/dragonmantank/cron-expression/issues/5
*/
public function testGetRangeForExpressionExpandsCorrectly()
{
$f = new HoursField();
$this->assertSame([5, 6, 7, 11, 12, 13], $f->getRangeForExpression('5-7,11-13', 23));
$this->assertSame(['5', '6', '7', '11', '12', '13'], $f->getRangeForExpression('5,6,7,11,12,13', 23));
$this->assertSame([0, 6, 12, 18], $f->getRangeForExpression('*/6', 23));
$this->assertSame([5, 11], $f->getRangeForExpression('5-13/6', 23));
}
}

View file

@ -3,65 +3,71 @@
namespace Cron\Tests;
use Cron\CronExpression;
use Cron\MonthField;
use DateTime;
use DateTimeZone;
use InvalidArgumentException;
use PHPUnit_Framework_TestCase;
use PHPUnit\Framework\TestCase;
/**
* @author Michael Dowling <mtdowling@gmail.com>
*/
class CronExpressionTest extends PHPUnit_Framework_TestCase
class CronExpressionTest extends TestCase
{
/**
* @covers Cron\CronExpression::factory
* @covers \Cron\CronExpression::factory
*/
public function testFactoryRecognizesTemplates()
{
$this->assertEquals('0 0 1 1 *', CronExpression::factory('@annually')->getExpression());
$this->assertEquals('0 0 1 1 *', CronExpression::factory('@yearly')->getExpression());
$this->assertEquals('0 0 * * 0', CronExpression::factory('@weekly')->getExpression());
$this->assertSame('0 0 1 1 *', CronExpression::factory('@annually')->getExpression());
$this->assertSame('0 0 1 1 *', CronExpression::factory('@yearly')->getExpression());
$this->assertSame('0 0 * * 0', CronExpression::factory('@weekly')->getExpression());
}
/**
* @covers Cron\CronExpression::__construct
* @covers Cron\CronExpression::getExpression
* @covers Cron\CronExpression::__toString
* @covers \Cron\CronExpression::__construct
* @covers \Cron\CronExpression::getExpression
* @covers \Cron\CronExpression::__toString
*/
public function testParsesCronSchedule()
{
// '2010-09-10 12:00:00'
$cron = CronExpression::factory('1 2-4 * 4,5,6 */3');
$this->assertEquals('1', $cron->getExpression(CronExpression::MINUTE));
$this->assertEquals('2-4', $cron->getExpression(CronExpression::HOUR));
$this->assertEquals('*', $cron->getExpression(CronExpression::DAY));
$this->assertEquals('4,5,6', $cron->getExpression(CronExpression::MONTH));
$this->assertEquals('*/3', $cron->getExpression(CronExpression::WEEKDAY));
$this->assertEquals('1 2-4 * 4,5,6 */3', $cron->getExpression());
$this->assertEquals('1 2-4 * 4,5,6 */3', (string) $cron);
$this->assertSame('1', $cron->getExpression(CronExpression::MINUTE));
$this->assertSame('2-4', $cron->getExpression(CronExpression::HOUR));
$this->assertSame('*', $cron->getExpression(CronExpression::DAY));
$this->assertSame('4,5,6', $cron->getExpression(CronExpression::MONTH));
$this->assertSame('*/3', $cron->getExpression(CronExpression::WEEKDAY));
$this->assertSame('1 2-4 * 4,5,6 */3', $cron->getExpression());
$this->assertSame('1 2-4 * 4,5,6 */3', (string) $cron);
$this->assertNull($cron->getExpression('foo'));
try {
$cron = CronExpression::factory('A 1 2 3 4');
$this->fail('Validation exception not thrown');
} catch (InvalidArgumentException $e) {
}
}
/**
* @covers Cron\CronExpression::__construct
* @covers Cron\CronExpression::getExpression
* @covers \Cron\CronExpression::__construct
* @covers \Cron\CronExpression::getExpression
* @covers \Cron\CronExpression::__toString
* @expectedException \InvalidArgumentException
* @expectedExceptionMessage Invalid CRON field value A at position 0
*/
public function testParsesCronScheduleThrowsAnException()
{
CronExpression::factory('A 1 2 3 4');
}
/**
* @covers \Cron\CronExpression::__construct
* @covers \Cron\CronExpression::getExpression
* @dataProvider scheduleWithDifferentSeparatorsProvider
*/
public function testParsesCronScheduleWithAnySpaceCharsAsSeparators($schedule, array $expected)
{
$cron = CronExpression::factory($schedule);
$this->assertEquals($expected[0], $cron->getExpression(CronExpression::MINUTE));
$this->assertEquals($expected[1], $cron->getExpression(CronExpression::HOUR));
$this->assertEquals($expected[2], $cron->getExpression(CronExpression::DAY));
$this->assertEquals($expected[3], $cron->getExpression(CronExpression::MONTH));
$this->assertEquals($expected[4], $cron->getExpression(CronExpression::WEEKDAY));
$this->assertEquals($expected[5], $cron->getExpression(CronExpression::YEAR));
$this->assertSame($expected[0], $cron->getExpression(CronExpression::MINUTE));
$this->assertSame($expected[1], $cron->getExpression(CronExpression::HOUR));
$this->assertSame($expected[2], $cron->getExpression(CronExpression::DAY));
$this->assertSame($expected[3], $cron->getExpression(CronExpression::MONTH));
$this->assertSame($expected[4], $cron->getExpression(CronExpression::WEEKDAY));
}
/**
@ -72,17 +78,17 @@ class CronExpressionTest extends PHPUnit_Framework_TestCase
public static function scheduleWithDifferentSeparatorsProvider()
{
return array(
array("*\t*\t*\t*\t*\t*", array('*', '*', '*', '*', '*', '*')),
array("* * * * * *", array('*', '*', '*', '*', '*', '*')),
array("* \t * \t * \t * \t * \t *", array('*', '*', '*', '*', '*', '*')),
array("*\t \t*\t \t*\t \t*\t \t*\t \t*", array('*', '*', '*', '*', '*', '*')),
array("*\t*\t*\t*\t*\t", array('*', '*', '*', '*', '*', '*')),
array("* * * * * ", array('*', '*', '*', '*', '*', '*')),
array("* \t * \t * \t * \t * \t", array('*', '*', '*', '*', '*', '*')),
array("*\t \t*\t \t*\t \t*\t \t*\t \t", array('*', '*', '*', '*', '*', '*')),
);
}
/**
* @covers Cron\CronExpression::__construct
* @covers Cron\CronExpression::setExpression
* @covers Cron\CronExpression::setPart
* @covers \Cron\CronExpression::__construct
* @covers \Cron\CronExpression::setExpression
* @covers \Cron\CronExpression::setPart
* @expectedException InvalidArgumentException
*/
public function testInvalidCronsWillFail()
@ -92,7 +98,7 @@ class CronExpressionTest extends PHPUnit_Framework_TestCase
}
/**
* @covers Cron\CronExpression::setPart
* @covers \Cron\CronExpression::setPart
* @expectedException InvalidArgumentException
*/
public function testInvalidPartsWillFail()
@ -116,8 +122,7 @@ class CronExpressionTest extends PHPUnit_Framework_TestCase
// Handles CSV values
array('* 20,22 * * *', '2015-08-10 21:50:00', '2015-08-10 22:00:00', false),
// CSV values can be complex
array('* 5,21-22 * * *', '2015-08-10 21:50:00', '2015-08-10 21:50:00', true),
array('7-9 * */9 * *', '2015-08-10 22:02:33', '2015-08-18 00:07:00', false),
array('7-9 * */9 * *', '2015-08-10 22:02:33', '2015-08-10 22:07:00', false),
// 15th minute, of the second hour, every 15 days, in January, every Friday
array('1 * * * 7', '2015-08-10 21:47:27', '2015-08-16 00:01:00', false),
// Test with exact times
@ -138,7 +143,6 @@ class CronExpressionTest extends PHPUnit_Framework_TestCase
array('0 0 * * 3-7', strtotime('2011-06-18 23:09:00'), '2011-06-19 00:00:00', false),
// Test lists of values and ranges (Abhoryo)
array('0 0 * * 2-7', strtotime('2011-06-20 23:09:00'), '2011-06-21 00:00:00', false),
array('0 0 * * 0,2-6', strtotime('2011-06-20 23:09:00'), '2011-06-21 00:00:00', false),
array('0 0 * * 2-7', strtotime('2011-06-18 23:09:00'), '2011-06-19 00:00:00', false),
array('0 0 * * 4-7', strtotime('2011-07-19 00:00:00'), '2011-07-21 00:00:00', false),
// Test increments of ranges
@ -146,12 +150,10 @@ class CronExpressionTest extends PHPUnit_Framework_TestCase
array('4-59/2 * * * *', strtotime('2011-06-20 12:04:00'), '2011-06-20 12:04:00', true),
array('4-59/2 * * * *', strtotime('2011-06-20 12:06:00'), '2011-06-20 12:06:00', true),
array('4-59/3 * * * *', strtotime('2011-06-20 12:06:00'), '2011-06-20 12:07:00', false),
//array('0 0 * * 0,2-6', strtotime('2011-06-20 23:09:00'), '2011-06-21 00:00:00', false),
// Test Day of the Week and the Day of the Month (issue #1)
array('0 0 1 1 0', strtotime('2011-06-15 23:09:00'), '2012-01-01 00:00:00', false),
array('0 0 1 JAN 0', strtotime('2011-06-15 23:09:00'), '2012-01-01 00:00:00', false),
array('0 0 1 * 0', strtotime('2011-06-15 23:09:00'), '2012-01-01 00:00:00', false),
array('0 0 L * *', strtotime('2011-07-15 00:00:00'), '2011-07-31 00:00:00', false),
// Test the W day of the week modifier for day of the month field
array('0 0 2W * *', strtotime('2011-07-01 00:00:00'), '2011-07-01 00:00:00', true),
array('0 0 1W * *', strtotime('2011-05-01 00:00:00'), '2011-05-02 00:00:00', false),
@ -161,32 +163,35 @@ class CronExpressionTest extends PHPUnit_Framework_TestCase
array('0 0 28W * *', strtotime('2011-07-01 00:00:00'), '2011-07-28 00:00:00', false),
array('0 0 30W * *', strtotime('2011-07-01 00:00:00'), '2011-07-29 00:00:00', false),
array('0 0 31W * *', strtotime('2011-07-01 00:00:00'), '2011-07-29 00:00:00', false),
// Test the year field
array('* * * * * 2012', strtotime('2011-05-01 00:00:00'), '2012-01-01 00:00:00', false),
// Test the last weekday of a month
array('* * * * 5L', strtotime('2011-07-01 00:00:00'), '2011-07-29 00:00:00', false),
array('* * * * 6L', strtotime('2011-07-01 00:00:00'), '2011-07-30 00:00:00', false),
array('* * * * 7L', strtotime('2011-07-01 00:00:00'), '2011-07-31 00:00:00', false),
array('* * * * 1L', strtotime('2011-07-24 00:00:00'), '2011-07-25 00:00:00', false),
array('* * * * TUEL', strtotime('2011-07-24 00:00:00'), '2011-07-26 00:00:00', false),
array('* * * 1 5L', strtotime('2011-12-25 00:00:00'), '2012-01-27 00:00:00', false),
// Test the hash symbol for the nth weekday of a given month
array('* * * * 5#2', strtotime('2011-07-01 00:00:00'), '2011-07-08 00:00:00', false),
array('* * * * 5#1', strtotime('2011-07-01 00:00:00'), '2011-07-01 00:00:00', true),
array('* * * * 3#4', strtotime('2011-07-01 00:00:00'), '2011-07-27 00:00:00', false),
// Issue #7, documented example failed
['3-59/15 6-12 */15 1 2-5', strtotime('2017-01-08 00:00:00'), '2017-01-31 06:03:00', false],
// https://github.com/laravel/framework/commit/07d160ac3cc9764d5b429734ffce4fa311385403
['* * * * MON-FRI', strtotime('2017-01-08 00:00:00'), strtotime('2017-01-09 00:00:00'), false],
['* * * * TUE', strtotime('2017-01-08 00:00:00'), strtotime('2017-01-10 00:00:00'), false],
);
}
/**
* @covers Cron\CronExpression::isDue
* @covers Cron\CronExpression::getNextRunDate
* @covers Cron\DayOfMonthField
* @covers Cron\DayOfWeekField
* @covers Cron\MinutesField
* @covers Cron\HoursField
* @covers Cron\MonthField
* @covers Cron\YearField
* @covers Cron\CronExpression::getRunDate
* @covers \Cron\CronExpression::isDue
* @covers \Cron\CronExpression::getNextRunDate
* @covers \Cron\DayOfMonthField
* @covers \Cron\DayOfWeekField
* @covers \Cron\MinutesField
* @covers \Cron\HoursField
* @covers \Cron\MonthField
* @covers \Cron\CronExpression::getRunDate
* @dataProvider scheduleProvider
*/
public function testDeterminesIfCronIsDue($schedule, $relativeTime, $nextRun, $isDue)
@ -200,13 +205,21 @@ class CronExpressionTest extends PHPUnit_Framework_TestCase
} elseif (is_int($relativeTime)) {
$relativeTime = date('Y-m-d H:i:s', $relativeTime);
}
$this->assertEquals($isDue, $cron->isDue($relativeTime));
if (is_string($nextRun)) {
$nextRunDate = new DateTime($nextRun);
} elseif (is_int($nextRun)) {
$nextRunDate = new DateTime();
$nextRunDate->setTimestamp($nextRun);
}
$this->assertSame($isDue, $cron->isDue($relativeTime));
$next = $cron->getNextRunDate($relativeTime, 0, true);
$this->assertEquals(new DateTime($nextRun), $next);
$this->assertEquals($nextRunDate, $next);
}
/**
* @covers Cron\CronExpression::isDue
* @covers \Cron\CronExpression::isDue
*/
public function testIsDueHandlesDifferentDates()
{
@ -218,34 +231,104 @@ class CronExpressionTest extends PHPUnit_Framework_TestCase
}
/**
* @covers Cron\CronExpression::isDue
* @covers \Cron\CronExpression::isDue
*/
public function testIsDueHandlesDifferentTimezones()
public function testIsDueHandlesDifferentDefaultTimezones()
{
$originalTimezone = date_default_timezone_get();
$cron = CronExpression::factory('0 15 * * 3'); //Wednesday at 15:00
$date = '2014-01-01 15:00'; //Wednesday
$utc = new DateTimeZone('UTC');
$amsterdam = new DateTimeZone('Europe/Amsterdam');
$tokyo = new DateTimeZone('Asia/Tokyo');
date_default_timezone_set('UTC');
$this->assertTrue($cron->isDue(new DateTime($date, $utc)));
$this->assertFalse($cron->isDue(new DateTime($date, $amsterdam)));
$this->assertFalse($cron->isDue(new DateTime($date, $tokyo)));
$this->assertTrue($cron->isDue(new DateTime($date), 'UTC'));
$this->assertFalse($cron->isDue(new DateTime($date), 'Europe/Amsterdam'));
$this->assertFalse($cron->isDue(new DateTime($date), 'Asia/Tokyo'));
date_default_timezone_set('Europe/Amsterdam');
$this->assertFalse($cron->isDue(new DateTime($date, $utc)));
$this->assertTrue($cron->isDue(new DateTime($date, $amsterdam)));
$this->assertFalse($cron->isDue(new DateTime($date, $tokyo)));
$this->assertFalse($cron->isDue(new DateTime($date), 'UTC'));
$this->assertTrue($cron->isDue(new DateTime($date), 'Europe/Amsterdam'));
$this->assertFalse($cron->isDue(new DateTime($date), 'Asia/Tokyo'));
date_default_timezone_set('Asia/Tokyo');
$this->assertFalse($cron->isDue(new DateTime($date, $utc)));
$this->assertFalse($cron->isDue(new DateTime($date, $amsterdam)));
$this->assertTrue($cron->isDue(new DateTime($date, $tokyo)));
$this->assertFalse($cron->isDue(new DateTime($date), 'UTC'));
$this->assertFalse($cron->isDue(new DateTime($date), 'Europe/Amsterdam'));
$this->assertTrue($cron->isDue(new DateTime($date), 'Asia/Tokyo'));
date_default_timezone_set($originalTimezone);
}
/**
* @covers Cron\CronExpression::getPreviousRunDate
* @covers \Cron\CronExpression::isDue
*/
public function testIsDueHandlesDifferentSuppliedTimezones()
{
$cron = CronExpression::factory('0 15 * * 3'); //Wednesday at 15:00
$date = '2014-01-01 15:00'; //Wednesday
$this->assertTrue($cron->isDue(new DateTime($date, new DateTimeZone('UTC')), 'UTC'));
$this->assertFalse($cron->isDue(new DateTime($date, new DateTimeZone('UTC')), 'Europe/Amsterdam'));
$this->assertFalse($cron->isDue(new DateTime($date, new DateTimeZone('UTC')), 'Asia/Tokyo'));
$this->assertFalse($cron->isDue(new DateTime($date, new DateTimeZone('Europe/Amsterdam')), 'UTC'));
$this->assertTrue($cron->isDue(new DateTime($date, new DateTimeZone('Europe/Amsterdam')), 'Europe/Amsterdam'));
$this->assertFalse($cron->isDue(new DateTime($date, new DateTimeZone('Europe/Amsterdam')), 'Asia/Tokyo'));
$this->assertFalse($cron->isDue(new DateTime($date, new DateTimeZone('Asia/Tokyo')), 'UTC'));
$this->assertFalse($cron->isDue(new DateTime($date, new DateTimeZone('Asia/Tokyo')), 'Europe/Amsterdam'));
$this->assertTrue($cron->isDue(new DateTime($date, new DateTimeZone('Asia/Tokyo')), 'Asia/Tokyo'));
}
/**
* @covers Cron\CronExpression::isDue
*/
public function testIsDueHandlesDifferentTimezonesAsArgument()
{
$cron = CronExpression::factory('0 15 * * 3'); //Wednesday at 15:00
$date = '2014-01-01 15:00'; //Wednesday
$utc = new \DateTimeZone('UTC');
$amsterdam = new \DateTimeZone('Europe/Amsterdam');
$tokyo = new \DateTimeZone('Asia/Tokyo');
$this->assertTrue($cron->isDue(new DateTime($date, $utc), 'UTC'));
$this->assertFalse($cron->isDue(new DateTime($date, $amsterdam), 'UTC'));
$this->assertFalse($cron->isDue(new DateTime($date, $tokyo), 'UTC'));
$this->assertFalse($cron->isDue(new DateTime($date, $utc), 'Europe/Amsterdam'));
$this->assertTrue($cron->isDue(new DateTime($date, $amsterdam), 'Europe/Amsterdam'));
$this->assertFalse($cron->isDue(new DateTime($date, $tokyo), 'Europe/Amsterdam'));
$this->assertFalse($cron->isDue(new DateTime($date, $utc), 'Asia/Tokyo'));
$this->assertFalse($cron->isDue(new DateTime($date, $amsterdam), 'Asia/Tokyo'));
$this->assertTrue($cron->isDue(new DateTime($date, $tokyo), 'Asia/Tokyo'));
}
/**
* @covers Cron\CronExpression::isDue
*/
public function testRecognisesTimezonesAsPartOfDateTime()
{
$cron = CronExpression::factory("0 7 * * *");
$tzCron = "America/New_York";
$tzServer = new \DateTimeZone("Europe/London");
$dtCurrent = \DateTime::createFromFormat("!Y-m-d H:i:s", "2017-10-17 10:00:00", $tzServer);
$dtPrev = $cron->getPreviousRunDate($dtCurrent, 0, true, $tzCron);
$this->assertEquals('1508151600 : 2017-10-16T07:00:00-04:00 : America/New_York', $dtPrev->format("U \: c \: e"));
$dtCurrent = \DateTimeImmutable::createFromFormat("!Y-m-d H:i:s", "2017-10-17 10:00:00", $tzServer);
$dtPrev = $cron->getPreviousRunDate($dtCurrent, 0, true, $tzCron);
$this->assertEquals('1508151600 : 2017-10-16T07:00:00-04:00 : America/New_York', $dtPrev->format("U \: c \: e"));
$dtCurrent = \DateTimeImmutable::createFromFormat("!Y-m-d H:i:s", "2017-10-17 10:00:00", $tzServer);
$dtPrev = $cron->getPreviousRunDate($dtCurrent->format("c"), 0, true, $tzCron);
$this->assertEquals('1508151600 : 2017-10-16T07:00:00-04:00 : America/New_York', $dtPrev->format("U \: c \: e"));
$dtCurrent = \DateTimeImmutable::createFromFormat("!Y-m-d H:i:s", "2017-10-17 10:00:00", $tzServer);
$dtPrev = $cron->getPreviousRunDate($dtCurrent->format("\@U"), 0, true, $tzCron);
$this->assertEquals('1508151600 : 2017-10-16T07:00:00-04:00 : America/New_York', $dtPrev->format("U \: c \: e"));
}
/**
* @covers \Cron\CronExpression::getPreviousRunDate
*/
public function testCanGetPreviousRunDates()
{
@ -266,7 +349,7 @@ class CronExpressionTest extends PHPUnit_Framework_TestCase
}
/**
* @covers Cron\CronExpression::getMultipleRunDates
* @covers \Cron\CronExpression::getMultipleRunDates
*/
public function testProvidesMultipleRunDates()
{
@ -280,28 +363,28 @@ class CronExpressionTest extends PHPUnit_Framework_TestCase
}
/**
* @covers Cron\CronExpression::getMultipleRunDates
* @covers Cron\CronExpression::setMaxIterationCount
* @covers \Cron\CronExpression::getMultipleRunDates
* @covers \Cron\CronExpression::setMaxIterationCount
*/
public function testProvidesMultipleRunDatesForTheFarFuture() {
// Fails with the default 1000 iteration limit
$cron = CronExpression::factory('0 0 12 1 * */2');
$cron = CronExpression::factory('0 0 12 1 *');
$cron->setMaxIterationCount(2000);
$this->assertEquals(array(
new DateTime('2016-01-12 00:00:00'),
new DateTime('2017-01-12 00:00:00'),
new DateTime('2018-01-12 00:00:00'),
new DateTime('2019-01-12 00:00:00'),
new DateTime('2020-01-12 00:00:00'),
new DateTime('2021-01-12 00:00:00'),
new DateTime('2022-01-12 00:00:00'),
new DateTime('2023-01-12 00:00:00'),
new DateTime('2024-01-12 00:00:00'),
new DateTime('2026-01-12 00:00:00'),
new DateTime('2028-01-12 00:00:00'),
new DateTime('2030-01-12 00:00:00'),
new DateTime('2032-01-12 00:00:00'),
), $cron->getMultipleRunDates(9, '2015-04-28 00:00:00', false, true));
}
/**
* @covers Cron\CronExpression
* @covers \Cron\CronExpression
*/
public function testCanIterateOverNextRuns()
{
@ -325,7 +408,7 @@ class CronExpressionTest extends PHPUnit_Framework_TestCase
}
/**
* @covers Cron\CronExpression::getRunDate
* @covers \Cron\CronExpression::getRunDate
*/
public function testSkipsCurrentDateByDefault()
{
@ -333,33 +416,33 @@ class CronExpressionTest extends PHPUnit_Framework_TestCase
$current = new DateTime('now');
$next = $cron->getNextRunDate($current);
$nextPrev = $cron->getPreviousRunDate($next);
$this->assertEquals($current->format('Y-m-d H:i:00'), $nextPrev->format('Y-m-d H:i:s'));
$this->assertSame($current->format('Y-m-d H:i:00'), $nextPrev->format('Y-m-d H:i:s'));
}
/**
* @covers Cron\CronExpression::getRunDate
* @covers \Cron\CronExpression::getRunDate
* @ticket 7
*/
public function testStripsForSeconds()
{
$cron = CronExpression::factory('* * * * *');
$current = new DateTime('2011-09-27 10:10:54');
$this->assertEquals('2011-09-27 10:11:00', $cron->getNextRunDate($current)->format('Y-m-d H:i:s'));
$this->assertSame('2011-09-27 10:11:00', $cron->getNextRunDate($current)->format('Y-m-d H:i:s'));
}
/**
* @covers Cron\CronExpression::getRunDate
* @covers \Cron\CronExpression::getRunDate
*/
public function testFixesPhpBugInDateIntervalMonth()
{
$cron = CronExpression::factory('0 0 27 JAN *');
$this->assertEquals('2011-01-27 00:00:00', $cron->getPreviousRunDate('2011-08-22 00:00:00')->format('Y-m-d H:i:s'));
$this->assertSame('2011-01-27 00:00:00', $cron->getPreviousRunDate('2011-08-22 00:00:00')->format('Y-m-d H:i:s'));
}
public function testIssue29()
{
$cron = CronExpression::factory('@weekly');
$this->assertEquals(
$this->assertSame(
'2013-03-10 00:00:00',
$cron->getPreviousRunDate('2013-03-17 00:00:00')->format('Y-m-d H:i:s')
);
@ -386,7 +469,7 @@ class CronExpressionTest extends PHPUnit_Framework_TestCase
}
/**
* @covers Cron\CronExpression::getRunDate
* @covers \Cron\CronExpression::getRunDate
*/
public function testKeepOriginalTime()
{
@ -394,15 +477,15 @@ class CronExpressionTest extends PHPUnit_Framework_TestCase
$strNow = $now->format(DateTime::ISO8601);
$cron = CronExpression::factory('0 0 * * *');
$cron->getPreviousRunDate($now);
$this->assertEquals($strNow, $now->format(DateTime::ISO8601));
$this->assertSame($strNow, $now->format(DateTime::ISO8601));
}
/**
* @covers Cron\CronExpression::__construct
* @covers Cron\CronExpression::factory
* @covers Cron\CronExpression::isValidExpression
* @covers Cron\CronExpression::setExpression
* @covers Cron\CronExpression::setPart
* @covers \Cron\CronExpression::__construct
* @covers \Cron\CronExpression::factory
* @covers \Cron\CronExpression::isValidExpression
* @covers \Cron\CronExpression::setExpression
* @covers \Cron\CronExpression::setPart
*/
public function testValidationWorks()
{
@ -410,5 +493,68 @@ class CronExpressionTest extends PHPUnit_Framework_TestCase
$this->assertFalse(CronExpression::isValidExpression('* * * 1'));
// Valid
$this->assertTrue(CronExpression::isValidExpression('* * * * 1'));
// Issue #156, 13 is an invalid month
$this->assertFalse(CronExpression::isValidExpression("* * * 13 * "));
// Issue #155, 90 is an invalid second
$this->assertFalse(CronExpression::isValidExpression('90 * * * *'));
// Issue #154, 24 is an invalid hour
$this->assertFalse(CronExpression::isValidExpression("0 24 1 12 0"));
// Issue #125, this is just all sorts of wrong
$this->assertFalse(CronExpression::isValidExpression('990 14 * * mon-fri0345345'));
// see https://github.com/dragonmantank/cron-expression/issues/5
$this->assertTrue(CronExpression::isValidExpression('2,17,35,47 5-7,11-13 * * *'));
}
/**
* Makes sure that 00 is considered a valid value for 0-based fields
* cronie allows numbers with a leading 0, so adding support for this as well
*
* @see https://github.com/dragonmantank/cron-expression/issues/12
*/
public function testDoubleZeroIsValid()
{
$this->assertTrue(CronExpression::isValidExpression('00 * * * *'));
$this->assertTrue(CronExpression::isValidExpression('01 * * * *'));
$this->assertTrue(CronExpression::isValidExpression('* 00 * * *'));
$this->assertTrue(CronExpression::isValidExpression('* 01 * * *'));
$e = CronExpression::factory('00 * * * *');
$this->assertTrue($e->isDue(new DateTime('2014-04-07 00:00:00')));
$e = CronExpression::factory('01 * * * *');
$this->assertTrue($e->isDue(new DateTime('2014-04-07 00:01:00')));
$e = CronExpression::factory('* 00 * * *');
$this->assertTrue($e->isDue(new DateTime('2014-04-07 00:00:00')));
$e = CronExpression::factory('* 01 * * *');
$this->assertTrue($e->isDue(new DateTime('2014-04-07 01:00:00')));
}
/**
* Ranges with large steps should "wrap around" to the appropriate value
* cronie allows for steps that are larger than the range of a field, with it wrapping around like a ring buffer. We
* should do the same.
*
* @see https://github.com/dragonmantank/cron-expression/issues/6
*/
public function testRangesWrapAroundWithLargeSteps()
{
$f = new MonthField();
$this->assertTrue($f->validate('*/123'));
$this->assertSame([4], $f->getRangeForExpression('*/123', 12));
$e = CronExpression::factory('* * * */123 *');
$this->assertTrue($e->isDue(new DateTime('2014-04-07 00:00:00')));
$nextRunDate = $e->getNextRunDate(new DateTime('2014-04-07 00:00:00'));
$this->assertSame('2014-04-07 00:01:00', $nextRunDate->format('Y-m-d H:i:s'));
$nextRunDate = $e->getNextRunDate(new DateTime('2014-05-07 00:00:00'));
$this->assertSame('2015-04-01 00:00:00', $nextRunDate->format('Y-m-d H:i:s'));
}
}

View file

@ -4,27 +4,30 @@ namespace Cron\Tests;
use Cron\DayOfMonthField;
use DateTime;
use PHPUnit_Framework_TestCase;
use PHPUnit\Framework\TestCase;
/**
* @author Michael Dowling <mtdowling@gmail.com>
*/
class DayOfMonthFieldTest extends PHPUnit_Framework_TestCase
class DayOfMonthFieldTest extends TestCase
{
/**
* @covers Cron\DayOfMonthField::validate
* @covers \Cron\DayOfMonthField::validate
*/
public function testValidatesField()
{
$f = new DayOfMonthField();
$this->assertTrue($f->validate('1'));
$this->assertTrue($f->validate('*'));
$this->assertTrue($f->validate('5W,L'));
$this->assertTrue($f->validate('L'));
$this->assertTrue($f->validate('5W'));
$this->assertTrue($f->validate('01'));
$this->assertFalse($f->validate('5W,L'));
$this->assertFalse($f->validate('1.'));
}
/**
* @covers Cron\DayOfMonthField::isSatisfiedBy
* @covers \Cron\DayOfMonthField::isSatisfiedBy
*/
public function testChecksIfSatisfied()
{
@ -33,18 +36,18 @@ class DayOfMonthFieldTest extends PHPUnit_Framework_TestCase
}
/**
* @covers Cron\DayOfMonthField::increment
* @covers \Cron\DayOfMonthField::increment
*/
public function testIncrementsDate()
{
$d = new DateTime('2011-03-15 11:15:00');
$f = new DayOfMonthField();
$f->increment($d);
$this->assertEquals('2011-03-16 00:00:00', $d->format('Y-m-d H:i:s'));
$this->assertSame('2011-03-16 00:00:00', $d->format('Y-m-d H:i:s'));
$d = new DateTime('2011-03-15 11:15:00');
$f->increment($d, true);
$this->assertEquals('2011-03-14 23:59:00', $d->format('Y-m-d H:i:s'));
$this->assertSame('2011-03-14 23:59:00', $d->format('Y-m-d H:i:s'));
}
/**

View file

@ -4,28 +4,30 @@ namespace Cron\Tests;
use Cron\DayOfWeekField;
use DateTime;
use PHPUnit_Framework_TestCase;
use PHPUnit\Framework\TestCase;
/**
* @author Michael Dowling <mtdowling@gmail.com>
*/
class DayOfWeekFieldTest extends PHPUnit_Framework_TestCase
class DayOfWeekFieldTest extends TestCase
{
/**
* @covers Cron\DayOfWeekField::validate
* @covers \Cron\DayOfWeekField::validate
*/
public function testValidatesField()
{
$f = new DayOfWeekField();
$this->assertTrue($f->validate('1'));
$this->assertTrue($f->validate('01'));
$this->assertTrue($f->validate('00'));
$this->assertTrue($f->validate('*'));
$this->assertTrue($f->validate('*/3,1,1-12'));
$this->assertFalse($f->validate('*/3,1,1-12'));
$this->assertTrue($f->validate('SUN-2'));
$this->assertFalse($f->validate('1.'));
}
/**
* @covers Cron\DayOfWeekField::isSatisfiedBy
* @covers \Cron\DayOfWeekField::isSatisfiedBy
*/
public function testChecksIfSatisfied()
{
@ -34,22 +36,22 @@ class DayOfWeekFieldTest extends PHPUnit_Framework_TestCase
}
/**
* @covers Cron\DayOfWeekField::increment
* @covers \Cron\DayOfWeekField::increment
*/
public function testIncrementsDate()
{
$d = new DateTime('2011-03-15 11:15:00');
$f = new DayOfWeekField();
$f->increment($d);
$this->assertEquals('2011-03-16 00:00:00', $d->format('Y-m-d H:i:s'));
$this->assertSame('2011-03-16 00:00:00', $d->format('Y-m-d H:i:s'));
$d = new DateTime('2011-03-15 11:15:00');
$f->increment($d, true);
$this->assertEquals('2011-03-14 23:59:00', $d->format('Y-m-d H:i:s'));
$this->assertSame('2011-03-14 23:59:00', $d->format('Y-m-d H:i:s'));
}
/**
* @covers Cron\DayOfWeekField::isSatisfiedBy
* @covers \Cron\DayOfWeekField::isSatisfiedBy
* @expectedException InvalidArgumentException
* @expectedExceptionMessage Weekday must be a value between 0 and 7. 12 given
*/
@ -60,9 +62,9 @@ class DayOfWeekFieldTest extends PHPUnit_Framework_TestCase
}
/**
* @covers Cron\DayOfWeekField::isSatisfiedBy
* @covers \Cron\DayOfWeekField::isSatisfiedBy
* @expectedException InvalidArgumentException
* @expectedExceptionMessage There are never more than 5 of a given weekday in a month
* @expectedExceptionMessage There are never more than 5 or less than 1 of a given weekday in a month
*/
public function testValidatesHashValueNth()
{
@ -71,7 +73,7 @@ class DayOfWeekFieldTest extends PHPUnit_Framework_TestCase
}
/**
* @covers Cron\DayOfWeekField::validate
* @covers \Cron\DayOfWeekField::validate
*/
public function testValidateWeekendHash()
{
@ -87,7 +89,7 @@ class DayOfWeekFieldTest extends PHPUnit_Framework_TestCase
}
/**
* @covers Cron\DayOfWeekField::isSatisfiedBy
* @covers \Cron\DayOfWeekField::isSatisfiedBy
*/
public function testHandlesZeroAndSevenDayOfTheWeekValues()
{
@ -114,4 +116,14 @@ class DayOfWeekFieldTest extends PHPUnit_Framework_TestCase
$this->assertFalse($f->validate('*-'));
$this->assertFalse($f->validate(',-'));
}
/**
* @see https://github.com/laravel/framework/commit/07d160ac3cc9764d5b429734ffce4fa311385403
*/
public function testLiteralsExpandProperly()
{
$f = new DayOfWeekField();
$this->assertTrue($f->validate('MON-FRI'));
$this->assertSame([1,2,3,4,5], $f->getRangeForExpression('MON-FRI', 7));
}
}

View file

@ -3,15 +3,15 @@
namespace Cron\Tests;
use Cron\FieldFactory;
use PHPUnit_Framework_TestCase;
use PHPUnit\Framework\TestCase;
/**
* @author Michael Dowling <mtdowling@gmail.com>
*/
class FieldFactoryTest extends PHPUnit_Framework_TestCase
class FieldFactoryTest extends TestCase
{
/**
* @covers Cron\FieldFactory::getField
* @covers \Cron\FieldFactory::getField
*/
public function testRetrievesFieldInstances()
{
@ -21,18 +21,17 @@ class FieldFactoryTest extends PHPUnit_Framework_TestCase
2 => 'Cron\DayOfMonthField',
3 => 'Cron\MonthField',
4 => 'Cron\DayOfWeekField',
5 => 'Cron\YearField'
);
$f = new FieldFactory();
foreach ($mappings as $position => $class) {
$this->assertEquals($class, get_class($f->getField($position)));
$this->assertSame($class, get_class($f->getField($position)));
}
}
/**
* @covers Cron\FieldFactory::getField
* @covers \Cron\FieldFactory::getField
* @expectedException InvalidArgumentException
*/
public function testValidatesFieldPosition()

View file

@ -4,41 +4,43 @@ namespace Cron\Tests;
use Cron\HoursField;
use DateTime;
use PHPUnit_Framework_TestCase;
use PHPUnit\Framework\TestCase;
/**
* @author Michael Dowling <mtdowling@gmail.com>
*/
class HoursFieldTest extends PHPUnit_Framework_TestCase
class HoursFieldTest extends TestCase
{
/**
* @covers Cron\HoursField::validate
* @covers \Cron\HoursField::validate
*/
public function testValidatesField()
{
$f = new HoursField();
$this->assertTrue($f->validate('1'));
$this->assertTrue($f->validate('00'));
$this->assertTrue($f->validate('01'));
$this->assertTrue($f->validate('*'));
$this->assertTrue($f->validate('*/3,1,1-12'));
$this->assertFalse($f->validate('*/3,1,1-12'));
}
/**
* @covers Cron\HoursField::increment
* @covers \Cron\HoursField::increment
*/
public function testIncrementsDate()
{
$d = new DateTime('2011-03-15 11:15:00');
$f = new HoursField();
$f->increment($d);
$this->assertEquals('2011-03-15 12:00:00', $d->format('Y-m-d H:i:s'));
$this->assertSame('2011-03-15 12:00:00', $d->format('Y-m-d H:i:s'));
$d->setTime(11, 15, 0);
$f->increment($d, true);
$this->assertEquals('2011-03-15 10:59:00', $d->format('Y-m-d H:i:s'));
$this->assertSame('2011-03-15 10:59:00', $d->format('Y-m-d H:i:s'));
}
/**
* @covers Cron\HoursField::increment
* @covers \Cron\HoursField::increment
*/
public function testIncrementsDateWithThirtyMinuteOffsetTimezone()
{
@ -47,16 +49,16 @@ class HoursFieldTest extends PHPUnit_Framework_TestCase
$d = new DateTime('2011-03-15 11:15:00');
$f = new HoursField();
$f->increment($d);
$this->assertEquals('2011-03-15 12:00:00', $d->format('Y-m-d H:i:s'));
$this->assertSame('2011-03-15 12:00:00', $d->format('Y-m-d H:i:s'));
$d->setTime(11, 15, 0);
$f->increment($d, true);
$this->assertEquals('2011-03-15 10:59:00', $d->format('Y-m-d H:i:s'));
$this->assertSame('2011-03-15 10:59:00', $d->format('Y-m-d H:i:s'));
date_default_timezone_set($tz);
}
/**
* @covers Cron\HoursField::increment
* @covers \Cron\HoursField::increment
*/
public function testIncrementDateWithFifteenMinuteOffsetTimezone()
{
@ -65,11 +67,11 @@ class HoursFieldTest extends PHPUnit_Framework_TestCase
$d = new DateTime('2011-03-15 11:15:00');
$f = new HoursField();
$f->increment($d);
$this->assertEquals('2011-03-15 12:00:00', $d->format('Y-m-d H:i:s'));
$this->assertSame('2011-03-15 12:00:00', $d->format('Y-m-d H:i:s'));
$d->setTime(11, 15, 0);
$f->increment($d, true);
$this->assertEquals('2011-03-15 10:59:00', $d->format('Y-m-d H:i:s'));
$this->assertSame('2011-03-15 10:59:00', $d->format('Y-m-d H:i:s'));
date_default_timezone_set($tz);
}
}

View file

@ -0,0 +1,51 @@
<?php
namespace Cron\Tests;
use Cron\MinutesField;
use DateTime;
use PHPUnit\Framework\TestCase;
/**
* @author Michael Dowling <mtdowling@gmail.com>
*/
class MinutesFieldTest extends TestCase
{
/**
* @covers \Cron\MinutesField::validate
*/
public function testValidatesField()
{
$f = new MinutesField();
$this->assertTrue($f->validate('1'));
$this->assertTrue($f->validate('*'));
$this->assertFalse($f->validate('*/3,1,1-12'));
}
/**
* @covers \Cron\MinutesField::increment
*/
public function testIncrementsDate()
{
$d = new DateTime('2011-03-15 11:15:00');
$f = new MinutesField();
$f->increment($d);
$this->assertSame('2011-03-15 11:16:00', $d->format('Y-m-d H:i:s'));
$f->increment($d, true);
$this->assertSame('2011-03-15 11:15:00', $d->format('Y-m-d H:i:s'));
}
/**
* Various bad syntaxes that are reported to work, but shouldn't.
*
* @author Chris Tankersley
* @since 2017-08-18
*/
public function testBadSyntaxesShouldNotValidate()
{
$f = new MinutesField();
$this->assertFalse($f->validate('*-1'));
$this->assertFalse($f->validate('1-2-3'));
$this->assertFalse($f->validate('-1'));
}
}

View file

@ -4,42 +4,42 @@ namespace Cron\Tests;
use Cron\MonthField;
use DateTime;
use PHPUnit_Framework_TestCase;
use PHPUnit\Framework\TestCase;
/**
* @author Michael Dowling <mtdowling@gmail.com>
*/
class MonthFieldTest extends PHPUnit_Framework_TestCase
class MonthFieldTest extends TestCase
{
/**
* @covers Cron\MonthField::validate
* @covers \Cron\MonthField::validate
*/
public function testValidatesField()
{
$f = new MonthField();
$this->assertTrue($f->validate('12'));
$this->assertTrue($f->validate('*'));
$this->assertTrue($f->validate('*/10,2,1-12'));
$this->assertFalse($f->validate('*/10,2,1-12'));
$this->assertFalse($f->validate('1.fix-regexp'));
}
/**
* @covers Cron\MonthField::increment
* @covers \Cron\MonthField::increment
*/
public function testIncrementsDate()
{
$d = new DateTime('2011-03-15 11:15:00');
$f = new MonthField();
$f->increment($d);
$this->assertEquals('2011-04-01 00:00:00', $d->format('Y-m-d H:i:s'));
$this->assertSame('2011-04-01 00:00:00', $d->format('Y-m-d H:i:s'));
$d = new DateTime('2011-03-15 11:15:00');
$f->increment($d, true);
$this->assertEquals('2011-02-28 23:59:00', $d->format('Y-m-d H:i:s'));
$this->assertSame('2011-02-28 23:59:00', $d->format('Y-m-d H:i:s'));
}
/**
* @covers Cron\MonthField::increment
* @covers \Cron\MonthField::increment
*/
public function testIncrementsDateWithThirtyMinuteTimezone()
{
@ -48,34 +48,34 @@ class MonthFieldTest extends PHPUnit_Framework_TestCase
$d = new DateTime('2011-03-31 11:59:59');
$f = new MonthField();
$f->increment($d);
$this->assertEquals('2011-04-01 00:00:00', $d->format('Y-m-d H:i:s'));
$this->assertSame('2011-04-01 00:00:00', $d->format('Y-m-d H:i:s'));
$d = new DateTime('2011-03-15 11:15:00');
$f->increment($d, true);
$this->assertEquals('2011-02-28 23:59:00', $d->format('Y-m-d H:i:s'));
$this->assertSame('2011-02-28 23:59:00', $d->format('Y-m-d H:i:s'));
date_default_timezone_set($tz);
}
/**
* @covers Cron\MonthField::increment
* @covers \Cron\MonthField::increment
*/
public function testIncrementsYearAsNeeded()
{
$f = new MonthField();
$d = new DateTime('2011-12-15 00:00:00');
$f->increment($d);
$this->assertEquals('2012-01-01 00:00:00', $d->format('Y-m-d H:i:s'));
$this->assertSame('2012-01-01 00:00:00', $d->format('Y-m-d H:i:s'));
}
/**
* @covers Cron\MonthField::increment
* @covers \Cron\MonthField::increment
*/
public function testDecrementsYearAsNeeded()
{
$f = new MonthField();
$d = new DateTime('2011-01-15 00:00:00');
$f->increment($d, true);
$this->assertEquals('2010-12-31 23:59:00', $d->format('Y-m-d H:i:s'));
$this->assertSame('2010-12-31 23:59:00', $d->format('Y-m-d H:i:s'));
}
}

View file

@ -18,6 +18,13 @@ class DNSCheckValidation implements EmailValidation
* @var InvalidEmail
*/
private $error;
public function __construct()
{
if (!extension_loaded('intl')) {
throw new \LogicException(sprintf('The %s class requires the Intl extension.', __CLASS__));
}
}
public function isValid($email, EmailLexer $emailLexer)
{
@ -44,7 +51,11 @@ class DNSCheckValidation implements EmailValidation
protected function checkDNS($host)
{
$host = rtrim(idn_to_ascii($host, IDNA_DEFAULT, INTL_IDNA_VARIANT_UTS46), '.') . '.';
$variant = INTL_IDNA_VARIANT_2003;
if ( defined('INTL_IDNA_VARIANT_UTS46') ) {
$variant = INTL_IDNA_VARIANT_UTS46;
}
$host = rtrim(idn_to_ascii($host, IDNA_DEFAULT, $variant), '.') . '.';
$Aresult = true;
$MXresult = checkdnsrr($host, 'MX');

View file

@ -16,7 +16,7 @@ class SpoofCheckValidation implements EmailValidation
public function __construct()
{
if (!class_exists(Spoofchecker::class)) {
if (!extension_loaded('intl')) {
throw new \LogicException(sprintf('The %s class requires the Intl extension.', __CLASS__));
}
}

View file

@ -6,7 +6,7 @@ With the help of [PHPStorm](https://www.jetbrains.com/phpstorm/)
## Requirements ##
* [Composer](https://getcomposer.org) is required for installation
* [Spoofchecking](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/SpoofCheckValidation.php) validation requires that your PHP system have the [PHP Internationalization Libraries](https://php.net/manual/en/book.intl.php) (also known as PHP Intl)
* [Spoofchecking](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/SpoofCheckValidation.php) and [DNSCheckValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/DNSCheckValidation.php) validation requires that your PHP system have the [PHP Internationalization Libraries](https://php.net/manual/en/book.intl.php) (also known as PHP Intl)
## Installation ##

View file

@ -35,5 +35,10 @@
"psr-4": {
"Egulias\\EmailValidator\\": "EmailValidator"
}
},
"autoload-dev": {
"psr-4": {
"Egulias\\Tests\\": "test"
}
}
}

View file

@ -14,9 +14,9 @@
"illuminate/contracts": "~5.0"
},
"require-dev": {
"illuminate/http": "~5.0",
"mockery/mockery": "~0.9.3",
"phpunit/phpunit": "^5.7"
"illuminate/http": "~5.6",
"mockery/mockery": "~1.0",
"phpunit/phpunit": "^6.0"
},
"autoload": {
"psr-4": {
@ -24,9 +24,6 @@
}
},
"extra": {
"branch-alias": {
"dev-master": "3.3-dev"
},
"laravel": {
"providers": [
"Fideloper\\Proxy\\TrustedProxyServiceProvider"

View file

@ -12,60 +12,34 @@ return [
* within TrustedProxy to trust any proxy
* that connects directly to your server,
* a requirement when you cannot know the address
* of your proxy (e.g. if using Rackspace balancers).
* of your proxy (e.g. if using ELB or similar).
*
* The "**" character is syntactic sugar within
* TrustedProxy to trust not just any proxy that
* connects directly to your server, but also
* proxies that connect to those proxies, and all
* the way back until you reach the original source
* IP. It will mean that $request->getClientIp()
* always gets the originating client IP, no matter
* how many proxies that client's request has
* subsequently passed through.
*/
'proxies' => [
'192.168.1.10',
],
'proxies' => null, // [<ip addresses>,], '*'
/*
* To trust one or more specific proxies that connect
* directly to your server, use an array of IP addresses:
*/
# 'proxies' => ['192.168.1.1'],
/*
* Or, to trust all proxies that connect
* directly to your server, uncomment this:
* directly to your server, use a "*"
*/
# 'proxies' => '*',
/*
* Or, to trust ALL proxies, including those that
* are in a chain of forwarding, uncomment this:
*/
# 'proxies' => '**',
/*
* Default Header Names
*
* Change these if the proxy does
* not send the default header names.
*
* Note that headers such as X-Forwarded-For
* are transformed to HTTP_X_FORWARDED_FOR format.
*
* The following are Symfony defaults, found in
* \Symfony\Component\HttpFoundation\Request::$trustedHeaders
*
* You may optionally set headers to 'null' here if you'd like
* for them to be considered untrusted instead. Ex:
*
* Illuminate\Http\Request::HEADER_CLIENT_HOST => null,
* Which headers to use to detect proxy related data (For, Host, Proto, Port)
*
* WARNING: If you're using AWS Elastic Load Balancing or Heroku,
* the FORWARDED and X_FORWARDED_HOST headers should be set to null
* as they are currently unsupported there.
* Options include:
*
* - Illuminate\Http\Request::HEADER_X_FORWARDED_ALL (use all x-forwarded-* headers to establish trust)
* - Illuminate\Http\Request::HEADER_FORWARDED (use the FORWARDED header to establish trust)
*
* @link https://symfony.com/doc/current/deployment/proxies.html
*/
'headers' => [
(defined('Illuminate\Http\Request::HEADER_FORWARDED') ? Illuminate\Http\Request::HEADER_FORWARDED : 'forwarded') => 'FORWARDED',
Illuminate\Http\Request::HEADER_CLIENT_IP => 'X_FORWARDED_FOR',
Illuminate\Http\Request::HEADER_CLIENT_HOST => 'X_FORWARDED_HOST',
Illuminate\Http\Request::HEADER_CLIENT_PROTO => 'X_FORWARDED_PROTO',
Illuminate\Http\Request::HEADER_CLIENT_PORT => 'X_FORWARDED_PORT',
]
'headers' => Illuminate\Http\Request::HEADER_X_FORWARDED_ALL,
];

View file

@ -3,6 +3,7 @@
namespace Fideloper\Proxy;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Contracts\Config\Repository;
class TrustProxies
@ -48,9 +49,9 @@ class TrustProxies
*
* @return mixed
*/
public function handle($request, Closure $next)
public function handle(Request $request, Closure $next)
{
$this->setTrustedProxyHeaderNames($request);
$request::setTrustedProxies([], $this->getTrustedHeaderNames()); // Reset trusted proxies between requests
$this->setTrustedProxyIpAddresses($request);
return $next($request);
@ -61,88 +62,45 @@ class TrustProxies
*
* @param \Illuminate\Http\Request $request
*/
protected function setTrustedProxyIpAddresses($request)
protected function setTrustedProxyIpAddresses(Request $request)
{
$trustedIps = $this->proxies ?: $this->config->get('trustedproxy.proxies');
// We only trust specific IP addresses
// Only trust specific IP addresses
if (is_array($trustedIps)) {
return $this->setTrustedProxyIpAddressesToSpecificIps($request, $trustedIps);
}
// We trust any IP address that calls us, but not proxies further
// up the forwarding chain.
// TODO: Determine if this should only trust the first IP address
// Currently it trusts the entire chain (array of IPs),
// potentially making the "**" convention redundant.
if ($trustedIps === '*') {
// Trust any IP address that calls us
// `**` for backwards compatibility, but is depreciated
if ($trustedIps === '*' || $trustedIps === '**') {
return $this->setTrustedProxyIpAddressesToTheCallingIp($request);
}
// We trust all proxies. Those that call us, and those that are
// further up the calling chain (e.g., where the X-FORWARDED-FOR
// header has multiple IP addresses listed);
if ($trustedIps === '**') {
return $this->setTrustedProxyIpAddressesToAllIps($request);
}
}
/**
* We specify the IP addresses to trust explicitly.
* Specify the IP addresses to trust explicitly.
*
* @param \Illuminate\Http\Request $request
* @param array $trustedIps
*/
private function setTrustedProxyIpAddressesToSpecificIps($request, $trustedIps)
private function setTrustedProxyIpAddressesToSpecificIps(Request $request, $trustedIps)
{
$request->setTrustedProxies((array) $trustedIps, $this->getTrustedHeaderSet());
$request->setTrustedProxies((array) $trustedIps, $this->getTrustedHeaderNames());
}
/**
* We set the trusted proxy to be the first IP addresses received.
* Set the trusted proxy to be the IP address calling this servers
*
* @param \Illuminate\Http\Request $request
*/
private function setTrustedProxyIpAddressesToTheCallingIp($request)
private function setTrustedProxyIpAddressesToTheCallingIp(Request $request)
{
$request->setTrustedProxies($request->getClientIps(), $this->getTrustedHeaderSet());
$request->setTrustedProxies([$request->server->get('REMOTE_ADDR')], $this->getTrustedHeaderNames());
}
/**
* Trust all IP Addresses.
*
* @param \Illuminate\Http\Request $request
*/
private function setTrustedProxyIpAddressesToAllIps($request)
{
// 0.0.0.0/0 is the CIDR for all ipv4 addresses
// 2000:0:0:0:0:0:0:0/3 is the CIDR for all ipv6 addresses currently
// allocated http://www.iana.org/assignments/ipv6-unicast-address-assignments/ipv6-unicast-address-assignments.xhtml
$request->setTrustedProxies(['0.0.0.0/0', '2000:0:0:0:0:0:0:0/3'], $this->getTrustedHeaderSet());
}
/**
* Set the trusted header names based on the content of trustedproxy.headers.
*
* Note: Depreciated in Symfony 3.3+, but available for backwards compatibility.
*
* @depreciated
*
* @param \Illuminate\Http\Request $request
*/
protected function setTrustedProxyHeaderNames($request)
{
$trustedHeaderNames = $this->getTrustedHeaderNames();
if(!is_array($trustedHeaderNames)) { return; } // Leave the defaults
foreach ($trustedHeaderNames as $headerKey => $headerName) {
$request->setTrustedHeaderName($headerKey, $headerName);
}
}
/**
* Retrieve trusted header names, falling back to defaults if config not set.
* Retrieve trusted header name(s), falling back to defaults if config not set.
*
* @return array
*/
@ -150,32 +108,4 @@ class TrustProxies
{
return $this->headers ?: $this->config->get('trustedproxy.headers');
}
/**
* Construct bit field integer of the header set that setTrustedProxies() expects.
*
* @return int
*/
protected function getTrustedHeaderSet()
{
$trustedHeaderNames = $this->getTrustedHeaderNames();
$headerKeys = array_keys($this->getTrustedHeaderNames());
return array_reduce($headerKeys, function ($set, $key) use ($trustedHeaderNames) {
// PHP 7+ gives a warning if non-numeric value is used
// resulting in a thrown ErrorException within Laravel
// This error occurs with Symfony < 3.3, PHP7+
if(! is_numeric($key)) {
return $set;
}
// If the header value is null, it is a distrusted header,
// so we will ignore it and move on.
if (is_null($trustedHeaderNames[$key])) {
return $set;
}
return $set | $key;
}, 0);
}
}

View file

@ -15,7 +15,7 @@ class TrustedProxyServiceProvider extends ServiceProvider
*/
public function boot()
{
$source = realpath(__DIR__.'/../config/trustedproxy.php');
$source = realpath($raw = __DIR__.'/../config/trustedproxy.php') ?: $raw;
if ($this->app instanceof LaravelApplication && $this->app->runningInConsole()) {
$this->publishes([$source => config_path('trustedproxy.php')]);
@ -23,7 +23,10 @@ class TrustedProxyServiceProvider extends ServiceProvider
$this->app->configure('trustedproxy');
}
$this->mergeConfigFrom($source, 'trustedproxy');
if ($this->app instanceof LaravelApplication && ! $this->app->configurationIsCached()) {
$this->mergeConfigFrom($source, 'trustedproxy');
}
}
/**

View file

@ -1,3 +1,7 @@
# 2.2.0
* Support PHP 7.2
# 2.1.0
* Add a `SystemFacade` to allow clients to override Whoops behavior.

View file

@ -36,7 +36,7 @@
},
"extra": {
"branch-alias": {
"dev-master": "2.1-dev"
"dev-master": "2.2-dev"
}
}
}

View file

@ -507,6 +507,10 @@ class PrettyPageHandler extends Handler
$callback = call_user_func($this->editors[$this->editor], $filePath, $line);
}
if (empty($callback)) {
return [];
}
if (is_string($callback)) {
return [
'ajax' => false,

View file

@ -9,6 +9,7 @@ php:
- 5.6
- 7.0
- 7.1
- 7.2
- nightly
sudo: false

View file

@ -1,6 +1,86 @@
CHANGELOG
=========
2018-07-12, v1.8.0
------------------
- Typo in readme [\#1521](https://github.com/fzaninotto/Faker/pull/1521) ([jmhobbs](https://github.com/jmhobbs))
- Replaced Hilll with Hill [\#1516](https://github.com/fzaninotto/Faker/pull/1516) ([MarkVaughn](https://github.com/MarkVaughn))
- \[it\_IT\] Improve vat ID generated using official rules [\#1508](https://github.com/fzaninotto/Faker/pull/1508) ([mavimo](https://github.com/mavimo))
- \[hu\_HU\] Address: Fix unnecessary new line in string [\#1507](https://github.com/fzaninotto/Faker/pull/1507) ([ntomka](https://github.com/ntomka))
- add phone numer format [\#1506](https://github.com/fzaninotto/Faker/pull/1506) ([Enosh-Yu](https://github.com/Enosh-Yu))
- Fix typo in fr\_CA Provider [\#1505](https://github.com/fzaninotto/Faker/pull/1505) ([ultreson](https://github.com/ultreson))
- Add fake-car provider link [\#1497](https://github.com/fzaninotto/Faker/pull/1497) ([pelmered](https://github.com/pelmered))
- create `passthrough` function [\#1493](https://github.com/fzaninotto/Faker/pull/1493) ([browner12](https://github.com/browner12))
- update Polish bank list [\#1482](https://github.com/fzaninotto/Faker/pull/1482) ([IonBazan](https://github.com/IonBazan))
- Update the parameters to check if the setter is callable [\#1470](https://github.com/fzaninotto/Faker/pull/1470) ([rossmitchell](https://github.com/rossmitchell))
- Push the max date far into the future so the test can pass [\#1469](https://github.com/fzaninotto/Faker/pull/1469) ([rossmitchell](https://github.com/rossmitchell))
- Update Address.php [\#1465](https://github.com/fzaninotto/Faker/pull/1465) ([Saibamen](https://github.com/Saibamen))
- Turkish identity number for tr\_TR [\#1462](https://github.com/fzaninotto/Faker/pull/1462) ([aykutaras](https://github.com/aykutaras))
- Fixing rare iin with 13-digits. [\#1450](https://github.com/fzaninotto/Faker/pull/1450) ([vadimonus](https://github.com/vadimonus))
- Fix Polish PESEL faker [\#1449](https://github.com/fzaninotto/Faker/pull/1449) ([Dartui](https://github.com/Dartui))
- Adds valid 08 number formats for fr\_FR [\#1439](https://github.com/fzaninotto/Faker/pull/1439) ([ppelgrims](https://github.com/ppelgrims))
- Add YouTube provider link [\#1422](https://github.com/fzaninotto/Faker/pull/1422) ([aalaap](https://github.com/aalaap))
- Update PHPDoc of the DateTime provider. [\#1419](https://github.com/fzaninotto/Faker/pull/1419) ([tomzx](https://github.com/tomzx))
- Normalize name of variable [\#1412](https://github.com/fzaninotto/Faker/pull/1412) ([eaglewu](https://github.com/eaglewu))
- Added "blockchain" to en-us company provider catchPhrase method [\#1411](https://github.com/fzaninotto/Faker/pull/1411) ([samoldenburg](https://github.com/samoldenburg))
- Fix for Spot2 ORM EntityPopulator [\#1408](https://github.com/fzaninotto/Faker/pull/1408) ([michal-borek](https://github.com/michal-borek))
- TH color name [\#1404](https://github.com/fzaninotto/Faker/pull/1404) ([Naruedom](https://github.com/Naruedom))
- added Malaysia \[ms\_MY\] locale [\#1403](https://github.com/fzaninotto/Faker/pull/1403) ([kenfai](https://github.com/kenfai))
- Implementation of the function that generates Brazilian area codes fixed. [\#1401](https://github.com/fzaninotto/Faker/pull/1401) ([jackmiras](https://github.com/jackmiras))
- VISA retired the 13 digit PAN moved to new cardParams [\#1400](https://github.com/fzaninotto/Faker/pull/1400) ([hppycoder](https://github.com/hppycoder))
- Remove unused variable inside closure [\#1395](https://github.com/fzaninotto/Faker/pull/1395) ([carusogabriel](https://github.com/carusogabriel))
- .nz domain updates [\#1393](https://github.com/fzaninotto/Faker/pull/1393) ([xurizaemon](https://github.com/xurizaemon))
- Add licenceCode method in the to es\_ES person provider [\#1392](https://github.com/fzaninotto/Faker/pull/1392) ([ffiguereo](https://github.com/ffiguereo))
- allow `randomElements` to accept a Traversable object [\#1389](https://github.com/fzaninotto/Faker/pull/1389) ([browner12](https://github.com/browner12))
- Doc: rg remove formatting [\#1387](https://github.com/fzaninotto/Faker/pull/1387) ([emtudo](https://github.com/emtudo))
- Add numbers with start 4 [\#1386](https://github.com/fzaninotto/Faker/pull/1386) ([emtudo](https://github.com/emtudo))
- update th\_TH mobile number format [\#1385](https://github.com/fzaninotto/Faker/pull/1385) ([earthpyy](https://github.com/earthpyy))
- Translate country names for lv\_LV provider. [\#1383](https://github.com/fzaninotto/Faker/pull/1383) ([ronaldsgailis](https://github.com/ronaldsgailis))
- Clean elses [\#1382](https://github.com/fzaninotto/Faker/pull/1382) ([carusogabriel](https://github.com/carusogabriel))
- French vat formatter [\#1381](https://github.com/fzaninotto/Faker/pull/1381) ([ppelgrims](https://github.com/ppelgrims))
- Replaces rtrim with preg\_replace [\#1380](https://github.com/fzaninotto/Faker/pull/1380) ([ppelgrims](https://github.com/ppelgrims))
- Refactoring tests [\#1375](https://github.com/fzaninotto/Faker/pull/1375) ([carusogabriel](https://github.com/carusogabriel))
- Added link in readme to provider FakerRestaurant [\#1374](https://github.com/fzaninotto/Faker/pull/1374) ([jzonta](https://github.com/jzonta))
- Remove obsolete currency codes [\#1373](https://github.com/fzaninotto/Faker/pull/1373) ([tpraxl](https://github.com/tpraxl))
- \[ru\_RU\] Updated countries and added source link [\#1372](https://github.com/fzaninotto/Faker/pull/1372) ([ilyahoilik](https://github.com/ilyahoilik))
- Test against PHP 7.2 [\#1371](https://github.com/fzaninotto/Faker/pull/1371) ([carusogabriel](https://github.com/carusogabriel))
- Feature: nl\_BE text provider [\#1370](https://github.com/fzaninotto/Faker/pull/1370) ([rauwebieten](https://github.com/rauwebieten))
- default value for Payment::iban\(\) country code [\#1369](https://github.com/fzaninotto/Faker/pull/1369) ([madmanmax](https://github.com/madmanmax))
- skip test failing on bigendian [\#1365](https://github.com/fzaninotto/Faker/pull/1365) ([remicollet](https://github.com/remicollet))
- Update Person.php [\#1364](https://github.com/fzaninotto/Faker/pull/1364) ([majamusan](https://github.com/majamusan))
- Prevent errors on private methods [\#1363](https://github.com/fzaninotto/Faker/pull/1363) ([petecoop](https://github.com/petecoop))
- adds rijksregisternummer [\#1361](https://github.com/fzaninotto/Faker/pull/1361) ([ppelgrims](https://github.com/ppelgrims))
- Add secondary address to fr\_FR provider [\#1356](https://github.com/fzaninotto/Faker/pull/1356) ([nicodmf](https://github.com/nicodmf))
- Add company provider for tr\_TR [\#1355](https://github.com/fzaninotto/Faker/pull/1355) ([yuks](https://github.com/yuks))
- nb\_NO provider updates [\#1350](https://github.com/fzaninotto/Faker/pull/1350) ([alexqhj](https://github.com/alexqhj))
- only test available date range on 32-bit [\#1348](https://github.com/fzaninotto/Faker/pull/1348) ([remicollet](https://github.com/remicollet))
- Bump PHPUnit version for namespace compatibility [\#1345](https://github.com/fzaninotto/Faker/pull/1345) ([carusogabriel](https://github.com/carusogabriel))
- Use PSR-1 for PHPUnit TestCase [\#1344](https://github.com/fzaninotto/Faker/pull/1344) ([carusogabriel](https://github.com/carusogabriel))
- Fix FR\_fr 07 prefix mobile number generation [\#1343](https://github.com/fzaninotto/Faker/pull/1343) ([svanpoeck](https://github.com/svanpoeck))
- Update Text.php [\#1339](https://github.com/fzaninotto/Faker/pull/1339) ([gulaandrij](https://github.com/gulaandrij))
- Add two new company type in the Swiss Provider [\#1336](https://github.com/fzaninotto/Faker/pull/1336) ([pvullioud](https://github.com/pvullioud))
- Change symbol 'minus' with code 226 to 'minus' with code 45 [\#1333](https://github.com/fzaninotto/Faker/pull/1333) ([Negasus](https://github.com/Negasus))
- \[sl\_SI\] Created provider for Company [\#1331](https://github.com/fzaninotto/Faker/pull/1331) ([alesvaupotic](https://github.com/alesvaupotic))
- Update city name [\#1328](https://github.com/fzaninotto/Faker/pull/1328) ([s9801077](https://github.com/s9801077))
- Fix \#1305 realText in some cases breaks last character [\#1326](https://github.com/fzaninotto/Faker/pull/1326) ([iamraccoon](https://github.com/iamraccoon))
- Real Dutch postal codes [\#1323](https://github.com/fzaninotto/Faker/pull/1323) ([ametad](https://github.com/ametad))
- Added male and female titles for the en\_ZA locale [\#1321](https://github.com/fzaninotto/Faker/pull/1321) ([ViGouRCanberra](https://github.com/ViGouRCanberra))
- Add German Email Providers [\#1320](https://github.com/fzaninotto/Faker/pull/1320) ([Stoffo](https://github.com/Stoffo))
- Fix "Resource temporarily unavailable" [\#1319](https://github.com/fzaninotto/Faker/pull/1319) ([eberkund](https://github.com/eberkund))
- Introduced the ability to specify a default timezone... [\#1316](https://github.com/fzaninotto/Faker/pull/1316) ([telkins](https://github.com/telkins))
- South African licence codes [\#1315](https://github.com/fzaninotto/Faker/pull/1315) ([royalmitten](https://github.com/royalmitten))
- Fix with incorrect name city. [\#1309](https://github.com/fzaninotto/Faker/pull/1309) ([zzenmate](https://github.com/zzenmate))
- Fixed type-o in readme under section about Language specific formatters [\#1302](https://github.com/fzaninotto/Faker/pull/1302) ([espenkn](https://github.com/espenkn))
- Update Person.php [\#1298](https://github.com/fzaninotto/Faker/pull/1298) ([yappkahowe](https://github.com/yappkahowe))
- Allow children classes to access self::$suffix [\#1296](https://github.com/fzaninotto/Faker/pull/1296) ([greg0ire](https://github.com/greg0ire))
- Fix with namespace payment provider for uk\_UA [\#1293](https://github.com/fzaninotto/Faker/pull/1293) ([zzenmate](https://github.com/zzenmate))
- Update zh\_TW text provider [\#1292](https://github.com/fzaninotto/Faker/pull/1292) ([s9801077](https://github.com/s9801077))
- Fix CURL status code in ImageTest.php [\#1290](https://github.com/fzaninotto/Faker/pull/1290) ([Sanfra1407](https://github.com/Sanfra1407))
- Tax Id for companies and new formats for es\_VE [\#1287](https://github.com/fzaninotto/Faker/pull/1287) ([DIOHz0r](https://github.com/DIOHz0r))
- Added idNumber for nl\_NL [\#1283](https://github.com/fzaninotto/Faker/pull/1283) ([artorozenga](https://github.com/artorozenga))
- Feature/en us company ein [\#1273](https://github.com/fzaninotto/Faker/pull/1273) ([zachflower](https://github.com/zachflower))
2017-08-15, v1.7.0
------------------

View file

@ -13,7 +13,7 @@
"php": "^5.3.3 || ^7.0"
},
"require-dev": {
"phpunit/phpunit": "^4.0 || ^5.0",
"phpunit/phpunit": "^4.8.35 || ^5.7",
"squizlabs/php_codesniffer": "^1.5",
"ext-intl": "*"
},

View file

@ -180,17 +180,17 @@ Each of the generator properties (like `name`, `address`, and `lorem`) are calle
### `Faker\Provider\DateTime`
unixTime($max = 'now') // 58781813
dateTime($max = 'now', $timezone = date_default_timezone_get()) // DateTime('2008-04-25 08:37:17', 'UTC')
dateTimeAD($max = 'now', $timezone = date_default_timezone_get()) // DateTime('1800-04-29 20:38:49', 'Europe/Paris')
dateTime($max = 'now', $timezone = null) // DateTime('2008-04-25 08:37:17', 'UTC')
dateTimeAD($max = 'now', $timezone = null) // DateTime('1800-04-29 20:38:49', 'Europe/Paris')
iso8601($max = 'now') // '1978-12-09T10:10:29+0000'
date($format = 'Y-m-d', $max = 'now') // '1979-06-09'
time($format = 'H:i:s', $max = 'now') // '20:49:42'
dateTimeBetween($startDate = '-30 years', $endDate = 'now', $timezone = date_default_timezone_get()) // DateTime('2003-03-15 02:00:49', 'Africa/Lagos')
dateTimeInInterval($startDate = '-30 years', $interval = '+ 5 days', $timezone = date_default_timezone_get()) // DateTime('2003-03-15 02:00:49', 'Antartica/Vostok')
dateTimeThisCentury($max = 'now', $timezone = date_default_timezone_get()) // DateTime('1915-05-30 19:28:21', 'UTC')
dateTimeThisDecade($max = 'now', $timezone = date_default_timezone_get()) // DateTime('2007-05-29 22:30:48', 'Europe/Paris')
dateTimeThisYear($max = 'now', $timezone = date_default_timezone_get()) // DateTime('2011-02-27 20:52:14', 'Africa/Lagos')
dateTimeThisMonth($max = 'now', $timezone = date_default_timezone_get()) // DateTime('2011-10-23 13:46:23', 'Antarctica/Vostok')
dateTimeBetween($startDate = '-30 years', $endDate = 'now', $timezone = null) // DateTime('2003-03-15 02:00:49', 'Africa/Lagos')
dateTimeInInterval($startDate = '-30 years', $interval = '+ 5 days', $timezone = null) // DateTime('2003-03-15 02:00:49', 'Antartica/Vostok')
dateTimeThisCentury($max = 'now', $timezone = null) // DateTime('1915-05-30 19:28:21', 'UTC')
dateTimeThisDecade($max = 'now', $timezone = null) // DateTime('2007-05-29 22:30:48', 'Europe/Paris')
dateTimeThisYear($max = 'now', $timezone = null) // DateTime('2011-02-27 20:52:14', 'Africa/Lagos')
dateTimeThisMonth($max = 'now', $timezone = null) // DateTime('2011-10-23 13:46:23', 'Antarctica/Vostok')
amPm($max = 'now') // 'pm'
dayOfMonth($max = 'now') // '04'
dayOfWeek($max = 'now') // 'Friday'
@ -200,6 +200,8 @@ Each of the generator properties (like `name`, `address`, and `lorem`) are calle
century // 'VI'
timezone // 'Europe/Paris'
Methods accepting a `$timezone` argument default to `date_default_timezone_get()`. You can pass a custom timezone string to each method, or define a custom timezone for all time methods at once using `$faker::setDefaultTimezone($timezone)`.
### `Faker\Provider\Internet`
email // 'tkshlerin@collins.com'
@ -369,6 +371,12 @@ try {
}
```
If you would like to use a modifier with a value not generated by Faker, use the `passthrough()` method. `passthrough()` simply returns whatever value it was given.
```php
$faker->optional()->passthrough(mt_rand(5, 15));
```
## Localization
`Faker\Factory` can take a locale as an argument, to return localized data. If no localized provider is found, the factory fallbacks to the default locale (en_US).
@ -926,6 +934,15 @@ echo $faker->tollFreeNumber; // "0800 123 456"
echo $faker->areaCode; // "03"
```
### `Faker\Provider\en_US\Company`
```php
<?php
// Generate a random Employer Identification Number
echo $faker->ein; // '12-3456789'
```
### `Faker\Provider\en_US\Payment`
```php
@ -960,6 +977,9 @@ echo $faker->companyNumber; // 1999/789634/01
// Generates a random national identification number
echo $faker->idNumber; // 6606192211041
// Generates a random valid licence code
echo $faker->licenceCode; // EB
```
### `Faker\Provider\en_ZA\PhoneNumber`
@ -981,6 +1001,9 @@ echo $faker->mobileNumber; // 082 123 5555
// Generates a Documento Nacional de Identidad (DNI) number
echo $faker->dni; // '77446565E'
// Generates a random valid licence code
echo $faker->licenceCode; // B
```
### `Faker\Provider\es_ES\Payment`
@ -1051,6 +1074,24 @@ echo $faker->vat; // "BE 0123456789" - Belgian Value Added Tax number
echo $faker->vat(false); // "BE0123456789" - unspaced Belgian Value Added Tax number
```
### `Faker\Provider\es_VE\Person`
```php
<?php
// Generate a Cédula de identidad number, you can pass one argument to add separator
echo $faker->nationalId; // 'V11223344'
```
### `Faker\Provider\es_VE\Company`
```php
<?php
// Generates a R.I.F. number, you can pass one argument to add separators
echo $faker->taxpayerIdentificationNumber; // 'J1234567891'
```
### `Faker\Provider\fr_FR\Address`
```php
@ -1067,6 +1108,9 @@ $faker->department; // array('18' => 'Cher');
// Generates a random region
echo $faker->region; // "Saint-Pierre-et-Miquelon"
// Generates a random appartement,stair
echo $faker->secondaryAddress; // "Bat. 961"
```
### `Faker\Provider\fr_FR\Company`
@ -1099,6 +1143,18 @@ echo $faker->vat; // FR 12 123 456 789
echo $faker->nir; // 1 88 07 35 127 571 - 19
```
### `Faker\Provider\fr_FR\PhoneNumber`
```php
<?php
// Generates phone numbers
echo $faker->phoneNumber; // +33 (0)1 67 97 01 31
echo $faker->mobileNumber; // +33 6 21 12 72 84
echo $faker->serviceNumber // 08 98 04 84 46
```
### `Faker\Provider\he_IL\Payment`
```php
@ -1229,6 +1285,18 @@ echo $faker->metropolitanCity; // "서울특별시"
echo $faker->borough; // "강남구"
```
### `Faker\Provider\ko_KR\PhoneNumber`
```php
<?php
// Generates a local area phone numer
echo $faker->localAreaPhoneNumber; // "02-1234-4567"
// Generates a cell phone number
echo $faker->cellPhoneNumber; // "010-9876-5432"
```
### `Faker\Provider\lt_LT\Payment`
```php
@ -1246,6 +1314,69 @@ echo $faker->bankAccountNumber // "LT300848876740317118"
echo $faker->personalIdentityNumber; // "140190-12301"
```
### `Faker\Provider\ms_MY\Address`
```php
<?php
// Generates a random Malaysian township
echo $faker->township; // "Taman Bahagia"
// Generates a random Malaysian town address with matching postcode and state
echo $faker->townState; // "55100 Bukit Bintang, Kuala Lumpur"
```
### `Faker\Provider\ms_MY\Miscellaneous`
```php
<?php
// Generates a random vehicle license plate number
echo $faker->jpjNumberPlate; // "WPL 5169"
```
### `Faker\Provider\ms_MY\Payment`
```php
<?php
// Generates a random Malaysian bank
echo $faker->bank; // "Maybank"
// Generates a random Malaysian bank account number (10-16 digits)
echo $faker->bankAccountNumber; // "1234567890123456"
// Generates a random Malaysian insurance company
echo $faker->insurance; // "AIA Malaysia"
// Generates a random Malaysian bank SWIFT Code
echo $faker->swiftCode; // "MBBEMYKLXXX"
```
### `Faker\Provider\ms_MY\Person`
```php
<?php
// Generates a random personal identity card (myKad) number
echo $faker->myKadNumber($gender = null|'male'|'female', $hyphen = null|true|false); // "710703471796"
```
### `Faker\Provider\ms_MY\PhoneNumber`
```php
<?php
// Generates a random Malaysian mobile number
echo $faker->mobileNumber($countryCodePrefix = null|true|false, $formatting = null|true|false); // "+6012-705 3767"
// Generates a random Malaysian landline number
echo $faker->fixedLineNumber($countryCodePrefix = null|true|false, $formatting = null|true|false); // "03-7112 0455"
// Generates a random Malaysian voip number
echo $faker->voipNumber($countryCodePrefix = null|true|false, $formatting = null|true|false); // "015-458 7099"
```
### `Faker\Provider\ne_NP\Address`
```php
@ -1267,6 +1398,15 @@ echo $faker->vat; // "BE 0123456789" - Belgian Value Added Tax number
echo $faker->vat(false); // "BE0123456789" - unspaced Belgian Value Added Tax number
```
### `Faker\Provider\nl_BE\Person`
```php
<?php
echo $faker->rrn(); // "83051711784" - Belgian Rijksregisternummer
echo $faker->rrn('female'); // "50032089858" - Belgian Rijksregisternummer for a female
```
### `Faker\Provider\nl_NL\Company`
```php
@ -1276,7 +1416,15 @@ echo $faker->vat; // "NL123456789B01" - Dutch Value Added Tax number
echo $faker->btw; // "NL123456789B01" - Dutch Value Added Tax number (alias)
```
### `Faker\Provider\no_NO\Payment`
### `Faker\Provider\nl_NL\Person`
```php
<?php
echo $faker->idNumber; // "111222333" - Dutch Personal identification number (BSN)
```
### `Faker\Provider\nb_NO\Payment`
```php
<?php
@ -1376,6 +1524,7 @@ echo $faker->name; // 'Sr. Luis Adriano Sepúlveda Filho'
echo $faker->cpf; // '145.343.345-76'
echo $faker->cpf(false); // '45623467866'
echo $faker->rg; // '84.405.736-3'
echo $faker->rg(false); // '844057363'
```
### `Faker\Provider\pt_BR\Company`
@ -1479,6 +1628,15 @@ echo $faker->personalIdentityNumber() // '950910-0799'
//Since the numbers are different for male and female persons, optionally you can specify gender.
echo $faker->personalIdentityNumber('female') // '950910-0781'
```
### `Faker\Provider\tr_TR\Person`
```php
<?php
//Generates a valid Turkish identity number (in Turkish - T.C. Kimlik No)
echo $faker->tcNo // '55300634882'
```
### `Faker\Provider\zh_CN\Payment`
@ -1540,6 +1698,9 @@ echo $faker->VAT; //23456789
* [pattern-lab/plugin-php-faker](https://github.com/pattern-lab/plugin-php-faker): Pattern Lab is a Styleguide, Component Library, and Prototyping tool. This creates unique content each time Pattern Lab is generated.
* [guidocella/eloquent-populator](https://github.com/guidocella/eloquent-populator): Adapter for Laravel's Eloquent ORM.
* [tamperdata/exiges](https://github.com/tamperdata/exiges): Faker provider for generating random temperatures
* [jzonta/FakerRestaurant](https://github.com/jzonta/FakerRestaurant): Faker for Food and Beverage names generate
* [aalaap/faker-youtube](https://github.com/aalaap/faker-youtube): Faker for YouTube URLs in various formats
* [pelmered/fake-car](https://github.com/pelmered/fake-car): Faker for cars and car data
## License

View file

@ -0,0 +1,52 @@
<?php
namespace Faker\Calculator;
use InvalidArgumentException;
class TCNo
{
/**
* Generates Turkish Identity Number Checksum
* Gets first 9 digit as prefix and calcuates checksums
*
* https://en.wikipedia.org/wiki/Turkish_Identification_Number
*
* @param string $identityPrefix
* @return string Checksum (two digit)
*/
public static function checksum($identityPrefix)
{
if (strlen((string)$identityPrefix) !== 9) {
throw new InvalidArgumentException('Argument should be an integer and should be 9 digits.');
}
$oddSum = 0;
$evenSum = 0;
$identityArray = array_map('intval', str_split($identityPrefix)); // Creates array from int
foreach ($identityArray as $index => $digit) {
if ($index % 2 == 0) {
$evenSum += $digit;
} else {
$oddSum += $digit;
}
}
$tenthDigit = (7 * $evenSum - $oddSum) % 10;
$eleventhDigit = ($evenSum + $oddSum + $tenthDigit) % 10;
return $tenthDigit . $eleventhDigit;
}
/**
* Checks whether an TCNo has a valid checksum
*
* @param string $tcNo
* @return boolean
*/
public static function isValid($tcNo)
{
return self::checksum(substr($tcNo, 0, -2)) === substr($tcNo, -2, 2);
}
}

View file

@ -94,12 +94,12 @@ namespace Faker;
* @property \DateTime $dateTimeThisYear
* @property \DateTime $dateTimeThisMonth
* @property string $amPm
* @property int $dayOfMonth
* @property int $dayOfWeek
* @property int $month
* @property string $dayOfMonth
* @property string $dayOfWeek
* @property string $month
* @property string $monthName
* @property int $year
* @property int $century
* @property string $year
* @property string $century
* @property string $timezone
* @method string amPm($max = 'now')
* @method string date($format = 'Y-m-d', $max = 'now')
@ -109,7 +109,7 @@ namespace Faker;
* @method string month($max = 'now')
* @method string monthName($max = 'now')
* @method string time($format = 'H:i:s', $max = 'now')
* @method string unixTime($max = 'now')
* @method int unixTime($max = 'now')
* @method string year($max = 'now')
* @method \DateTime dateTime($max = 'now', $timezone = null)
* @method \DateTime dateTimeAd($max = 'now', $timezone = null)

View file

@ -211,7 +211,7 @@ class EntityPopulator
}
// Try a standard setter if it's available, otherwise fall back on reflection
$setter = sprintf("set%s", ucfirst($field));
if (method_exists($obj, $setter)) {
if (is_callable(array($obj, $setter))) {
$obj->$setter($value);
} else {
$this->class->reflFields[$field]->setValue($obj, $value);

View file

@ -29,11 +29,11 @@ class ColumnTypeGuesser
return function () use ($generator) {
return $generator->dateTime;
};
} else {
return function () use ($generator) {
return $generator->dateTimeAD;
};
}
return function () use ($generator) {
return $generator->dateTimeAD;
};
}
$type = $column->getType();
switch ($type) {

View file

@ -29,11 +29,11 @@ class ColumnTypeGuesser
return function () use ($generator) {
return $generator->dateTime;
};
} else {
return function () use ($generator) {
return $generator->dateTimeAD;
};
}
return function () use ($generator) {
return $generator->dateTimeAD;
};
}
$type = $column->getType();
switch ($type) {

View file

@ -151,23 +151,23 @@ class EntityPopulator
$formatters[$fieldName] = function ($inserted) use ($required, $entityName, $locator) {
if (!empty($inserted[$entityName])) {
return $inserted[$entityName][mt_rand(0, count($inserted[$entityName]) - 1)]->getId();
} else {
if ($required && $this->useExistingData) {
// We did not add anything like this, but it's required,
// So let's find something existing in DB.
$mapper = $this->locator->mapper($entityName);
$records = $mapper->all()->limit(self::RELATED_FETCH_COUNT)->toArray();
if (empty($records)) {
return null;
}
$id = $records[mt_rand(0, count($records) - 1)]['id'];
return $inserted[$entityName][mt_rand(0, count($inserted[$entityName]) - 1)]->get('id');
}
return $id;
} else {
if ($required && $this->useExistingData) {
// We did not add anything like this, but it's required,
// So let's find something existing in DB.
$mapper = $locator->mapper($entityName);
$records = $mapper->all()->limit(self::RELATED_FETCH_COUNT)->toArray();
if (empty($records)) {
return null;
}
$id = $records[mt_rand(0, count($records) - 1)]['id'];
return $id;
}
return null;
};
}

View file

@ -139,6 +139,18 @@ class Base
$max = $int1 < $int2 ? $int2 : $int1;
return mt_rand($min, $max);
}
/**
* Returns the passed value
*
* @param mixed $value
*
* @return mixed
*/
public static function passthrough($value)
{
return $value;
}
/**
* Returns a random letter from a to z
@ -168,9 +180,19 @@ class Base
*
* @return array New array with $count elements from $array
*/
public static function randomElements(array $array = array('a', 'b', 'c'), $count = 1, $allowDuplicates = false)
public static function randomElements($array = array('a', 'b', 'c'), $count = 1, $allowDuplicates = false)
{
$allKeys = array_keys($array);
$traversables = array();
if ($array instanceof \Traversable) {
foreach ($array as $element) {
$traversables[] = $element;
}
}
$arr = count($traversables) ? $traversables : $array;
$allKeys = array_keys($arr);
$numKeys = count($allKeys);
if (!$allowDuplicates && $numKeys < $count) {
@ -191,7 +213,7 @@ class Base
$keys[$num] = true;
}
$elements[] = $array[$allKeys[$num]];
$elements[] = $arr[$allKeys[$num]];
$numElements++;
}
@ -206,7 +228,7 @@ class Base
*/
public static function randomElement($array = array('a', 'b', 'c'))
{
if (!$array) {
if (!$array || ($array instanceof \Traversable && !count($array))) {
return null;
}
$elements = static::randomElements($array, 1);

View file

@ -6,6 +6,12 @@ class DateTime extends Base
{
protected static $century = array('I','II','III','IV','V','VI','VII','VIII','IX','X','XI','XII','XIII','XIV','XV','XVI','XVII','XVIII','XIX','XX','XXI');
protected static $defaultTimezone = null;
/**
* @param string|float|int $max
* @return int|false
*/
protected static function getMaxTimestamp($max = 'now')
{
if (is_numeric($max)) {
@ -36,7 +42,7 @@ class DateTime extends Base
* Get a datetime object for a date between January 1, 1970 and now
*
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @param string $timezone time zone in which the date time should be set, default to result of `date_default_timezone_get`
* @param string $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
* @example DateTime('2005-08-16 20:39:21')
* @return \DateTime
* @see http://php.net/manual/en/timezones.php
@ -46,7 +52,7 @@ class DateTime extends Base
{
return static::setTimezone(
new \DateTime('@' . static::unixTime($max)),
(null === $timezone ? date_default_timezone_get() : $timezone)
$timezone
);
}
@ -54,7 +60,7 @@ class DateTime extends Base
* Get a datetime object for a date between January 1, 001 and now
*
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @param string $timezone time zone in which the date time should be set, default to result of `date_default_timezone_get`
* @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
* @example DateTime('1265-03-22 21:15:52')
* @return \DateTime
* @see http://php.net/manual/en/timezones.php
@ -65,7 +71,7 @@ class DateTime extends Base
$min = (PHP_INT_SIZE>4 ? -62135597361 : -PHP_INT_MAX);
return static::setTimezone(
new \DateTime('@' . mt_rand($min, static::getMaxTimestamp($max))),
(null === $timezone ? date_default_timezone_get() : $timezone)
$timezone
);
}
@ -113,7 +119,7 @@ class DateTime extends Base
*
* @param \DateTime|string $startDate Defaults to 30 years ago
* @param \DateTime|string $endDate Defaults to "now"
* @param string $timezone time zone in which the date time should be set, default to result of `date_default_timezone_get`
* @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
* @example DateTime('1999-02-02 11:42:52')
* @return \DateTime
* @see http://php.net/manual/en/timezones.php
@ -132,7 +138,7 @@ class DateTime extends Base
return static::setTimezone(
new \DateTime('@' . $timestamp),
(null === $timezone ? date_default_timezone_get() : $timezone)
$timezone
);
}
@ -143,7 +149,7 @@ class DateTime extends Base
*
* @param string $date Defaults to 30 years ago
* @param string $interval Defaults to 5 days after
* @param string $timezone time zone in which the date time should be set, default to result of `date_default_timezone_get`
* @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
* @example dateTimeInInterval('1999-02-02 11:42:52', '+ 5 days')
* @return \DateTime
* @see http://php.net/manual/en/timezones.php
@ -162,13 +168,13 @@ class DateTime extends Base
return static::dateTimeBetween(
$begin,
$end,
(null === $timezone ? date_default_timezone_get() : $timezone)
$timezone
);
}
/**
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @param string $timezone time zone in which the date time should be set, default to result of `date_default_timezone_get`
* @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
* @example DateTime('1964-04-04 11:02:02')
* @return \DateTime
*/
@ -179,7 +185,7 @@ class DateTime extends Base
/**
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @param string $timezone time zone in which the date time should be set, default to result of `date_default_timezone_get`
* @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
* @example DateTime('2010-03-10 05:18:58')
* @return \DateTime
*/
@ -190,7 +196,7 @@ class DateTime extends Base
/**
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @param string $timezone time zone in which the date time should be set, default to result of `date_default_timezone_get`
* @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
* @example DateTime('2011-09-19 09:24:37')
* @return \DateTime
*/
@ -201,7 +207,7 @@ class DateTime extends Base
/**
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @param string $timezone time zone in which the date time should be set, default to result of `date_default_timezone_get`
* @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
* @example DateTime('2011-10-05 12:51:46')
* @return \DateTime
*/
@ -262,8 +268,8 @@ class DateTime extends Base
/**
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @return int
* @example 1673
* @return string
* @example '1673'
*/
public static function year($max = 'now')
{
@ -292,12 +298,43 @@ class DateTime extends Base
* Internal method to set the time zone on a DateTime.
*
* @param \DateTime $dt
* @param string $timezone
* @param string|null $timezone
*
* @return $this
* @return \DateTime
*/
private static function setTimezone(\DateTime $dt, $timezone)
{
return $dt->setTimezone(new \DateTimeZone($timezone));
return $dt->setTimezone(new \DateTimeZone(static::resolveTimezone($timezone)));
}
/**
* Sets default time zone.
*
* @param string $timezone
*
* @return void
*/
public static function setDefaultTimezone($timezone = null)
{
static::$defaultTimezone = $timezone;
}
/**
* Gets default time zone.
*
* @return string|null
*/
public static function getDefaultTimezone()
{
return static::$defaultTimezone;
}
/**
* @param string|null $timezone
* @return null|string
*/
private static function resolveTimezone($timezone)
{
return ((null === $timezone) ? ((null === static::$defaultTimezone) ? date_default_timezone_get() : static::$defaultTimezone) : $timezone);
}
}

View file

@ -84,14 +84,15 @@ class Image extends Base
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FILE, $fp);
$success = curl_exec($ch) && curl_getinfo($ch, CURLINFO_HTTP_CODE) === 200;
if ($success) {
fclose($fp);
} else {
unlink($filepath);
}
fclose($fp);
curl_close($ch);
if (!$success) {
unlink($filepath);
// could not contact the distant URL or HTTP error - fail silently.
return false;
}
} elseif (ini_get('allow_url_fopen')) {
// use remote fopen() via copy()
$success = copy($url, $filepath);
@ -99,11 +100,6 @@ class Image extends Base
return new \RuntimeException('The image formatter downloads an image from a remote HTTP server. Therefore, it requires that PHP can request remote hosts, either via cURL or fopen()');
}
if (!$success) {
// could not contact the distant URL or HTTP error - fail silently.
return false;
}
return $fullPath ? $filepath : $filename;
}
}

View file

@ -203,6 +203,10 @@ class Miscellaneous extends Base
/**
* @link https://en.wikipedia.org/wiki/ISO_4217
* On date of 2017-07-07
*
* With the following exceptions:
* SVC has been replaced by the USD in 2001: https://en.wikipedia.org/wiki/Salvadoran_col%C3%B3n
* ZWL has been suspended since 2009: https://en.wikipedia.org/wiki/Zimbabwean_dollar
*/
protected static $currencyCode = array(
'AED', 'AFN', 'ALL', 'AMD', 'ANG', 'AOA', 'ARS', 'AUD', 'AWG', 'AZN',
@ -217,10 +221,10 @@ class Miscellaneous extends Base
'MRO', 'MUR', 'MVR', 'MWK', 'MXN', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO',
'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PGK', 'PHP', 'PKR', 'PLN',
'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SBD', 'SCR', 'SDG',
'SEK', 'SGD', 'SHP', 'SLL', 'SOS', 'SRD', 'SSP', 'STD', 'SVC', 'SYP',
'SZL', 'THB', 'TJS', 'TMT', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS',
'UAH', 'UGX', 'USD', 'UYU', 'UZS', 'VEF', 'VND', 'VUV', 'WST', 'XAF',
'XCD', 'XOF', 'XPF', 'YER', 'ZAR', 'ZMW', 'ZWL',
'SEK', 'SGD', 'SHP', 'SLL', 'SOS', 'SRD', 'SSP', 'STD', 'SYP', 'SZL',
'THB', 'TJS', 'TMT', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH',
'UGX', 'USD', 'UYU', 'UZS', 'VEF', 'VND', 'VUV', 'WST', 'XAF', 'XCD',
'XOF', 'XPF', 'YER', 'ZAR', 'ZMW',
);
/**

View file

@ -12,7 +12,7 @@ class Payment extends Base
protected static $cardVendors = array(
'Visa', 'Visa', 'Visa', 'Visa', 'Visa',
'MasterCard', 'MasterCard', 'MasterCard', 'MasterCard', 'MasterCard',
'American Express', 'Discover Card'
'American Express', 'Discover Card', 'Visa Retired'
);
/**
@ -22,25 +22,27 @@ class Payment extends Base
*/
protected static $cardParams = array(
'Visa' => array(
"4539########",
"4539###########",
"4556########",
"4556###########",
"4916########",
"4916###########",
"4532########",
"4532###########",
"4929########",
"4929###########",
"40240071####",
"40240071#######",
"4485########",
"4485###########",
"4716########",
"4716###########",
"4###########",
"4##############"
),
'Visa Retired' => array(
"4539########",
"4556########",
"4916########",
"4532########",
"4929########",
"40240071####",
"4485########",
"4716########",
"4###########",
),
'MasterCard' => array(
"2221###########",
"23#############",
@ -222,7 +224,7 @@ class Payment extends Base
* @param integer $length total length without country code and 2 check digits
* @return string
*/
public static function iban($countryCode, $prefix = '', $length = null)
public static function iban($countryCode = null, $prefix = '', $length = null)
{
$countryCode = is_null($countryCode) ? self::randomKey(self::$ibanFormats) : strtoupper($countryCode);

View file

@ -136,6 +136,6 @@ abstract class Text extends Base
protected static function appendEnd($text)
{
return rtrim($text, ',— ').'.';
return preg_replace("/([ ,-:;\x{2013}\x{2014}]+$)/us", '', $text).'.';
}
}

View file

@ -4,6 +4,14 @@ namespace Faker\Provider\de_CH;
class Internet extends \Faker\Provider\Internet
{
protected static $freeEmailDomain = array('gmail.com', 'hotmail.com', 'yahoo.com', 'googlemail.com', 'gmx.ch', 'bluewin.ch', 'swissonline.ch');
protected static $freeEmailDomain = array(
'gmail.com',
'hotmail.com',
'yahoo.com',
'googlemail.com',
'gmx.ch',
'bluewin.ch',
'swissonline.ch'
);
protected static $tld = array('com', 'com', 'com', 'net', 'org', 'li', 'ch', 'ch');
}

View file

@ -25,7 +25,7 @@ class Address extends \Faker\Provider\Address
'Calw', 'Castrop-Rauxel', 'Celle',
'Chemnitz', 'Cloppenburg', 'Coburg', 'Coesfeld', 'Coswig', 'Cottbus', 'Crailsheim', 'Cuxhaven',
'Dachau', 'Darmstadt', 'Datteln', 'Deggendorf', 'Delbrück', 'Delitzsch', 'Delmenhorst', 'Dessau-Roßlau', 'Detmold', 'Dietzenbach', 'Dillenburg', 'Dillingen/Saar', 'Dinslaken', 'Ditzingen', 'Döbeln', 'Donaueschingen', 'Dormagen', 'Dorsten', 'Dortmund', 'Dreieich', 'Dresden', 'Duderstadt', 'Duisburg', 'Dülmen', 'Düren', 'Düsseldorf',
'Eberswalde', 'Eckernförde', 'Edewecht', 'Ehingen', 'Einbeck', 'Eisenach', 'Eisenhüttenstadt', 'Eisleben, Lutherstadt', 'Eislingen/Fils', 'Ellwangen (Jagst)', 'Elmshorn', 'Elsdorf', 'Emden', 'Emmendingen', 'Emmerich am Rhein', 'Emsdetten', 'Enger', 'Ennepetal', 'Ennigerloh', 'Eppingen', 'Erding', 'Erftstadt', 'Erfurt', 'Erkelenz', 'Erkrath', 'Erlangen', 'Eschborn', 'Eschweiler', 'Espelkamp', 'Essen', 'Esslingen am Neckar', 'Ettlingen', 'Euskirchen',
'Eberswalde', 'Eckernförde', 'Edewecht', 'Ehingen', 'Einbeck', 'Eisenach', 'Eisenhüttenstadt', 'Lutherstadt Eisleben', 'Eislingen/Fils', 'Ellwangen (Jagst)', 'Elmshorn', 'Elsdorf', 'Emden', 'Emmendingen', 'Emmerich am Rhein', 'Emsdetten', 'Enger', 'Ennepetal', 'Ennigerloh', 'Eppingen', 'Erding', 'Erftstadt', 'Erfurt', 'Erkelenz', 'Erkrath', 'Erlangen', 'Eschborn', 'Eschweiler', 'Espelkamp', 'Essen', 'Esslingen am Neckar', 'Ettlingen', 'Euskirchen',
'Falkensee', 'Fellbach', 'Filderstadt', 'Flensburg', 'Flörsheim am Main', 'Forchheim', 'Frankenthal (Pfalz)', 'Frankfurt (Oder)', 'Frankfurt am Main', 'Frechen', 'Freiberg', 'Freiburg im Breisgau', 'Freising', 'Freital', 'Freudenstadt', 'Friedberg', 'Friedberg (Hessen)', 'Friedrichsdorf', 'Friedrichshafen', 'Friesoythe', 'Fröndenberg/Ruhr', 'Fulda', 'Fürstenfeldbruck', 'Fürstenwalde/Spree', 'Fürth',
'Gaggenau', 'Ganderkesee', 'Garbsen', 'Gardelegen', 'Garmisch-Partenkirchen', 'Gauting', 'Geesthacht', 'Geestland', 'Geilenkirchen', 'Geislingen an der Steige', 'Geldern', 'Gelnhausen', 'Gelsenkirchen', 'Georgsmarienhütte', 'Gera', 'Geretsried', 'Germering', 'Germersheim', 'Gersthofen', 'Geseke', 'Gevelsberg', 'Gießen', 'Gifhorn', 'Gladbeck', 'Glauchau', 'Goch', 'Göppingen', 'Görlitz', 'Goslar', 'Gotha', 'Göttingen', 'Greifswald', 'Greiz', 'Greven', 'Grevenbroich', 'Griesheim', 'Grimma', 'Gronau (Westf.)', 'Groß-Gerau', 'Groß-Umstadt', 'Gummersbach', 'Günzburg', 'Güstrow', 'Gütersloh',
'Haan', 'Haar', 'Hagen', 'Halberstadt', 'Halle (Saale)', 'Halle (Westf.)', 'Haltern am See', 'Hamburg', 'Hameln', 'Hamm', 'Hamminkeln', 'Hanau', 'Hann. Münden', 'Hannover', 'Haren (Ems)', 'Harsewinkel', 'Haßloch', 'Hattersheim am Main', 'Hattingen', 'Heide', 'Heidelberg', 'Heidenheim an der Brenz', 'Heilbronn', 'Heiligenhaus', 'Heinsberg', 'Helmstedt', 'Hemer', 'Hennef (Sieg)', 'Hennigsdorf', 'Henstedt-Ulzburg', 'Heppenheim (Bergstraße)', 'Herborn', 'Herdecke', 'Herford', 'Herne', 'Herrenberg', 'Herten', 'Herzogenaurach', 'Herzogenrath', 'Hilden', 'Hildesheim', 'Hockenheim', 'Hof', 'Hofheim am Taunus', 'Hohen Neuendorf', 'Holzminden', 'Homburg', 'Horb am Neckar', 'Höxter', 'Hoyerswerda', 'Hückelhoven', 'Hürth', 'Husum',
@ -44,7 +44,7 @@ class Address extends \Faker\Provider\Address
'Übach-Palenberg', 'Überlingen',
'Uelzen', 'Uetze', 'Ulm', 'Unna', 'Unterhaching', 'Unterschleißheim',
'Vaihingen an der Enz', 'Varel', 'Vaterstetten', 'Vechta', 'Velbert', 'Verden (Aller)', 'Verl', 'Versmold', 'Viernheim', 'Viersen', 'Villingen-Schwenningen', 'Voerde (Niederrhein)', 'Völklingen', 'Vreden',
'Wachtberg', 'Waghäusel', 'Waiblingen', 'Waldkirch', 'Waldkraiburg', 'Waldshut-Tiengen', 'Wallenhorst', 'Walsrode', 'Waltrop', 'Wandlitz', 'Wangen im Allgäu', 'Warburg', 'Waren (Müritz)', 'Warendorf', 'Warstein', 'Wedel', 'Wedemark', 'Wegberg', 'Weiden in der Oberpfalz', 'Weil am Rhein', 'Weilheim in Oberbayern', 'Weimar', 'Weingarten', 'Weinheim', 'Weinstadt', 'Weißenfels', 'Weiterstadt', 'Werdau', 'Werder (Havel)', 'Werl', 'Wermelskirchen', 'Werne', 'Wernigerode', 'Wertheim', 'Wesel', 'Wesseling', 'Westerstede', 'Westoverledingen', 'Wetter (Ruhr)', 'Wetzlar', 'Weyhe', 'Wiehl', 'Wiesbaden', 'Wiesloch', 'Wilhelmshaven', 'Willich', 'Wilnsdorf', 'Winnenden', 'Winsen (Luhe)', 'Wipperfürth', 'Wismar', 'Witten', 'Wittenberg, Lutherstadt', 'Wittmund', 'Wolfenbüttel', 'Wolfsburg', 'Worms', 'Wülfrath', 'Wunstorf', 'Wuppertal', 'Würselen', 'Würzburg',
'Wachtberg', 'Waghäusel', 'Waiblingen', 'Waldkirch', 'Waldkraiburg', 'Waldshut-Tiengen', 'Wallenhorst', 'Walsrode', 'Waltrop', 'Wandlitz', 'Wangen im Allgäu', 'Warburg', 'Waren (Müritz)', 'Warendorf', 'Warstein', 'Wedel', 'Wedemark', 'Wegberg', 'Weiden in der Oberpfalz', 'Weil am Rhein', 'Weilheim in Oberbayern', 'Weimar', 'Weingarten', 'Weinheim', 'Weinstadt', 'Weißenfels', 'Weiterstadt', 'Werdau', 'Werder (Havel)', 'Werl', 'Wermelskirchen', 'Werne', 'Wernigerode', 'Wertheim', 'Wesel', 'Wesseling', 'Westerstede', 'Westoverledingen', 'Wetter (Ruhr)', 'Wetzlar', 'Weyhe', 'Wiehl', 'Wiesbaden', 'Wiesloch', 'Wilhelmshaven', 'Willich', 'Wilnsdorf', 'Winnenden', 'Winsen (Luhe)', 'Wipperfürth', 'Wismar', 'Witten', 'Lutherstadt Wittenberg', 'Wittmund', 'Wolfenbüttel', 'Wolfsburg', 'Worms', 'Wülfrath', 'Wunstorf', 'Wuppertal', 'Würselen', 'Würzburg',
'Xanten',
'Zeitz', 'Zerbst/Anhalt', 'Zirndorf', 'Zittau', 'Zülpich', 'Zweibrücken', 'Zwickau',
);

View file

@ -4,6 +4,23 @@ namespace Faker\Provider\de_DE;
class Internet extends \Faker\Provider\Internet
{
protected static $freeEmailDomain = array('web.de', 'gmail.com', 'hotmail.de', 'yahoo.de', 'googlemail.com', 'aol.de', 'gmx.de');
/**
* @link https://www.statista.com/statistics/446418/most-popular-e-mail-providers-germany/
* @link http://blog.shuttlecloud.com/the-10-most-popular-email-providers-in-germany
*/
protected static $freeEmailDomain = array(
'web.de',
'gmail.com',
'hotmail.de',
'yahoo.de',
'googlemail.com',
'aol.de',
'gmx.de',
'freenet.de',
'posteo.de',
'mail.de',
'live.de',
't-online.de'
);
protected static $tld = array('com', 'com', 'com', 'net', 'org', 'de', 'de', 'de');
}

View file

@ -42,7 +42,7 @@ class Company extends \Faker\Provider\Company
);
protected static $οbject = array(
protected static $object = array(
'Προγραμματιστής',
'Δικηγόρος',
'Γιατρός',
@ -79,6 +79,6 @@ class Company extends \Faker\Provider\Company
*/
public static function object()
{
return static::randomElement(static::$οbject);
return static::randomElement(static::$object);
}
}

View file

@ -5,10 +5,12 @@ namespace Faker\Provider\en_NZ;
class Internet extends \Faker\Provider\Internet
{
/**
* An array of common en_NZ (New Zeland) TLD's
* An array of New Zealand TLDs.
*
* @link https://en.wikipedia.org/wiki/.nz
* @var array
*/
protected static $tld = array(
'com', 'co.nz', 'ac.nz', 'geek.nz', 'gen.nz', 'kiwi.nz', 'maori.nz', 'net.nz', 'org.nz', 'school.nz', 'govt.nz', 'iwi.nz', 'mil.nz', 'health.nz', 'parliment.nz'
'com', 'nz', 'ac.nz', 'co.nz', 'geek.nz', 'gen.nz', 'kiwi.nz', 'maori.nz', 'net.nz', 'org.nz', 'school.nz', 'cri.nz', 'govt.nz', 'health.nz', 'iwi.nz', 'mil.nz', 'parliament.nz',
);
}

View file

@ -18,7 +18,7 @@ class Company extends \Faker\Provider\Company
'24hour', '24/7', '3rdgeneration', '4thgeneration', '5thgeneration', '6thgeneration', 'actuating', 'analyzing', 'assymetric', 'asynchronous', 'attitude-oriented', 'background', 'bandwidth-monitored', 'bi-directional', 'bifurcated', 'bottom-line', 'clear-thinking', 'client-driven', 'client-server', 'coherent', 'cohesive', 'composite', 'context-sensitive', 'contextually-based', 'content-based', 'dedicated', 'demand-driven', 'didactic', 'directional', 'discrete', 'disintermediate', 'dynamic', 'eco-centric', 'empowering', 'encompassing', 'even-keeled', 'executive', 'explicit', 'exuding', 'fault-tolerant', 'foreground', 'fresh-thinking', 'full-range', 'global', 'grid-enabled', 'heuristic', 'high-level', 'holistic', 'homogeneous', 'human-resource', 'hybrid', 'impactful', 'incremental', 'intangible', 'interactive', 'intermediate', 'leadingedge', 'local', 'logistical', 'maximized', 'methodical', 'mission-critical', 'mobile', 'modular', 'motivating', 'multimedia', 'multi-state', 'multi-tasking', 'national', 'needs-based', 'neutral', 'nextgeneration', 'non-volatile', 'object-oriented', 'optimal', 'optimizing', 'radical', 'real-time', 'reciprocal', 'regional', 'responsive', 'scalable', 'secondary', 'solution-oriented', 'stable', 'static', 'systematic', 'systemic', 'system-worthy', 'tangible', 'tertiary', 'transitional', 'uniform', 'upward-trending', 'user-facing', 'value-added', 'web-enabled', 'well-modulated', 'zeroadministration', 'zerodefect', 'zerotolerance',
),
array(
'ability', 'access', 'adapter', 'algorithm', 'alliance', 'analyzer', 'application', 'approach', 'architecture', 'archive', 'artificialintelligence', 'array', 'attitude', 'benchmark', 'budgetarymanagement', 'capability', 'capacity', 'challenge', 'circuit', 'collaboration', 'complexity', 'concept', 'conglomeration', 'contingency', 'core', 'customerloyalty', 'database', 'data-warehouse', 'definition', 'emulation', 'encoding', 'encryption', 'extranet', 'firmware', 'flexibility', 'focusgroup', 'forecast', 'frame', 'framework', 'function', 'functionalities', 'GraphicInterface', 'groupware', 'GraphicalUserInterface', 'hardware', 'help-desk', 'hierarchy', 'hub', 'implementation', 'info-mediaries', 'infrastructure', 'initiative', 'installation', 'instructionset', 'interface', 'internetsolution', 'intranet', 'knowledgeuser', 'knowledgebase', 'localareanetwork', 'leverage', 'matrices', 'matrix', 'methodology', 'middleware', 'migration', 'model', 'moderator', 'monitoring', 'moratorium', 'neural-net', 'openarchitecture', 'opensystem', 'orchestration', 'paradigm', 'parallelism', 'policy', 'portal', 'pricingstructure', 'processimprovement', 'product', 'productivity', 'project', 'projection', 'protocol', 'securedline', 'service-desk', 'software', 'solution', 'standardization', 'strategy', 'structure', 'success', 'superstructure', 'support', 'synergy', 'systemengine', 'task-force', 'throughput', 'time-frame', 'toolset', 'utilisation', 'website', 'workforce',
'ability', 'access', 'adapter', 'algorithm', 'alliance', 'analyzer', 'application', 'approach', 'architecture', 'archive', 'artificialintelligence', 'array', 'attitude', 'benchmark', 'blockchain', 'budgetarymanagement', 'capability', 'capacity', 'challenge', 'circuit', 'collaboration', 'complexity', 'concept', 'conglomeration', 'contingency', 'core', 'customerloyalty', 'database', 'data-warehouse', 'definition', 'emulation', 'encoding', 'encryption', 'extranet', 'firmware', 'flexibility', 'focusgroup', 'forecast', 'frame', 'framework', 'function', 'functionalities', 'GraphicInterface', 'groupware', 'GraphicalUserInterface', 'hardware', 'help-desk', 'hierarchy', 'hub', 'implementation', 'info-mediaries', 'infrastructure', 'initiative', 'installation', 'instructionset', 'interface', 'internetsolution', 'intranet', 'knowledgeuser', 'knowledgebase', 'localareanetwork', 'leverage', 'matrices', 'matrix', 'methodology', 'middleware', 'migration', 'model', 'moderator', 'monitoring', 'moratorium', 'neural-net', 'openarchitecture', 'opensystem', 'orchestration', 'paradigm', 'parallelism', 'policy', 'portal', 'pricingstructure', 'processimprovement', 'product', 'productivity', 'project', 'projection', 'protocol', 'securedline', 'service-desk', 'software', 'solution', 'standardization', 'strategy', 'structure', 'success', 'superstructure', 'support', 'synergy', 'systemengine', 'task-force', 'throughput', 'time-frame', 'toolset', 'utilisation', 'website', 'workforce',
),
);
@ -65,6 +65,15 @@ class Company extends \Faker\Provider\Company
protected static $companySuffix = array('Inc', 'and Sons', 'LLC', 'Group', 'PLC', 'Ltd');
/**
* @link https://www.irs.gov/businesses/small-businesses-self-employed/how-eins-are-assigned-and-valid-ein-prefixes
*/
protected static $einPrefixes = array(
01, 02, 03, 04, 05, 06, 10, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
66, 67, 68, 71, 72, 73, 74, 75, 76, 77, 80, 81, 82, 83, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 95, 98, 99
);
/**
* @example 'Robust full-range hub'
*/
@ -90,4 +99,18 @@ class Company extends \Faker\Provider\Company
return join($result, ' ');
}
/**
* Employer Identification Number (EIN)
*
* @link https://en.wikipedia.org/wiki/Employer_Identification_Number
* @example '12-3456789'
*/
public static function ein()
{
$prefix = static::randomElement(static::$einPrefixes);
$suffix = static::numberBetween(0, 9999999);
return sprintf("%02d-%07d", $prefix, $suffix);
}
}

View file

@ -88,7 +88,7 @@ class Person extends \Faker\Provider\Person
'Ebert', 'Effertz', 'Eichmann', 'Emard', 'Emmerich', 'Erdman', 'Ernser', 'Fadel',
'Fahey', 'Farrell', 'Fay', 'Feeney', 'Feest', 'Feil', 'Ferry', 'Fisher', 'Flatley', 'Frami', 'Franecki', 'Friesen', 'Fritsch', 'Funk',
'Gaylord', 'Gerhold', 'Gerlach', 'Gibson', 'Gislason', 'Gleason', 'Gleichner', 'Glover', 'Goldner', 'Goodwin', 'Gorczany', 'Gottlieb', 'Goyette', 'Grady', 'Graham', 'Grant', 'Green', 'Greenfelder', 'Greenholt', 'Grimes', 'Gulgowski', 'Gusikowski', 'Gutkowski', 'Gutmann',
'Haag', 'Hackett', 'Hagenes', 'Hahn', 'Haley', 'Halvorson', 'Hamill', 'Hammes', 'Hand', 'Hane', 'Hansen', 'Harber', 'Harris', 'Hartmann', 'Harvey', 'Hauck', 'Hayes', 'Heaney', 'Heathcote', 'Hegmann', 'Heidenreich', 'Heller', 'Herman', 'Hermann', 'Hermiston', 'Herzog', 'Hessel', 'Hettinger', 'Hickle', 'Hilll', 'Hills', 'Hilpert', 'Hintz', 'Hirthe', 'Hodkiewicz', 'Hoeger', 'Homenick', 'Hoppe', 'Howe', 'Howell', 'Hudson', 'Huel', 'Huels', 'Hyatt',
'Haag', 'Hackett', 'Hagenes', 'Hahn', 'Haley', 'Halvorson', 'Hamill', 'Hammes', 'Hand', 'Hane', 'Hansen', 'Harber', 'Harris', 'Hartmann', 'Harvey', 'Hauck', 'Hayes', 'Heaney', 'Heathcote', 'Hegmann', 'Heidenreich', 'Heller', 'Herman', 'Hermann', 'Hermiston', 'Herzog', 'Hessel', 'Hettinger', 'Hickle', 'Hill', 'Hills', 'Hilpert', 'Hintz', 'Hirthe', 'Hodkiewicz', 'Hoeger', 'Homenick', 'Hoppe', 'Howe', 'Howell', 'Hudson', 'Huel', 'Huels', 'Hyatt',
'Jacobi', 'Jacobs', 'Jacobson', 'Jakubowski', 'Jaskolski', 'Jast', 'Jenkins', 'Jerde', 'Johns', 'Johnson', 'Johnston', 'Jones',
'Kassulke', 'Kautzer', 'Keebler', 'Keeling', 'Kemmer', 'Kerluke', 'Kertzmann', 'Kessler', 'Kiehn', 'Kihn', 'Kilback', 'King', 'Kirlin', 'Klein', 'Kling', 'Klocko', 'Koch', 'Koelpin', 'Koepp', 'Kohler', 'Konopelski', 'Koss', 'Kovacek', 'Kozey', 'Krajcik', 'Kreiger', 'Kris', 'Kshlerin', 'Kub', 'Kuhic', 'Kuhlman', 'Kuhn', 'Kulas', 'Kunde', 'Kunze', 'Kuphal', 'Kutch', 'Kuvalis',
'Labadie', 'Lakin', 'Lang', 'Langosh', 'Langworth', 'Larkin', 'Larson', 'Leannon', 'Lebsack', 'Ledner', 'Leffler', 'Legros', 'Lehner', 'Lemke', 'Lesch', 'Leuschke', 'Lind', 'Lindgren', 'Littel', 'Little', 'Lockman', 'Lowe', 'Lubowitz', 'Lueilwitz', 'Luettgen', 'Lynch',
@ -107,7 +107,7 @@ class Person extends \Faker\Provider\Person
'Zboncak', 'Zemlak', 'Ziemann', 'Zieme', 'Zulauf'
);
private static $suffix = array('Jr.', 'Sr.', 'I', 'II', 'III', 'IV', 'V', 'MD', 'DDS', 'PhD', 'DVM');
protected static $suffix = array('Jr.', 'Sr.', 'I', 'II', 'III', 'IV', 'V', 'MD', 'DDS', 'PhD', 'DVM');
/**
* @example 'PhD'

View file

@ -3,7 +3,6 @@
namespace Faker\Provider\en_ZA;
use Faker\Calculator\Luhn;
use Faker\Provider\DateTime;
class Person extends \Faker\Provider\Person
{
@ -127,13 +126,18 @@ class Person extends \Faker\Provider\Person
'Pule', 'Hlophe', 'Miya', 'Moagi',
);
protected static $titleMale = array('Mr.', 'Dr.', 'Prof.', 'Rev.', 'Hon.');
protected static $titleFemale = array('Mrs.', 'Ms.', 'Miss', 'Dr.', 'Prof.', 'Rev.', 'Hon.');
protected static $licenceCodes = array('A', 'A1', 'B', 'C', 'C1', 'C2', 'EB', 'EC', 'EC1', 'I', 'L', 'L1');
/**
* @link https://en.wikipedia.org/wiki/National_identification_number#South_Africa
*
* @param int $minAge
* @param int $maxAge
* @param bool $citizen
* @param string $gender
* @param \DateTime $birthdate
* @param bool $citizen
* @param string $gender
*
* @return string
*/
@ -155,10 +159,20 @@ class Person extends \Faker\Provider\Person
}
$sequenceDigits = str_pad(self::randomNumber(3), 3, 0, STR_PAD_BOTH);
$citizenDigit = ($citizen === true) ? '0' : '1';
$raceDigit = self::randomNumber(1);
$raceDigit = self::numberBetween(8, 9);
$partialIdNumber = $birthDateString . $genderDigit . $sequenceDigits . $citizenDigit . $raceDigit;
return $partialIdNumber . Luhn::computeCheckDigit($partialIdNumber);
}
/**
* @see https://en.wikipedia.org/wiki/Driving_licence_in_South_Africa
*
* @return string
*/
public function licenceCode()
{
return static::randomElement(static::$licenceCodes);
}
}

View file

@ -63,6 +63,8 @@ class Person extends \Faker\Provider\Person
private static $suffix = array('Hijo', 'Segundo', 'Tercero');
protected static $licenceCodes = array('AM', 'A1', 'A2', 'A','B', 'B+E', 'C1', 'C1+E', 'C', 'C+E', 'D1', 'D1+E', 'D', 'D+E');
/**
* @example 'Hijo'
*/
@ -85,4 +87,14 @@ class Person extends \Faker\Provider\Person
return $number . $letter;
}
/**
* @see https://sede.dgt.gob.es/es/tramites-y-multas/permiso-de-conduccion/obtencion-permiso-licencia-conduccion/clases-permiso-conduccion-edad.shtml
*
* @return string
*/
public function licenceCode()
{
return static::randomElement(static::$licenceCodes);
}
}

View file

@ -27,4 +27,14 @@ class Company extends \Faker\Provider\Company
{
return static::randomElement(static::$companyPrefix);
}
/**
* Generate random Taxpayer Identification Number (RIF in Venezuela). Ex J-123456789-1
* @param string $separator
* @return string
*/
public function taxpayerIdentificationNumber($separator = '')
{
return static::randomElement(array('J', 'G', 'V', 'E', 'P', 'C')) . $separator . static::numerify('########') . $separator . static::numerify('#');
}
}

View file

@ -137,7 +137,7 @@ class Person extends \Faker\Provider\Person
protected static $titleFemale = array('Sra.', 'Srita.', 'Dra.', 'Lcda.', 'Ing.');
private static $suffix = array('Hijo');
private static $nationalityId = array('V', 'E');
/**
@ -149,18 +149,19 @@ class Person extends \Faker\Provider\Person
}
/**
* Generate random national identification number including nationalized foreigns. Ex V-8756432 or E-82803827
* @return string
* Generate random national identification number (cédula de identidad). Ex V-8756432
* @param string $separator
* @return string CNE is the official national election registry org.
* CNE is the official national election registry org.
* @link http://www.cne.gob.ve/web/registro_electoral/ciudadanos_111_129_2011.php
*/
public function nationalId()
public function nationalId($separator = '')
{
$id = static::randomElement(static::$nationalityId);
if ($id == 'V') {
return $id.$this->numberBetween(10000, 100000000);
} else {
return $id.$this->numberBetween(80000000, 100000000);
return $id . $separator . $this->numberBetween(10000, 100000000);
}
return $id . $separator . $this->numberBetween(80000000, 100000000);
}
}

View file

@ -76,7 +76,7 @@ class Address extends \Faker\Provider\fr_FR\Address
protected static $secondaryAddressFormats = array('Apt. ###', 'Suite ###', 'Bureau ###');
protected static $state = array(
'Alberta', 'Colombie-Brittanique', 'Manitoba', 'Nouveau-Brunswick', 'Terre-Neuve-et-Labrador', 'Nouvelle-Écosse', 'Ontario', 'Île-du-Prince-Édouard', 'Québec', 'Saskatchewan'
'Alberta', 'Colombie-Britannique', 'Manitoba', 'Nouveau-Brunswick', 'Terre-Neuve-et-Labrador', 'Nouvelle-Écosse', 'Ontario', 'Île-du-Prince-Édouard', 'Québec', 'Saskatchewan'
);
protected static $stateAbbr = array(

View file

@ -11,5 +11,5 @@ class Company extends \Faker\Provider\fr_FR\Company
'{{lastName}}',
);
protected static $companySuffix = array('AG', 'Sàrl');
protected static $companySuffix = array('AG', 'Sàrl', 'SA', 'GmbH');
}

View file

@ -75,6 +75,16 @@ class Address extends \Faker\Provider\Address
array('971' => 'Guadeloupe'), array('972' => 'Martinique'), array('973' => 'Guyane'), array('974' => 'La Réunion'), array('976' => 'Mayotte')
);
protected static $secondaryAddressFormats = array('Apt. ###', 'Suite ###', 'Étage ###', "Bât. ###", "Chambre ###");
/**
* @example 'Appt. 350'
*/
public static function secondaryAddress()
{
return static::numerify(static::randomElement(static::$secondaryAddressFormats));
}
/**
* @example 'rue'
*/

View file

@ -112,7 +112,7 @@ class Company extends \Faker\Provider\Company
*/
public function siret($formatted = true)
{
$siret = $this->siren(false);
$siret = self::siren(false);
$nicFormat = static::randomElement(static::$siretNicFormats);
$siret .= $this->numerify($nicFormat);
$siret .= Luhn::computeCheckDigit($siret);
@ -129,9 +129,9 @@ class Company extends \Faker\Provider\Company
* @see http://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27identification_du_r%C3%A9pertoire_des_entreprises
* @return string
*/
public function siren($formatted = true)
public static function siren($formatted = true)
{
$siren = $this->numerify('%#######');
$siren = self::numerify('%#######');
$siren .= Luhn::computeCheckDigit($siren);
if ($formatted) {
$siren = substr($siren, 0, 3) . ' ' . substr($siren, 3, 3) . ' ' . substr($siren, 6, 3);

View file

@ -19,9 +19,14 @@ class Payment extends \Faker\Provider\Payment
*/
public function vat($spacedNationalPrefix = true)
{
$prefix = ($spacedNationalPrefix) ? "FR " : "FR";
return sprintf("%s%s%s%s", $prefix, self::randomNumber(2, true), $this->siren($spacedNationalPrefix));
$siren = Company::siren(false);
$key = (12 + 3 * ($siren % 97)) % 97;
$pattern = "%s%'.02d%s";
if ($spacedNationalPrefix) {
$siren = trim(chunk_split($siren, 3, ' '));
$pattern = "%s %'.02d %s";
}
return sprintf($pattern, 'FR', $key, $siren);
}
/**

View file

@ -15,7 +15,7 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber
'+33 (0)5 ## ## ## ##',
'+33 (0)6 ## ## ## ##',
'+33 (0)7 {{phoneNumber07WithSeparator}}',
'+33 (0)8 ## ## ## ##',
'+33 (0)8 {{phoneNumber08WithSeparator}}',
'+33 (0)9 ## ## ## ##',
'+33 1 ## ## ## ##',
'+33 1 ## ## ## ##',
@ -25,7 +25,7 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber
'+33 5 ## ## ## ##',
'+33 6 ## ## ## ##',
'+33 7 {{phoneNumber07WithSeparator}}',
'+33 8 ## ## ## ##',
'+33 8 {{phoneNumber08WithSeparator}}',
'+33 9 ## ## ## ##',
'01########',
'01########',
@ -35,7 +35,7 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber
'05########',
'06########',
'07{{phoneNumber07}}',
'08########',
'08{{phoneNumber08}}',
'09########',
'01 ## ## ## ##',
'01 ## ## ## ##',
@ -45,19 +45,28 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber
'05 ## ## ## ##',
'06 ## ## ## ##',
'07 {{phoneNumber07WithSeparator}}',
'08 ## ## ## ##',
'08 {{phoneNumber08WithSeparator}}',
'09 ## ## ## ##',
);
// Mobile phone numbers start by 06 and 07
// 06 is the most common prefix
protected static $mobileFormats = array(
'+33 (0)6 ## ## ## ##',
'+33 6 ## ## ## ##',
'+33 (0)7 {{phoneNumber07WithSeparator}}',
'+33 7 {{phoneNumber07WithSeparator}}',
'06########',
'07########',
'07{{phoneNumber07}}',
'06 ## ## ## ##',
'07 ## ## ## ##',
'07 {{phoneNumber07WithSeparator}}',
);
protected static $serviceFormats = array(
'+33 (0)8 {{phoneNumber08WithSeparator}}',
'+33 8 {{phoneNumber08WithSeparator}}',
'08 {{phoneNumber08WithSeparator}}',
'08{{phoneNumber08}}',
);
public function phoneNumber07()
@ -79,11 +88,54 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber
return $phoneNumber;
}
public function phoneNumber08()
{
$phoneNumber = $this->phoneNumber08WithSeparator();
$phoneNumber = str_replace(' ', '', $phoneNumber);
return $phoneNumber;
}
/**
* Valid formats for 08:
*
* 0# ## ## ##
* 1# ## ## ##
* 2# ## ## ##
* 91 ## ## ##
* 92 ## ## ##
* 93 ## ## ##
* 97 ## ## ##
* 98 ## ## ##
* 99 ## ## ##
*
* Formats 089(4|6)## ## ## are valid, but will be
* attributed when other 089 resource ranges are exhausted.
*
* @see https://www.arcep.fr/index.php?id=8146#c9625
* @see https://issuetracker.google.com/u/1/issues/73269839
*/
public function phoneNumber08WithSeparator()
{
$regex = '([012]{1}\d{1}|(9[1-357-9])( \d{2}){3}';
return $this->regexify($regex);
}
/**
* @example '0601020304'
*/
public static function mobileNumber()
public function mobileNumber()
{
return static::numerify(static::randomElement(static::$mobileFormats));
$format = static::randomElement(static::$mobileFormats);
return static::numerify($this->generator->parse($format));
}
/**
* @example '0891951357'
*/
public function serviceNumber()
{
$format = static::randomElement(static::$serviceFormats);
return static::numerify($this->generator->parse($format));
}
}

View file

@ -120,8 +120,8 @@ class Address extends \Faker\Provider\Address
* Source: https://hu.wikipedia.org/wiki/Magyarorsz%C3%A1g_v%C3%A1rosainak_list%C3%A1ja
*/
protected static $capitals = array('Budapest');
protected static $bigCities = array('
Békéscsaba', 'Debrecen', 'Dunaújváros', 'Eger', 'Érd', 'Győr', 'Hódmezővásárhely', 'Kaposvár', 'Kecskemét', 'Miskolc', 'Nagykanizsa', 'Nyíregyháza', 'Pécs', 'Salgótarján', 'Sopron', 'Szeged', 'Székesfehérvár', 'Szekszárd', 'Szolnok', 'Szombathely', 'Tatabánya', 'Veszprém', 'Zalaegerszeg'
protected static $bigCities = array(
'Békéscsaba', 'Debrecen', 'Dunaújváros', 'Eger', 'Érd', 'Győr', 'Hódmezővásárhely', 'Kaposvár', 'Kecskemét', 'Miskolc', 'Nagykanizsa', 'Nyíregyháza', 'Pécs', 'Salgótarján', 'Sopron', 'Szeged', 'Székesfehérvár', 'Szekszárd', 'Szolnok', 'Szombathely', 'Tatabánya', 'Veszprém', 'Zalaegerszeg'
);
protected static $smallerCities = array(
'Ajka', 'Aszód', 'Bácsalmás',

View file

@ -2,6 +2,8 @@
namespace Faker\Provider\it_IT;
use Faker\Calculator\Luhn;
class Company extends \Faker\Provider\Company
{
protected static $formats = array(
@ -69,6 +71,8 @@ class Company extends \Faker\Provider\Company
*/
public static function vatId()
{
return static::numerify('IT###########');
$code = sprintf('%s%03d', static::numerify('#######'), static::numberBetween(1, 121));
return sprintf('IT%s%d', $code, Luhn::computeCheckDigit($code));
}
}

View file

@ -209,14 +209,17 @@ class Person extends \Faker\Provider\Person
$birthDate = DateTime::dateTimeBetween();
}
$population = mt_rand(1000, 2000);
$century = self::getCenturyByYear((int) $birthDate->format('Y'));
do {
$population = mt_rand(1000, 2000);
$century = self::getCenturyByYear((int) $birthDate->format('Y'));
$iin = $birthDate->format('ymd');
$iin .= (string) self::$genderCenturyMap[$gender][$century];
$iin .= (string) $population;
$iin = $birthDate->format('ymd');
$iin .= (string) self::$genderCenturyMap[$gender][$century];
$iin .= (string) $population;
$checksum = self::checkSum($iin);
} while ($checksum === 10);
return $iin . (string) self::checkSum($iin);
return $iin . (string) $checksum;
}
/**

View file

@ -4,14 +4,39 @@ namespace Faker\Provider\ko_KR;
class PhoneNumber extends \Faker\Provider\PhoneNumber
{
//reference : https://ko.wikipedia.org/wiki/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD%EC%9D%98_%EC%A0%84%ED%99%94%EB%B2%88%ED%98%B8_%EC%B2%B4%EA%B3%84
protected static $formats = array(
'010-####-####',
//local area phone format
'070-####-####',
'02-####-####',
'03#-####-####',
'04#-####-####',
'05#-####-####',
'06#-####-####',
'1588-####',
//cell phone format
'010-####-####',
//others: Intelligent Network(기간통신사업자)
'15##-####',
'16##-####',
'18##-####',
);
public function localAreaPhoneNumber()
{
$format = self::randomElement(array_slice(static::$formats, 0, 6));
return self::numerify($this->generator->parse($format));
}
public function cellPhoneNumber()
{
$format = self::randomElement(array_slice(static::$formats, 6, 1));
return self::numerify($this->generator->parse($format));
}
}

View file

@ -13,32 +13,35 @@ class Address extends \Faker\Provider\Address
protected static $buildingNumber = array('##');
protected static $postcode = array('LV ####');
/**
* @link https://lv.wikipedia.org/wiki/Suver%C4%93no_valstu_uzskait%C4%ABjums
*/
protected static $country = array(
'Afghanistan', 'Albania', 'Algeria', 'American Samoa', 'Andorra', 'Angola', 'Anguilla', 'Antarctica (the territory South of 60 deg S)', 'Antigua and Barbuda', 'Argentina', 'Armenia', 'Aruba', 'Australia', 'Austria', 'Azerbaijan',
'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Belarus', 'Belgium', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivia', 'Bosnia and Herzegovina', 'Botswana', 'Bouvet Island (Bouvetoya)', 'Brazil', 'British Indian Ocean Territory (Chagos Archipelago)', 'British Virgin Islands', 'Brunei Darussalam', 'Bulgaria', 'Burkina Faso', 'Burundi',
'Cambodia', 'Cameroon', 'Canada', 'Cape Verde', 'Cayman Islands', 'Central African Republic', 'Chad', 'Chile', 'China', 'Christmas Island', 'Cocos (Keeling) Islands', 'Colombia', 'Comoros', 'Congo', 'Congo', 'Cook Islands', 'Costa Rica', 'Cote d\'Ivoire', 'Croatia', 'Cuba', 'Cyprus', 'Czech Republic',
'Denmark', 'Djibouti', 'Dominica', 'Dominican Republic',
'Ecuador', 'Egypt', 'El Salvador', 'Equatorial Guinea', 'Eritrea', 'Estonia', 'Ethiopia',
'Faroe Islands', 'Falkland Islands (Malvinas)', 'Fiji', 'Finland', 'France', 'French Guiana', 'French Polynesia', 'French Southern Territories',
'Gabon', 'Gambia', 'Georgia', 'Germany', 'Ghana', 'Gibraltar', 'Greece', 'Greenland', 'Grenada', 'Guadeloupe', 'Guam', 'Guatemala', 'Guernsey', 'Guinea', 'Guinea-Bissau', 'Guyana',
'Haiti', 'Heard Island and McDonald Islands', 'Holy See (Vatican City State)', 'Honduras', 'Hong Kong', 'Hungary',
'Iceland', 'India', 'Indonesia', 'Iran', 'Iraq', 'Ireland', 'Isle of Man', 'Israel', 'Italy',
'Jamaica', 'Japan', 'Jersey', 'Jordan',
'Kazakhstan', 'Kenya', 'Kiribati', 'Korea', 'Korea', 'Kuwait', 'Kyrgyz Republic',
'Lao People\'s Democratic Republic', 'Latvia', 'Lebanon', 'Lesotho', 'Liberia', 'Libyan Arab Jamahiriya', 'Liechtenstein', 'Lithuania', 'Luxembourg',
'Macao', 'Macedonia', 'Madagascar', 'Malawi', 'Malaysia', 'Maldives', 'Mali', 'Malta', 'Marshall Islands', 'Martinique', 'Mauritania', 'Mauritius', 'Mayotte', 'Mexico', 'Micronesia', 'Moldova', 'Monaco', 'Mongolia', 'Montenegro', 'Montserrat', 'Morocco', 'Mozambique', 'Myanmar',
'Namibia', 'Nauru', 'Nepal', 'Netherlands Antilles', 'Netherlands', 'New Caledonia', 'New Zealand', 'Nicaragua', 'Niger', 'Nigeria', 'Niue', 'Norfolk Island', 'Northern Mariana Islands', 'Norway',
'Oman',
'Pakistan', 'Palau', 'Palestinian Territories', 'Panama', 'Papua New Guinea', 'Paraguay', 'Peru', 'Philippines', 'Pitcairn Islands', 'Poland', 'Portugal', 'Puerto Rico',
'Qatar',
'Reunion', 'Romania', 'Russian Federation', 'Rwanda',
'Saint Barthelemy', 'Saint Helena', 'Saint Kitts and Nevis', 'Saint Lucia', 'Saint Martin', 'Saint Pierre and Miquelon', 'Saint Vincent and the Grenadines', 'Samoa', 'San Marino', 'Sao Tome and Principe', 'Saudi Arabia', 'Senegal', 'Serbia', 'Seychelles', 'Sierra Leone', 'Singapore', 'Slovakia (Slovak Republic)', 'Slovenia', 'Solomon Islands', 'Somalia', 'South Africa', 'South Georgia and the South Sandwich Islands', 'Spain', 'Sri Lanka', 'Sudan', 'Suriname', 'Svalbard & Jan Mayen Islands', 'Swaziland', 'Sweden', 'Switzerland', 'Syrian Arab Republic',
'Taiwan', 'Tajikistan', 'Tanzania', 'Thailand', 'Timor-Leste', 'Togo', 'Tokelau', 'Tonga', 'Trinidad and Tobago', 'Tunisia', 'Turkey', 'Turkmenistan', 'Turks and Caicos Islands', 'Tuvalu',
'Uganda', 'Ukraine', 'United Arab Emirates', 'United Kingdom', 'United States of America', 'United States Minor Outlying Islands', 'United States Virgin Islands', 'Uruguay', 'Uzbekistan',
'Vanuatu', 'Venezuela', 'Vietnam',
'Wallis and Futuna', 'Western Sahara',
'Yemen',
'Zambia', 'Zimbabwe'
'Afganistāna', 'Albānija', 'Alžīrija', 'Amerikas Savienotās Valstis', 'Andora', 'Angola', 'Antigva un Barbuda',
'Apvienotie Arābu Emirāti', 'Argentīna', 'Armēnija', 'Austrālija', 'Austrija', 'Austrumtimora', 'Azerbaidžāna',
'Bahamas', 'Bahreina', 'Baltkrievija', 'Bangladeša', 'Barbadosa', 'Beliza', 'Beļģija', 'Benina', 'Bolīvija',
'Bosnija un Hercegovina', 'Botsvana', 'Brazīlija', 'Bruneja', 'Bulgārija', 'Burkinafaso', 'Burundi', 'Butāna',
'Centrālāfrikas Republika', 'Čada', 'Čehija', 'Čīle', 'Dānija', 'Dienvidāfrikas Republika', 'Dienvidkoreja',
'Dienvidsudāna', 'Dominika', 'Dominikāna', 'Džibutija', 'Ekvadora', 'Ekvatoriālā Gvineja', 'Eritreja',
'Etiopija', 'Ēģipte', 'Fidži', 'Filipīnas', 'Francija', 'Gabona', 'Gajāna', 'Gambija', 'Gana', 'Grenada',
'Grieķija', 'Gruzija', 'Gvatemala', 'Gvineja', 'Gvineja-Bisava', 'Haiti', 'Hondurasa', 'Horvātija', 'Igaunija',
'Indija', 'Indonēzija', 'Irāka', 'Irāna', 'Islande', 'Itālija', 'Izraēla', 'Īrija', 'Jamaika', 'Japāna',
'Jaunzēlande', 'Jemena', 'Jordānija', 'Kaboverde', 'Kambodža', 'Kamerūna', 'Kanāda', 'Katara', 'Kazahstāna',
'Kenija', 'Kipra', 'Kirgizstāna', 'Kiribati', 'Kolumbija', 'Komoru Salas', 'Kongo', 'Kongo DR', 'Kostarika',
'Kotdivuāra', 'Krievija', 'Kuba', 'Kuveita', 'Ķīna', 'Laosa', 'Latvija', 'Lesoto', 'Libāna', 'Libērija',
'Lībija', 'Lielbritānija', 'Lietuva', 'Lihtenšteina', 'Luksemburga', 'Madagaskara', 'Maķedonijas Republika',
'Malaizija', 'Malāvija', 'Maldīvija', 'Mali', 'Malta', 'Maroka', 'Māršala Salas', 'Maurīcija', 'Mauritānija',
'Meksika', 'Melnkalne', 'Mikronēzija', 'Mjanma', 'Moldova', 'Monako', 'Mongolija', 'Mozambika', 'Namībija',
'Nauru', 'Nepāla', 'Nīderlande', 'Nigēra', 'Nigērija', 'Nikaragva', 'Norvēģija', 'Omāna', 'Pakistāna', 'Palau',
'Panama', 'Papua-Jaungvineja', 'Paragvaja', 'Peru', 'Polija', 'Portugāle', 'Ruanda', 'Rumānija', 'Salvadora',
'Samoa', 'Sanmarīno', 'Santome un Prinsipi', 'Saūda Arābija', 'Seišelu Salas', 'Senegāla',
'Sentkitsa un Nevisa', 'Sentlūsija', 'Sentvinsenta un Grenadīnas', 'Serbija', 'Singapūra', 'Sīrija',
'Sjerraleone', 'Slovākija', 'Slovēnija', 'Somālija', 'Somija', 'Spānija', 'Sudāna', 'Surinama', 'Svazilenda',
'Šrilanka', 'Šveice', 'Tadžikistāna', 'Taizeme', 'Tanzānija', 'Togo', 'Tonga', 'Trinidāda un Tobāgo',
'Tunisija', 'Turcija', 'Turkmenistāna', 'Tuvalu', 'Uganda', 'Ukraina', 'Ungārija', 'Urugvaja', 'Uzbekistāna',
'Vācija', 'Vanuatu', 'Vatikāns', 'Venecuēla', 'Vjetnama', 'Zālamana Salas', 'Zambija', 'Ziemeļkoreja',
'Zimbabve', 'Zviedrija',
);
protected static $region = array(

View file

@ -0,0 +1,708 @@
<?php
namespace Faker\Provider\ms_MY;
use \Faker\Generator;
class Address extends \Faker\Provider\Address
{
/**
* @link https://en.wikipedia.org/wiki/Addresses_in_Malaysia
*/
protected static $addressFormats = array(
'{{streetAddress}}, {{township}}, {{townState}}',
);
protected static $streetAddressFormats = array(
'{{buildingPrefix}}{{buildingNumber}}, {{streetName}}'
);
/**
* Most of the time 'No.' is not needed, and 'Lot' is less used.
*/
protected static $buildingPrefix = array(
'','','','','','',
'No. ','No. ','No. ',
'Lot ',
);
protected static $buildingNumber = array(
'%','%','%',
'%#','%#','%#','%#',
'%##',
'%-%',
'?-##-##',
'%?-##'
);
protected static $streetNameFormats = array(
'{{streetPrefix}} %',
'{{streetPrefix}} %/%',
'{{streetPrefix}} %/%#',
'{{streetPrefix}} %/%?',
'{{streetPrefix}} %/%#?',
'{{streetPrefix}} %?',
'{{streetPrefix}} %#?',
'{{streetPrefix}} {{streetSuffix}}',
'{{streetPrefix}} {{streetSuffix}} %',
'{{streetPrefix}} {{streetSuffix}} %/%',
'{{streetPrefix}} {{streetSuffix}} %/%#',
'{{streetPrefix}} {{streetSuffix}} %/%?',
'{{streetPrefix}} {{streetSuffix}} %/%#?',
'{{streetPrefix}} {{streetSuffix}} %?',
'{{streetPrefix}} {{streetSuffix}} %#?',
);
protected static $townshipFormats = array(
'{{townshipPrefix}} {{townshipSuffix}}',
'{{townshipPrefix}} {{townshipSuffix}}',
'{{townshipPrefix}} {{townshipSuffix}}',
'{{townshipPrefix}} {{townshipSuffix}}',
'{{townshipPrefix}} {{townshipSuffix}}',
'{{townshipPrefix}} {{townshipSuffix}}',
'{{townshipPrefixAbbr}}%',
'{{townshipPrefixAbbr}}%#',
'{{townshipPrefixAbbr}}%#?',
);
/**
* 'Jalan' & 'Jln' are more frequently used than 'Lorong'
*
* @link https://en.wikipedia.org/wiki/List_of_roads_in_Kuala_Lumpur#Standard_translations
*/
protected static $streetPrefix = array(
'Jln','Jln',
'Jalan','Jalan','Jalan',
'Lorong'
);
/**
* @link https://en.wikipedia.org/wiki/List_of_roads_in_Kuala_Lumpur
* @link https://en.wikipedia.org/wiki/List_of_roads_in_Ipoh
* @link https://en.wikipedia.org/wiki/Transportation_in_Seremban#Inner_city_roads
* @link https://en.wikipedia.org/wiki/List_of_streets_in_George_Town,_Penang
*/
protected static $streetSuffix = array(
'Air Itam','Alor','Ampang','Ampang Hilir','Anson','Ariffin',
'Bangsar','Baru','Bellamy','Birch','Bijih Timah','Bukit Aman','Bukit Bintang','Bukit Petaling','Bukit Tunku',
'Cantonment','Cenderawasih','Chan Sow Lin','Chow Kit','Cinta','Cochrane','Conlay',
'D. S. Ramanathan','Damansara','Dang Wangi','Davis','Dewan Bahasa','Dato Abdul Rahman','Dato\'Keramat','Dato\' Maharaja Lela','Doraisamy',
'Eaton',
'Faraday',
'Galloway','Genting Klang','Gereja',
'Hang Jebat','Hang Kasturi','Hang Lekir','Hang Lekiu','Hang Tuah','Hospital',
'Imbi','Istana',
'Jelutong',
'Kampung Attap','Kebun Bunga','Kedah','Keliling','Kia Peng','Kinabalu','Kuala Kangsar','Kuching',
'Ledang','Lembah Permai','Loke Yew','Lt. Adnan','Lumba Kuda',
'Madras','Magazine','Maharajalela','Masjid','Maxwell','Mohana Chandran','Muda',
'P. Ramlee','Padang Kota Lama','Pahang','Pantai Baharu','Parlimen','Pasar','Pasar Besar','Perak','Perdana','Petaling','Prangin','Pudu','Pudu Lama',
'Raja','Raja Abdullah','Raja Chulan','Raja Laut','Rakyat','Residensi','Robson',
'S.P. Seenivasagam','Samarahan 1','Selamat','Sempadan','Sentul','Serian 1','Sasaran','Sin Chee','Sultan Abdul Samad','Sultan Azlan Shah','Sultan Iskandar','Sultan Ismail','Sultan Sulaiman','Sungai Besi','Syed Putra',
'Tan Cheng Lock','Thambipillay','Tugu','Tuanku Abdul Halim','Tuanku Abdul Rahman','Tun Abdul Razak','Tun Dr Ismail','Tun H S Lee','Tun Ismail','Tun Perak','Tun Razak','Tun Sambanthan',
'U-Thant','Utama',
'Vermont','Vivekananda',
'Wan Kadir','Wesley','Wisma Putra',
'Yaacob Latif','Yap Ah Loy','Yap Ah Shak','Yap Kwan Seng','Yew',
'Zaaba','Zainal Abidin'
);
/**
* @link https://en.wikipedia.org/wiki/List_of_Petaling_Jaya_city_sections
* @link https://en.wikipedia.org/wiki/UEP_Subang_Jaya#History
*/
protected static $townshipPrefixAbbr = array(
'SS','Seksyen ','PJS','PJU','USJ ',
);
/**
* 'Bandar' and 'Taman' are the most common township prefix
*
* @link https://en.wikipedia.org/wiki/Template:Greater_Kuala_Lumpur > Townships
* @link https://en.wikipedia.org/wiki/Template:Johor > Townships
* @link https://en.wikipedia.org/wiki/Template:Kedah > Townships
* @link https://en.wikipedia.org/wiki/Template:Kelantan > Townships
* @link https://en.wikipedia.org/wiki/Template:Melaka > Townships
* @link https://en.wikipedia.org/wiki/Template:Negeri_Sembilan > Townships
* @link https://en.wikipedia.org/wiki/Template:Perak > Townships
* @link https://en.wikipedia.org/wiki/Template:Penang > Townships
* @link https://en.wikipedia.org/wiki/Template:Selangor > Townships
* @link https://en.wikipedia.org/wiki/Template:Terengganu > Townships
*/
protected static $townshipPrefix = array(
'Alam','Apartment','Ara',
'Bandar','Bandar','Bandar','Bandar','Bandar','Bandar',
'Bandar Bukit','Bandar Seri','Bandar Sri','Bandar Baru','Batu','Bukit',
'Desa','Damansara',
'Kampung','Kampung Baru','Kampung Baru','Kondominium','Kota',
'Laman','Lembah',
'Medan',
'Pandan','Pangsapuri','Petaling','Puncak',
'Seri','Sri',
'Taman','Taman','Taman','Taman','Taman','Taman',
'Taman Desa',
);
protected static $townshipSuffix = array(
'Aman','Amanjaya','Anggerik','Angkasa','Antarabangsa','Awan',
'Bahagia','Bangsar','Baru','Belakong','Bendahara','Bestari','Bintang','Brickfields',
'Casa','Changkat','Country Heights',
'Damansara','Damai','Dato Harun','Delima','Duta',
'Flora',
'Gembira','Genting',
'Harmoni','Hartamas',
'Impian','Indah','Intan',
'Jasa','Jaya',
'Keramat','Kerinchi','Kiara','Kinrara','Kuchai',
'Laksamana',
'Mahkota','Maluri','Manggis','Maxwell','Medan','Melawati','Menjalara','Meru','Mulia','Mutiara',
'Pahlawan','Perdana','Pertama','Permai','Pelangi','Petaling','Pinang','Puchong','Puteri','Putra',
'Rahman','Rahmat','Raya','Razak','Ria',
'Saujana','Segambut','Selamat','Selatan','Semarak','Sentosa','Seputeh','Setapak','Setia Jaya','Sinar','Sungai Besi','Sungai Buaya','Sungai Long','Suria',
'Tasik Puteri','Tengah','Timur','Tinggi','Tropika','Tun Hussein Onn','Tun Perak','Tunku',
'Ulu','Utama','Utara',
'Wangi',
);
/**
* @link https://en.wikipedia.org/wiki/Template:Greater_Kuala_Lumpur
* @link https://en.wikipedia.org/wiki/Template:Johor
* @link https://en.wikipedia.org/wiki/Template:Kedah
* @link https://en.wikipedia.org/wiki/Template:Kelantan
* @link https://en.wikipedia.org/wiki/Template:Labuan
* @link https://en.wikipedia.org/wiki/Template:Melaka
* @link https://en.wikipedia.org/wiki/Template:Negeri_Sembilan
* @link https://en.wikipedia.org/wiki/Template:Pahang
* @link https://en.wikipedia.org/wiki/Template:Perak
* @link https://en.wikipedia.org/wiki/Template:Perlis
* @link https://en.wikipedia.org/wiki/Template:Penang
* @link https://en.wikipedia.org/wiki/Template:Sabah
* @link https://en.wikipedia.org/wiki/Template:Sarawak
* @link https://en.wikipedia.org/wiki/Template:Selangor
* @link https://en.wikipedia.org/wiki/Template:Terengganu
*/
protected static $towns = array(
'johor' => array(
'Ayer Hitam',
'Batu Pahat','Bukit Gambir','Bukit Kepong','Bukit Naning',
'Desaru',
'Endau',
'Gelang Patah','Gemas Baharu',
'Iskandar Puteri',
'Jementah','Johor Lama','Johor Bahru',
'Kempas','Kluang','Kota Iskandar','Kota Tinggi','Kukup','Kulai',
'Labis ','Larkin','Layang-Layang',
'Mersing','Muar',
'Pagoh','Paloh','Parit Jawa','Pasir Gudang','Pekan Nanas','Permas Jaya','Pontian Kechil',
'Renggam',
'Segamat','Senai','Simpang Renggam','Skudai','Sri Gading',
'Tangkak','Tebrau',
'Ulu Tiram',
'Yong Peng',
),
'kedah' => array(
'Alor Setar',
'Baling','Bukit Kayu Hitam',
'Changlun',
'Durian Burung',
'Gurun',
'Jitra',
'Kepala Batas','Kuah','Kuala Kedah','Kuala Ketil','Kulim',
'Langgar','Lunas',
'Merbok',
'Padang Serai','Pendang',
'Serdang','Sintok','Sungai Petani',
'Tawar, Baling',
'Yan',
),
'kelantan' => array(
'Bachok','Bunut Payong',
'Dabong',
'Gua Musang',
'Jeli',
'Ketereh','Kota Bharu','Kuala Krai',
'Lojing',
'Machang',
'Pasir Mas','Pasir Puteh',
'Rantau Panjang',
'Salor',
'Tok Bali',
'Wakaf Bharu','Wakaf Che Yeh',
),
'kl' => array(
'Ampang',
'Bandar Tasik Selatan','Bandar Tun Razak','Bangsar','Batu','Brickfields','Bukit Bintang','Bukit Jalil','Bukit Tunku',
'Cheras','Chow Kit',
'Damansara Town Centre','Dang Wangi','Desa Petaling','Desa Tun Hussein Onn',
'Jinjang',
'Kampung Baru','Kampung Kasipillay','Kampung Pandan','Kampung Sungai Penchala','Kepong','KLCC','Kuchai Lama',
'Lake Gardens','Lembah Pantai',
'Medan Tuanku','Mid Valley City','Mont Kiara',
'Pantai Dalam','Pudu',
'Salak South','Segambut','Semarak','Sentul','Setapak','Setiawangsa','Seputeh','Sri Hartamas','Sri Petaling','Sungai Besi',
'Taman Desa','Taman Melawati','Taman OUG','Taman Tun Dr Ismail','Taman U-Thant','Taman Wahyu','Titiwangsa','Tun Razak Exchange',
'Wangsa Maju',
),
'labuan' => array(
'Batu Manikar',
'Kiamsam',
'Layang-Layang',
'Rancha-Rancha'
),
'melaka' => array(
'Alor Gajah',
'Bandaraya Melaka','Batu Berendam','Bukit Beruang','Bukit Katil',
'Cheng',
'Durian Tunggal',
'Hang Tuah Jaya',
'Jasin',
'Klebang',
'Lubuk China',
'Masjid Tanah',
'Naning',
'Pekan Asahan',
'Ramuan China',
'Simpang Ampat',
'Tanjung Bidara','Telok Mas',
'Umbai',
),
'nsembilan' => array(
'Ayer Kuning','Ampangan',
'Bahau','Batang Benar',
'Chembong',
'Dangi',
'Gemas',
'Juasseh',
'Kuala Pilah',
'Labu','Lenggeng','Linggi',
'Mantin',
'Nilai',
'Pajam','Pedas','Pengkalan Kempas','Port Dickson',
'Rantau','Rompin',
'Senawang','Seremban','Sungai Gadut',
'Tampin','Tiroi',
),
'pahang' => array(
'Bandar Tun Razak','Bentong','Brinchang','Bukit Fraser','Bukit Tinggi',
'Chendor',
'Gambang','Genting Highlands','Genting Sempah',
'Jerantut',
'Karak','Kemayan','Kota Shahbandar','Kuala Lipis','Kuala Pahang','Kuala Rompin','Kuantan',
'Lanchang','Lubuk Paku',
'Maran','Mengkuang','Mentakab',
'Nenasi',
'Panching',
'Pekan','Penor',
'Raub',
'Sebertak','Sungai Lembing',
'Tanah Rata','Tanjung Sepat','Tasik Chini','Temerloh','Teriang','Tringkap',
),
'penang' => array(
'Air Itam',
'Balik Pulau','Batu Ferringhi','Batu Kawan','Bayan Lepas','Bukit Mertajam','Butterworth',
'Gelugor','George Town',
'Jelutong',
'Kepala Batas',
'Nibong Tebal',
'Permatang Pauh','Pulau Tikus',
'Simpang Ampat',
'Tanjung Bungah','Tanjung Tokong',
),
'perak' => array(
'Ayer Tawar',
'Bagan Serai','Batu Gajah','Behrang','Bidor','Bukit Gantang','Bukit Merah',
'Changkat Jering','Chemor','Chenderiang',
'Damar Laut',
'Gerik','Gopeng','Gua Tempurung',
'Hutan Melintang',
'Ipoh',
'Jelapang',
'Kamunting','Kampar','Kuala Kangsar',
'Lekir','Lenggong','Lumut',
'Malim Nawar','Manong','Menglembu',
'Pantai Remis','Parit','Parit Buntar','Pasir Salak','Proton City',
'Simpang Pulai','Sitiawan','Slim River','Sungai Siput','Sungkai',
'Taiping','Tambun','Tanjung Malim','Tanjung Rambutan','Tapah','Teluk Intan',
'Ulu Bernam',
),
'perlis' => array(
'Arau',
'Beseri',
'Chuping',
'Kaki Bukit','Kangar','Kuala Perlis',
'Mata Ayer',
'Padang Besar',
'Sanglang','Simpang Empat',
'Wang Kelian',
),
'putrajaya' => array(
'Precinct 1','Precinct 4','Precinct 5',
'Precinct 6','Precinct 8','Precinct 10',
'Precinct 11','Precinct 12','Precinct 13',
'Precinct 16','Precinct 18','Precinct 19',
),
'sabah' => array(
'Beaufort','Bingkor',
'Donggongon',
'Inanam',
'Kinabatangan','Kota Belud','Kota Kinabalu','Kuala Penyu','Kimanis','Kundasang',
'Lahad Datu','Likas','Lok Kawi',
'Manggatal',
'Nabawan',
'Papar','Pitas',
'Ranau',
'Sandakan','Sapulut','Semporna','Sepanggar',
'Tambunan','Tanjung Aru','Tawau','Tenom','Tuaran',
'Weston',
),
'sarawak' => array(
'Asajaya',
'Ba\'kelalan','Bario','Batu Kawa','Batu Niah','Betong','Bintulu',
'Dalat','Daro',
'Engkilili',
'Julau',
'Kapit','Kota Samarahan','Kuching',
'Lawas','Limbang','Lubok Antu',
'Marudi','Matu','Miri',
'Oya',
'Pakan',
'Sadong Jaya','Sematan','Sibu','Siburan','Song','Sri Aman','Sungai Tujoh',
'Tanjung Kidurong','Tanjung Manis','Tatau',
),
'selangor' => array(
'Ampang','Assam Jawa',
'Balakong','Bandar Baru Bangi','Bandar Baru Selayang','Bandar Sunway','Bangi','Banting','Batang Kali','Batu Caves','Bestari Jaya','Bukit Lanjan',
'Cheras','Cyberjaya',
'Damansara','Dengkil',
'Ijok',
'Jenjarom',
'Kajang','Kelana Jaya','Klang','Kuala Kubu Bharu','Kuala Selangor','Kuang',
'Lagong',
'Morib',
'Pandamaran','Paya Jaras','Petaling Jaya','Port Klang','Puchong',
'Rasa','Rawang',
'Salak Tinggi','Sekinchan','Selayang','Semenyih','Sepang','Serendah','Seri Kembangan','Shah Alam','Subang','Subang Jaya','Sungai Buloh',
'Tanjung Karang','Tanjung Sepat',
'Ulu Klang','Ulu Yam',
),
'terengganu' => array(
'Ajil',
'Bandar Ketengah Jaya','Bandar Permaisuri','Bukit Besi','Bukit Payong',
'Chukai',
'Jerteh',
'Kampung Raja','Kerteh','Kijal','Kuala Besut','Kuala Berang','Kuala Dungun','Kuala Terengganu',
'Marang','Merchang',
'Pasir Raja',
'Rantau Abang',
'Teluk Kalung',
'Wakaf Tapai',
)
);
/**
* @link https://en.wikipedia.org/wiki/States_and_federal_territories_of_Malaysia
*/
protected static $states = array(
'johor' => array(
'Johor Darul Ta\'zim',
'Johor'
),
'kedah' => array(
'Kedah Darul Aman',
'Kedah'
),
'kelantan' => array(
'Kelantan Darul Naim',
'Kelantan'
),
'kl' => array(
'KL',
'Kuala Lumpur',
'WP Kuala Lumpur'
),
'labuan' => array(
'Labuan'
),
'melaka' => array(
'Malacca',
'Melaka'
),
'nsembilan' => array(
'Negeri Sembilan Darul Khusus',
'Negeri Sembilan'
),
'pahang' => array(
'Pahang Darul Makmur',
'Pahang'
),
'penang' => array(
'Penang',
'Pulau Pinang'
),
'perak' => array(
'Perak Darul Ridzuan',
'Perak'
),
'perlis' => array(
'Perlis Indera Kayangan',
'Perlis'
),
'putrajaya' => array(
'Putrajaya'
),
'sabah' => array(
'Sabah'
),
'sarawak' => array(
'Sarawak'
),
'selangor' => array(
'Selangor Darul Ehsan',
'Selangor'
),
'terengganu' => array(
'Terengganu Darul Iman',
'Terengganu'
)
);
/**
* @link https://ms.wikipedia.org/wiki/Senarai_negara_berdaulat
*/
protected static $country = array(
'Abkhazia','Afghanistan','Afrika Selatan','Republik Afrika Tengah','Akrotiri dan Dhekelia','Albania','Algeria','Amerika Syarikat','Andorra','Angola','Antigua dan Barbuda','Arab Saudi','Argentina','Armenia','Australia','Austria','Azerbaijan',
'Bahamas','Bahrain','Bangladesh','Barbados','Belanda','Belarus','Belgium','Belize','Benin','Bhutan','Bolivia','Bonaire','Bosnia dan Herzegovina','Botswana','Brazil','Brunei Darussalam','Bulgaria','Burkina Faso','Burundi',
'Cameroon','Chad','Chile','Republik Rakyat China','Republik China di Taiwan','Colombia','Comoros','Republik Demokratik Congo','Republik Congo','Kepulauan Cook','Costa Rica','Côte d\'Ivoire (Ivory Coast)','Croatia','Cuba','Curaçao','Cyprus','Republik Turki Cyprus Utara','Republik Czech',
'Denmark','Djibouti','Dominika','Republik Dominika',
'Ecuador','El Salvador','Emiriah Arab Bersatu','Eritrea','Estonia',
'Kepulauan Faroe','Fiji','Filipina','Finland',
'Gabon','Gambia','Georgia','Ghana','Grenada','Greece (Yunani)','Guatemala','Guinea','Guinea-Bissau','Guinea Khatulistiwa','Guiana Perancis','Guyana',
'Habsyah (Etiopia)','Haiti','Honduras','Hungary',
'Iceland','India','Indonesia','Iran','Iraq','Ireland','Israel','Itali',
'Jamaika','Jepun','Jerman','Jordan',
'Kanada','Kazakhstan','Kemboja','Kenya','Kiribati','Korea Selatan','Korea Utara','Kosovo','Kuwait','Kyrgyzstan',
'Laos','Latvia','Lesotho','Liberia','Libya','Liechtenstein','Lithuania','Lubnan','Luxembourg',
'Macedonia','Madagaskar','Maghribi','Malawi','Malaysia','Maldives','Mali','Malta','Kepulauan Marshall','Mauritania','Mauritius','Mesir','Mexico','Persekutuan Micronesia','Moldova','Monaco','Montenegro','Mongolia','Mozambique','Myanmar',
'Namibia','Nauru','Nepal','New Zealand','Nicaragua','Niger','Nigeria','Niue','Norway',
'Oman','Ossetia Selatan',
'Pakistan','Palau','Palestin','Panama','Papua New Guinea','Paraguay','Perancis','Peru','Poland','Portugal',
'Qatar',
'Romania','Russia','Rwanda',
'Sahara Barat','Saint Kitts dan Nevis','Saint Lucia','Saint Vincent dan Grenadines','Samoa','San Marino','São Tomé dan Príncipe','Scotland','Senegal','Sepanyol','Serbia','Seychelles','Sierra Leone','Singapura','Slovakia','Slovenia','Kepulauan Solomon','Somalia','Somaliland','Sri Lanka','Sudan','Sudan Selatan','Suriname','Swaziland','Sweden','Switzerland','Syria',
'Tajikistan','Tanjung Verde','Tanzania','Thailand','Timor Leste','Togo','Tonga','Transnistria','Trinidad dan Tobago','Tunisia','Turki','Turkmenistan','Tuvalu',
'Uganda','Ukraine','United Kingdom','Uruguay','Uzbekistan',
'Vanuatu','Kota Vatican','Venezuela','Vietnam',
'Yaman',
'Zambia','Zimbabwe',
);
/**
* Return a building prefix
*
* @example 'No.'
*
* @return @string
*/
public static function buildingPrefix()
{
return static::randomElement(static::$buildingPrefix);
}
/**
* Return a building number
*
* @example '123'
*
* @return @string
*/
public static function buildingNumber()
{
return static::toUpper(static::lexify(static::numerify(static::randomElement(static::$buildingNumber))));
}
/**
* Return a street prefix
*
* @example 'Jalan'
*/
public function streetPrefix()
{
$format = static::randomElement(static::$streetPrefix);
return $this->generator->parse($format);
}
/**
* Return a complete streename
*
* @example 'Jalan Utama 7'
*
* @return @string
*/
public function streetName()
{
$format = static::toUpper(static::lexify(static::numerify(static::randomElement(static::$streetNameFormats))));
return $this->generator->parse($format);
}
/**
* Return a randown township
*
* @example Taman Bahagia
*
* @return @string
*/
public function township()
{
$format = static::toUpper(static::lexify(static::numerify(static::randomElement(static::$townshipFormats))));
return $this->generator->parse($format);
}
/**
* Return a township prefix abbreviation
*
* @example 'USJ'
*
* @return @string
*/
public function townshipPrefixAbbr()
{
return static::randomElement(static::$townshipPrefixAbbr);
}
/**
* Return a township prefix
*
* @example 'Taman'
*
* @return @string
*/
public function townshipPrefix()
{
return static::randomElement(static::$townshipPrefix);
}
/**
* Return a township suffix
*
* @example 'Bahagia'
*/
public function townshipSuffix()
{
return static::randomElement(static::$townshipSuffix);
}
/**
* Return a postcode based on state
*
* @example '55100'
* @link https://en.wikipedia.org/wiki/Postal_codes_in_Malaysia#States
*
* @param null|string $state 'state' or null
*
* @return @string
*/
public static function postcode($state = null)
{
$format = array(
'perlis' => array( // (01000 - 02800)
'0' . mt_rand(1000, 2800)
),
'kedah' => array( // (05000 - 09810)
'0' . mt_rand(5000, 9810)
),
'penang' => array( // (10000 - 14400)
mt_rand(10000, 14400)
),
'kelantan' => array( // (15000 - 18500)
mt_rand(15000, 18500)
),
'terengganu' => array( // (20000 - 24300)
mt_rand(20000, 24300)
),
'pahang' => array( // (25000 - 28800 | 39000 - 39200 | 49000, 69000)
mt_rand(25000, 28800),
mt_rand(39000, 39200),
mt_rand(49000, 69000)
),
'perak' => array( // (30000 - 36810)
mt_rand(30000, 36810)
),
'selangor' => array( // (40000 - 48300 | 63000 - 68100)
mt_rand(40000, 48300),
mt_rand(63000, 68100)
),
'kl' => array( // (50000 - 60000)
mt_rand(50000, 60000),
),
'putrajaya' => array( // (62000 - 62988)
mt_rand(62000, 62988)
),
'nsembilan' => array( // (70000 - 73509)
mt_rand(70000, 73509)
),
'melaka' => array( // (75000 - 78309)
mt_rand(75000, 78309)
),
'johor' => array( // (79000 - 86900)
mt_rand(79000, 86900)
),
'labuan' => array( // (87000 - 87033)
mt_rand(87000, 87033)
),
'sabah' => array( // (88000 - 91309)
mt_rand(88000, 91309)
),
'sarawak' => array( // (93000 - 98859)
mt_rand(93000, 98859)
)
);
$postcode = is_null($state) ? static::randomElement($format) : $format[$state];
return (string)static::randomElement($postcode);
}
/**
* Return the complete town address with matching postcode and state
*
* @example 55100 Bukit Bintang, Kuala Lumpur
*
* @return @string
*/
public function townState()
{
$state = static::randomElement(array_keys(static::$states));
$postcode = static::postcode($state);
$town = static::randomElement(static::$towns[$state]);
$state = static::randomElement(static::$states[$state]);
return $postcode . ' ' . $town . ', ' . $state;
}
/**
* Return a random city (town)
*
* @example 'Ampang'
*
* @return @string
*/
public function city()
{
$state = static::randomElement(array_keys(static::$towns));
return static::randomElement(static::$towns[$state]);
}
/**
* Return a random state
*
* @example 'Johor'
*
* @return @string
*/
public function state()
{
$state = static::randomElement(array_keys(static::$states));
return static::randomElement(static::$states[$state]);
}
}

View file

@ -0,0 +1,105 @@
<?php
namespace Faker\Provider\ms_MY;
class Company extends \Faker\Provider\Company
{
protected static $formats = array(
'{{companyName}} {{companySuffix}}',
'{{industry}} {{lastNameMalay}} {{companySuffix}}',
'{{industry}} {{firstNameMaleChinese}} {{companySuffix}}',
'{{industry}} {{firstNameMaleIndian}} {{companySuffix}}',
);
/**
* There are more Private Limited Companies(Sdn Bhd) than Public Listed Companies(Berhad)
*
* @link http://www.risscorporateservices.com/types-of-business-entities.html
*/
protected static $companySuffix = array(
'Berhad',
'Bhd',
'Bhd.',
'Enterprise',
'Sdn Bhd','Sdn Bhd','Sdn Bhd','Sdn Bhd',
'Sdn. Bhd.','Sdn. Bhd.','Sdn. Bhd.','Sdn. Bhd.'
);
/**
* @link https://en.wikipedia.org/wiki/List_of_companies_of_Malaysia
*/
protected static $companies = array(
'Adventa','AirAsia','AmBank','Astro Malaysia Holdings','Astro Radio','Axiata',
'Berjaya Group','Bonia','Boustead Holdings','BSA Manufacturing','Bufori','Bumiputra-Commerce Holdings','Bursa Malaysia',
'Capital Dynamics','Celcom','CIMB',
'Digi Telecommunications','DRB-HICOM',
'Edaran Otomobil Nasional (EON)',
'Friendster',
'Gamuda','Genting Group','Golden Hope','Golden Screen Cinemas','Guthrie',
'HELP International Corporation',
'iMoney.my','IOI Group','Iskandar Investment','The Italian Baker',
'Jaring','JobStreet.com','Johor Corporation','Johor Land',
'Khazanah Nasional','Khind Holdings','KLCC Properties','Keretapi Tanah Melayu (KTM)','Konsortium Transnasional (KTB)','Kulim (Malaysia)',
'Lam Eng Rubber','Lion Group',
'Magnum Corporation','Maybank','Malaysia Airlines','Malaysia Airports','Marrybrown','Maxis Communications','MBO Cinemas','Media Prima','MIMOS','MISC','Modenas','MUI Group','Mydin',
'NAZA Group','New Straits Times Press',
'OYL Industries',
'Parkson','Pensonic','Permodalan Nasional','Perodua','Petronas','PLUS','Pos Malaysia','Prasarana Malaysia','Proton Holdings','Public Bank',
'Ramly Group','Ranhill Holdings','Resort World','RHB Bank','Royal Selangor',
'Scientex Incorporated','Scomi','Sime Darby','SIRIM','Sunway Group','Supermax',
'Tan Chong Motor','Tanjong','Tenaga Nasional','Telekom Malaysia(TM)','TGV Cinemas','Top Glove',
'U Mobile','UEM Group','UMW Holdings',
'VADS','ViTrox',
'Wasco Energy',
'YTL Corporation'
);
/**
* @link http://www.daftarsyarikat.biz/perkhidmatan-dan-konsultasi/pendaftaran-lesen-kementerian-kewangan/senarai-kod-bidang/
*/
protected static $industry = array(
'Agen Pengembaraan','Agen Penghantaran','Agen Perkapalan','Agensi Kredit Dan Pemfaktoran','Air','Akseso Kenderaan','Aksesori','Aksesori Jentera Berat','Aksesori Penghubung Dan Telekomunikasi','Aksesori Senjata Api','Akuatik','Akustik Dan Gelombang','Alat Forensik Dan Aksesori','Alat Gani','Alat Ganti','Alat Ganti Dan Kelengkapan Bot','Alat Hawa Dingin','Alat Hawa Dingin Kenderaan','Alat Kebombaan','Alat Kelengkapan Perubatan','Alat Keselamatan, Perlindungan Dan Kawalan Perlindungan Dan Kawalan','Alat Muzik Dan Aksesori','Alat Muzik, Kesenian dan Aksesori','Alat Penghasil Nyalaan','Alat penyelamat','Alat Penyimpan Tenaga Dan Aksesori','Alat Perhubungan','Alat Semboyan','Alat-Alat Marin','Alatganti Dan Kelengkapan Pesawat','Alatulis','Animation','Anti Kakis','Artis Dan Penghibur Profesional','Audio Visual',
'Bagasi Dan Beg dari kulit','Bahan Api Nuklear','Bahan Bacaan','Bahan Bacaan Terbitan Luar Negara','Bahan Bakar','Bahan Binaan','Bahan dan Peralatan Solekan dan Andaman','Bahan Letupan','Bahan Peledak','Bahan Pelincir','Bahan pembungkusan','Bahan Pencuci Dan Pembersihan','Bahan Pendidikan','Bahan Penerbitan Elektronik Dan Muzik','Bahan Surih, Drafting Dan Alat Lukis','Bahan Tambah','Bahan Tarpaulin Dan Kanvas','Baik Pulih Kasut Dan Barangan Kulit','Baikpulih Barang-Barang Logam','Baja Dan Nutrien Tumbuhan','Baka','Bangunan','Bantuan Kecemasan DanAmbulan','Bantuan Kemanusiaan','Barangan Hiasan Dalaman Dan Aksesori','Barangan PVC','Barge','Bas','Basah','Basikal','Bekalan Pejabat Dan Alatulis','Bekas','Belon Panas','Benih Semaian','Bill Board','Bioteknologi','Bot','Bot Malim','Bot Tunda','Brangan Logam','Broker Insuran','Broker Perkapalan','Bunga Api Dan Mercun','Butang Dan Bekalan Jahitan',
'Cat','Cenderamata Dan Hadiah','Cetakan Hologram','Cetakan Keselamatan','Chalet','Cloud Seeding','Complete Rounds','Customization and maintenance including data',
'Dadah Berjadual','Dan Aksesori','Darat','Dasar Dan Peraturan','Data management Provide services including Disaster','Dll','DNA','Dobi','Dokumentasi Dan Panduarah',
'Elektronik','Empangan','Enjin Kenderaan','Enjin, Komponen Enjin Dan Aksesori','Entry, data processing',
'Fabrik','Faksimili','Feri','Filem dan Mikrofilem','Filem Siap Untuk Tayangan','Fotografi',
'Gas','Gas Turbine','Geographic Information System','Geologi','Graphic Design',
'Habitat Dan Tempat Kurungan Haiwan','Haiwan Ternakan, Bukan Ternakan dan Akuatik','Hak Harta Intelek','Hardware','Hardware','Hardware and Software leasing','Hasil Sampingan Dan Sisa Perladangan','Helikopter','Hiasan Dalaman','Hiasan Jalan','Hidrografi','Homestay','Hortikultur','Hotel','Hubungan Antarabangsa','Hutan Dan Ladang Hutan',
'ICT security and firewall, Encryption, PKI, Anti Virus','Industri','Infrastructure','Internet',
'Jentera','Jentera Berat','Jentera Berat','Jet Ski',
'Kabel Elektrik Dan Aksesori','Kain','Kajian Telekomunikasi','Kakitangan Iktisas','Kakitangan Separa Iktisas','Kamera dan Aksesori','Kanvas','Kapal','Kapal Angkasa Dan Alatganti','Kapal Laut','Kapal Selam','Kapal Selam','Kapal Terbang','Kawalan Keselamatan','Kawalan Serangga Perosak, Anti Termite','Kawasan','Kayu','Kediaman','Kelengkapan','Kelengkapan Dan Aksesori','Kelengkapan Hospital Dan Makmal','Kelengkapan Pakaian','Kelengkapan Sasaran','Kemudahan Awam','Kemudahan Awam','Kenderaan','Kenderaan Bawah 3 Ton','Kenderaan Ber Rel Dan kereta Kabel','Kenderaan Jenazah','Kenderaan Kegunaan Khusus','Kenderaan Kegunaan Khusus','Kenderaan Melebihi 3Ton','Kenderaan Rekreasi','Kenderaan Udara','Kereta','Kerja Pembaikan Kapal Angkasa','Kerja-Kerja Khusus','Kerja-kerja Mengetuk dan Mengecat','Kerja-Kerja Pembaikan Kenderaan Ber Rel Dan Kereta Kabel','Kerja-Kerja Penyelenggaraan Sistem Kenderaan','Kertas','Kertas Komputer','Khidmat Guaman','Khidmat Latihan, Tenaga Pengajar dan Moderator','Khidmat Udara','Kit Pendidikan','Kodifikasi','Kolam Kumbahan','Komponen Dan Aksesori Elektrik','Komponen Enjin Pembakaran Dalaman','Kontena','Kotak','Kren','Kunci, Perkakasan Perlindungan Dan Aksesori','Kusyen dan Bumbung',
'Label','Ladang','Lagu','Lain-lain Media Pengiklanan','Laminating','Lampu, Komponen Lampu Dan Aksesori','Laut','Lesen','LIDAR','Lilin','Logam','Lokomotif Dan Troli Elektrik','Lori',
'Maintenance','Makanan','Makanan Bermasak','Makanan Bermasak','Makanan Dan Bahan Mentah Kering','Makanan dan Minuman','Makanan Haiwan','Makmal','Malim Kapal','Marker','Mechanisation System','Media Cetak','Media Elektronik','Medium Penyimpanan','Membaik Pulih Bateri','Membaik Pulih Tayar','Membaik Pulih TempatDuduk','Membaiki Buff Fuel Tank','Membaikpulih BahanTerbitan Dan Manuskrip','Membekal Air','Membeli Barang Lusuh Perlu Permit','Membeli Barang Lusuh Tanpa Permit','Membersih Kawasan','Membersih Kenderaan','Membersih Pantai','Memproses Air','Memproses Filem','Menangkap','Mencetak Borang','Mencetak Buku, Majalah, Laporan Akhbar','Mencetak Continuous Stationery Forms','Mencetak Fail, Kad Perniagaan Dan Kad Ucapan','Mencetak Label, Poster dan Pelekat','Mencetak Label, Poster, Pelekat dan Iron On','Mencuci Kolam Renang','Menembak Haiwan','Mengangkat Sampah','Mengangkut Mayat','Mengikat Dan Melepas Tali Kapal','Menjahit Bukan Pakaian','Menjahit Pakaian Dan Kelengkapan','Menjilid Kulit Keras','Menjilid Kulit Lembut','Menyelam','Mereka-Cipta Dan Seni Halus','Mesin Dan Kelengkapan Bengkel','Mesin dan Kelengkapan Khusus','Mesin dan peralatan makmal','Mesin dan Peralatan Pejabat','Mesin dan Peralatan Woksyop','Mesin Pengimbas','Mesin-Mesin Pejabat','Mesin-Mesin Pejabat Dan Aksesori','Minuman Tambahan','Motel','Motor Dan Alat Ubah','Motosikal','Multimedia-products services and maintenance','Multimodal Transport Operator',
'Negotiator','Networking-supply','Nylon',
'Oceanografi',
'P.A Sistem Dan Alat Muzik','Paip Air Dan Komponen','Paip Dan Kelengkapan','Pakaian','Pakaian Keselamatan, Kelengkapan Dan Aksesori','Pakaian Sukan Dan Aksesori','Palet','Pameran pertunjukan, taman hiburan dan karnival','Papan Tanda dan Aksesori','Pejabat','Pekakas Perubatan Pakai Buang','Pelancar Misil Dan Roket','Pelupusan Dan Perawatan Sisa berbahaya','Pelupusan Dan Perawatan Sisa tidak berbahaya','Pelupusan dan Rawatan Sisa Radio Aktif dan Nuklear','Peluru Berpandu','Peluru Dan Bom','Pemadam Api','Pembaikan Alat Keselamatan','Pembaikan Kenderaan Yang Tidak Berenjin','Pembajaan','Pembersihan Bangunan Dan Pejabat','Pembersihan Tumpahan Minyak','Pembuat','Pembuat','Pembuat Keselamatan','Pembungkusan','Pembungkusan Dan Penyimpanan','Pemeliharaan Bahan Bahan Sejarah Dan Tempat Bersejarah','Pemetaan','Pemetaan Utiliti Bawah Tanah','Pemilik Kapal','Pemungut Hutang','Pencahayaan','Pencelup','Pencucuh','Penerbitan Elektronik Atas Talian','Pengangkutan Lori','Pengatur Huruf','Pengeluaran Filem','Pengenalan Dan Pas Keselamatan Bersalut','Penghantar Notis','Penghantaran Dokumen','Pengkomersilan','Pengurusan Jenazah Dan Kelengkapan','Pengurusan Kewangan Dan Korporat','Pengurusan Pelabuhan','Penjana Kuasa','Pensijilan dan Pengiktirafan','Penterjemahan','Penulisan Semua Jenis Penulisan','Penyediaan Akaun dan Pengauditan','Penyediaan Pentas','Penyelenggaraan','Penyelenggaraan Kapal Terbang','Penyelenggaraan Misil','Penyelenggaraan Simulator Helikopter','Penyelenggaraan Simulator Kapal','Penyelenggaraan Simulator Kapal Terbang','PenyelenggaraanHelikopter','Penyelenggaran Dan Pembaikan Senjata','Penyiaran','Penyiasat Persendirian','Penyimpanan Rekod',
'Perabot','Perabot Jalan Raya','Perabot Pejabat','Perabot, Perabot Makmal dan Kelengkapan Berasaskan','Peralatan','Peralatan Dan Kelengkapan Hospital','Peralatan Dan Kelengkapan Pertanian','Peralatan Dan Kelengkapan Perubatan','Peralatan Dan Perkakas Domestik','Peralatan Kawalan Api','Peralatan Kawalan Keselamatan','Peralatan Keselamatan','Peralatan Keselamatan dan Senjata','Peralatan Makmal Pengukuran, Pencerapan Dan Sukat','Peralatan Makmal serta Aksesori','Peralatan Marin','Peralatan Memancing','Peralatan Memburu','Peralatan Pemantauan Dan Pengesanan','Peralatan Pemprosesan Fotografi, Mikrofilem','Peralatan Pengawalan Perosak Tanaman','Peralatan Percetakan Serta Aksesori','Peralatan Perindustrian Hiliran','Peralatan Perindustrian Huluan','Peralatan Perkhemahan Dan Aktiviti Luar','Peralatan Servis Dan Selenggara','Peralatan Sistem Bunyi, Pembesar Suara dan Projektor','Peralatan Sistem Kumbahan Dan Aksesori','Peralatan Sukan','Peralatan Untuk Orang Kurang Upaya Dan Pemulihan','Perhubungan','Perikanan Dan Akuakultur','Perkakas','Perkakas Elektrik Dan Aksesori','Perkakas Elektronik Dan Aksesori','Perkakasan Dan Bahan Kebersihan Diri Dan Mandian, Kelengkapan Bilik Air','Perkakasan Penyuntingan','Perkhidmatan Fotostat','Perkhidmatan Mel Pukal','Permainan','Perosak, Rumpai','Persembahan','Pertanian','Perundingan','Pesakit','Pesawat','Pesawat Udara','Pest Control','Pestaria','Pewarna','Pisah Warna','Plastik','Plastik','Printers, storage area network','Production Testing, Surface Well Testing and Wire Line Services','Pump','Pusat Latihan','Pvc',
'Racun Berjadual','Racun Serangga','Radar Dan Alatganti','Rakaman','Rawatan Hutan','Reaktor dan Instrumen Nuklear','Rekabentuk Percetakan','Renting','Resort','Roket Dan Sub Sistem, Pelancar','Rotan','Ruang Niaga','Rumah Kediaman','Rumah Tumpangan',
'Salvage Boat','Sampan','Sampel dan Sampel Awetan Haiwan','Sand Blasting Dan Mengecat Untuk Kapal','Satelit','Satelit Dan Alatganti','Semua Peralatan Sukatan','Senjata Api','Serangga','Sesalur','Shelf packages including maintenance','Ship Chandling','Ship Trimming','Simulator','Simulator Bot','Simulator serta lain-lain','Sisa Perawatan','Sistem Elektrik','Sistem Elektronik','Sistem Pencegah Kebakaran','Sistem Perhubungan','Sistem, Peralatan, Alat Ganti Keretapi Dan Aksesori','Software','Solekan','Split','Stesen Janakuasa, Peralatan','Stevedor','Stor','Sub Sistem Roket','Sukan','Sumber Air','Sungai','Syarikat Insuran','Syarikat pelelong awam','System development',
'Tag','Talian Paip','Taman','Tanaman','Tanda Dan Stiker','Tangki','Tasik','Tatahias Haiwan','Teknologi Hijau','Teknologi Maklumat Dan Komunikasi','Tekstil','Tekstil Guna Semula Kakitangan','Tekstil Pakai Buang Kakitangan','Telecommunication','Telekomunikasi','Telly Clerk','Tempat Letak Kereta','Tenaga Buruh','Ternakan','Terusan','Topografi','Trailer Dan Aksesori','Tukun Tiruan','Tumbuhan',
'Ubat Haiwan','Ubat Tidak Berjadual','Ujian Makmal','Ukuran',
'Varnishing',
'WAN','Wayar Elektrik Dan Aksesori','Wireless'
);
/**
* Return a random company name
*
* @example 'AirAsia'
*/
public static function companyName()
{
return static::randomElement(static::$companies);
}
/**
* Return a random industry
*
* @example 'Automobil'
*/
public static function industry()
{
return static::randomElement(static::$industry);
}
}

View file

@ -0,0 +1,169 @@
<?php
namespace Faker\Provider\ms_MY;
class Miscellaneous extends \Faker\Provider\Miscellaneous
{
/**
* @link https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Malaysia
*/
protected static $jpjNumberPlateFormats = array(
'{{peninsularPrefix}}{{validAlphabet}}{{validAlphabet}} {{numberSequence}}',
'{{peninsularPrefix}}{{validAlphabet}}{{validAlphabet}} {{numberSequence}}',
'{{peninsularPrefix}}{{validAlphabet}}{{validAlphabet}} {{numberSequence}}',
'{{peninsularPrefix}}{{validAlphabet}}{{validAlphabet}} {{numberSequence}}',
'W{{validAlphabet}}{{validAlphabet}} {{numberSequence}} {{validAlphabet}}',
'KV {{numberSequence}} {{validAlphabet}}',
'{{sarawakPrefix}} {{numberSequence}} {{validAlphabet}}',
'{{sabahPrefix}} {{numberSequence}} {{validAlphabet}}',
'{{specialPrefix}} {{numberSequence}}',
);
/**
* Some alphabet has higher frequency that coincides with the current number
* of registrations. E.g. W = Wilayah Persekutuan
*
* @link https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Malaysia#Current_format
*/
protected static $peninsularPrefix = array(
'A','A','B','C','D','F','J','J','K','M','N','P','P','R','T','V',
'W','W','W','W','W','W',
);
/**
* @link https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Malaysia#Current_format_2
*/
protected static $sarawakPrefix = array(
'QA','QK','QB','QC','QL','QM','QP','QR','QS','QT'
);
/**
* @link https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Malaysia#Current_format_3
*/
protected static $sabahPrefix = array(
'SA','SAA','SAB','SAC','SB','SD','SG',
'SK','SL','SS','SSA','ST','STA','SU'
);
/**
* @link https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Malaysia#Commemorative_plates
*/
protected static $specialPrefix = array(
'1M4U',
'A1M',
'BAMbee',
'Chancellor',
'G','G1M','GP','GT',
'Jaguh',
'K1M','KRISS',
'LOTUS',
'NAAM','NAZA','NBOS',
'PATRIOT','Perdana','PERFECT','Perodua','Persona','Proton','Putra','PUTRAJAYA',
'RIMAU',
'SAM','SAS','Satria','SMS','SUKOM',
'T1M','Tiara','TTB',
'U','US',
'VIP',
'WAJA',
'XIIINAM','XOIC','XXVIASEAN','XXXIDB',
'Y'
);
/**
* Chances of having an empty alphabet will be 1/24
*
* @link https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Malaysia#Current_format
*/
protected static $validAlphabets = array(
'A','B','C','D','E','F',
'G','H','J','K','L','M',
'N','P','Q','R','S','T',
'U','V','W','X','Y',''
);
/**
* Return a valid Malaysia JPJ(Road Transport Department) vehicle licence plate number
*
* @example 'WKN 2368'
*
* @return @string
*/
public function jpjNumberPlate()
{
$formats = static::toUpper(static::lexify(static::bothify(static::randomElement(static::$jpjNumberPlateFormats))));
return $this->generator->parse($formats);
}
/**
* Return Peninsular prefix alphabet
*
* @example 'W'
*
* @return @string
*/
public static function peninsularPrefix()
{
return static::randomElement(static::$peninsularPrefix);
}
/**
* Return Sarawak state prefix alphabet
*
* @example 'QA'
*
* @return @string
*/
public static function sarawakPrefix()
{
return static::randomElement(static::$sarawakPrefix);
}
/**
* Return Sabah state prefix alphabet
*
* @example 'SA'
*
* @return @string
*/
public static function sabahPrefix()
{
return static::randomElement(static::$sabahPrefix);
}
/**
* Return specialty licence plate prefix
*
* @example 'G1M'
*
* @return @string
*/
public static function specialPrefix()
{
return static::randomElement(static::$specialPrefix);
}
/**
* Return a valid license plate alphabet
*
* @example 'A'
*
* @return @string
*/
public static function validAlphabet()
{
return static::randomElement(static::$validAlphabets);
}
/**
* Return a valid number sequence between 1 and 9999
*
* @example '1234'
*
* @return @integer
*/
public static function numberSequence()
{
return mt_rand(1, 9999);
}
}

View file

@ -0,0 +1,244 @@
<?php
namespace Faker\Provider\ms_MY;
class Payment extends \Faker\Provider\Payment
{
protected static $bankFormats = array(
'{{localBank}}',
'{{foreignBank}}',
'{{governmentBank}}'
);
/**
* @link http://www.muamalat.com.my/consumer-banking/internet-banking/popup-ibg.html
*/
protected static $bankAccountNumberFormats = array(
'##########',
'###########',
'############',
'#############',
'##############',
'###############',
'################',
);
/**
* @link https://en.wikipedia.org/wiki/List_of_banks_in_Malaysia
*/
protected static $localBanks = array(
'Affin Bank',
'Alliance Bank',
'AmBank',
'CIMB Bank',
'Hong Leong Bank ',
'Maybank',
'Public Bank',
'RHB Bank'
);
/**
* @link https://en.wikipedia.org/wiki/List_of_banks_in_Malaysia#List_of_foreign_banks_(commercial)
*/
protected static $foreignBanks = array(
'Bangkok Bank Berhad',
'Bank of America Malaysia Berhad',
'Bank of China (Malaysia) Berhad',
'Bank of Tokyo-Mitsubishi UFJ (Malaysia) Berhad',
'BNP Paribas Malaysia Berhad',
'China Construction Bank',
'Citibank Berhad',
'Deutsche Bank (Malaysia) Berhad',
'HSBC Bank Malaysia Berhad',
'India International Bank (Malaysia) Berhad',
'Industrial and Commercial Bank of China (Malaysia) Berhad',
'J.P. Morgan Chase Bank Berhad',
'Mizuho Bank (Malaysia) Berhad',
'National Bank of Abu Dhabi Malaysia Berhad',
'OCBC Bank (Malaysia) Berhad',
'Standard Chartered Bank Malaysia Berhad',
'Sumitomo Mitsui Banking Corporation Malaysia Berhad',
'The Bank of Nova Scotia Berhad',
'United Overseas Bank (Malaysia) Bhd.'
);
/**
* @link https://en.wikipedia.org/wiki/List_of_banks_in_Malaysia#Development_Financial_Institutions_(Government-owned_banks)_(full_list)
*/
protected static $governmentBanks = array(
'Agro Bank Malaysia',
'Bank Pembangunan Malaysia Berhad (BPMB) (The development bank of Malaysia)',
'Bank Rakyat',
'Bank Simpanan Nasional',
'Credit Guarantee Corporation Malaysia Berhad (CGC)',
'Export-Import Bank of Malaysia Berhad (Exim Bank)',
'Malaysia Debt Ventures Berhad',
'Malaysian Industrial Development Finance Berhad (MIDF)',
'SME Bank Berhad',
'Sabah Development Bank Berhad (SDB)',
'Sabah Credit Corporation (SCC)',
'Tabung Haji',
);
/**
* @link https://en.wikipedia.org/wiki/List_of_banks_in_Malaysia#Investment-Link_Funds_(Insurance_Companies_-_Takaful_included)
*/
protected static $insuranceCompanies = array(
'AIA Malaysia',
'AIG Malaysia',
'Allianz Malaysia',
'AXA AFFIN Life Insurance',
'Berjaya General Insurance',
'Etiqa Insurance',
'Great Eastern Insurance',
'Hong Leong Assurance',
'Kurnia Insurans Malaysia',
'Manulife Malaysia Insurance',
'MSIG Malaysia',
'Prudential Malaysia',
'Tokio Marine Life Malaysia Insurance',
'UNI.ASIA General Insurance',
'Zurich Insurance Malaysia',
);
/**
* @link http://www.bankswiftcode.org/malaysia/
*/
protected static $swiftCodes = array(
'ABNAMY2AXXX','ABNAMYKLPNG','ABNAMYKLXXX','AFBQMYKLXXX','AIBBMYKLXXX',
'AISLMYKLXXX','AMMBMYKLXXX','ARBKMYKLXXX',
'BIMBMYKLXXX','BISLMYKAXXX','BKCHMYKLXXX','BKKBMYKLXXX','BMMBMYKLXXX',
'BNMAMYKLXXX','BNPAMYKAXXX','BOFAMY2XLBN','BOFAMY2XXXX','BOTKMYKAXXX',
'BOTKMYKXXXX',
'CHASMYKXKEY','CHASMYKXXXX','CIBBMYKAXXX','CIBBMYKLXXX','CITIMYKLJOD',
'CITIMYKLLAB','CITIMYKLPEN','CITIMYKLXXX','COIMMYKLXXX','CTBBMYKLXXX',
'DABEMYKLXXX','DBSSMY2AXXX','DEUTMYKLBLB','DEUTMYKLGMO','DEUTMYKLISB',
'DEUTMYKLXXX',
'EIBBMYKLXXX','EOBBMYKLXXX','EXMBMYKLXXX',
'FEEBMYKAXXX',
'HBMBMYKLXXX','HDSBMY2PSEL','HDSBMY2PXXX','HLBBMYKLIBU','HLBBMYKLJBU',
'HLBBMYKLKCH','HLBBMYKLPNG','HLBBMYKLXXX','HLIBMYKLXXX','HMABMYKLXXX',
'HSBCMYKAXXX','HSTMMYKLGWS','HSTMMYKLXXX',
'KAFBMYKLXXX','KFHOMYKLXXX',
'MBBEMYKAXXX','MBBEMYKLBAN','MBBEMYKLBBG','MBBEMYKLBWC','MBBEMYKLCSD',
'MBBEMYKLIPH','MBBEMYKLJOB','MBBEMYKLKEP','MBBEMYKLKIN','MBBEMYKLKLC',
'MBBEMYKLMAL','MBBEMYKLPEN','MBBEMYKLPGC','MBBEMYKLPJC','MBBEMYKLPJY',
'MBBEMYKLPKG','MBBEMYKLPSG','MBBEMYKLPUD','MBBEMYKLSAC','MBBEMYKLSBN',
'MBBEMYKLSHA','MBBEMYKLSUB','MBBEMYKLWSD','MBBEMYKLXXX','MBBEMYKLYSL',
'MFBBMYKLXXX','MHCBMYKAXXX',
'NOSCMY2LXXX','NOSCMYKLXXX',
'OABBMYKLXXX','OCBCMYKLXXX','OSKIMYKLXXX',
'PBBEMYKLXXX','PBLLMYKAXXX','PCGLMYKLXXX','PERMMYKLXXX','PHBMMYKLXXX',
'PTRDMYKLXXX','PTROMYKLFSD','PTROMYKLXXX',
'RHBAMYKLXXX','RHBBMYKAXXX','RHBBMYKLXXX','RJHIMYKLXXX',
'SCBLMYKXLAB','SCBLMYKXXXX','SMBCMYKAXXX',
'UIIBMYKLXXX','UOVBMYKLCND','UOVBMYKLXXX',
);
/**
* @link https://en.wikipedia.org/wiki/Malaysian_ringgit
*/
protected static $currencySymbol = array(
'RM'
);
/**
* Return a Malaysian Bank
*
* @example 'Maybank'
*
* @return @string
*/
public function bank()
{
$formats = static::randomElement(static::$bankFormats);
return $this->generator->parse($formats);
}
/**
* Return a Malaysian Bank account number
*
* @example '1234567890123456'
*
* @return @string
*/
public function bankAccountNumber()
{
$formats = static::randomElement(static::$bankAccountNumberFormats);
return static::numerify($formats);
}
/**
* Return a Malaysian Local Bank
*
* @example 'Public Bank'
*
* @return @string
*/
public static function localBank()
{
return static::randomElement(static::$localBanks);
}
/**
* Return a Malaysian Foreign Bank
*
* @example 'Citibank Berhad'
*
* @return @string
*/
public static function foreignBank()
{
return static::randomElement(static::$foreignBanks);
}
/**
* Return a Malaysian Government Bank
*
* @example 'Bank Simpanan Nasional'
*
* @return @string
*/
public static function governmentBank()
{
return static::randomElement(static::$governmentBanks);
}
/**
* Return a Malaysian insurance company
*
* @example 'AIA Malaysia'
*
* @return @string
*/
public static function insurance()
{
return static::randomElement(static::$insuranceCompanies);
}
/**
* Return a Malaysian Bank SWIFT Code
*
* @example 'MBBEMYKLXXX'
*
* @return @string
*/
public static function swiftCode()
{
return static::toUpper(static::lexify(static::randomElement(static::$swiftCodes)));
}
/**
* Return the Malaysian currency symbol
*
* @example 'RM'
*
* @return @string
*/
public static function currencySymbol()
{
return static::randomElement(static::$currencySymbol);
}
}

View file

@ -0,0 +1,813 @@
<?php
namespace Faker\Provider\ms_MY;
use Faker\Provider\DateTime;
use Faker\Generator;
class Person extends \Faker\Provider\Person
{
protected static $firstNameFormat = array(
'{{firstNameMaleMalay}}',
'{{firstNameFemaleMalay}}',
'{{firstNameMaleChinese}}',
'{{firstNameFemaleChinese}}',
'{{firstNameMaleIndian}}',
'{{firstNameFemaleIndian}}',
'{{firstNameMaleChristian}}',
'{{firstNameFemaleChristian}}',
);
/**
* @link https://en.wikipedia.org/wiki/Malaysian_names
*/
protected static $maleNameFormats = array(
//Malay
'{{muhammadName}}{{haji}}{{titleMaleMalay}}{{firstNameMaleMalay}} {{lastNameMalay}} bin {{titleMaleMalay}}{{firstNameMaleMalay}} {{lastNameMalay}}',
'{{muhammadName}}{{haji}}{{titleMaleMalay}}{{firstNameMaleMalay}} {{lastNameMalay}} bin {{titleMaleMalay}}{{firstNameMaleMalay}}',
'{{muhammadName}}{{haji}}{{titleMaleMalay}}{{firstNameMaleMalay}} {{lastNameMalay}} bin {{titleMaleMalay}}{{lastNameMalay}}',
'{{muhammadName}}{{haji}}{{titleMaleMalay}}{{firstNameMaleMalay}} {{lastNameMalay}}',
'{{muhammadName}}{{haji}}{{titleMaleMalay}}{{firstNameMaleMalay}} bin {{titleMaleMalay}}{{firstNameMaleMalay}} {{lastNameMalay}}',
'{{muhammadName}}{{haji}}{{titleMaleMalay}}{{firstNameMaleMalay}} bin {{titleMaleMalay}}{{firstNameMaleMalay}}',
'{{muhammadName}}{{haji}}{{titleMaleMalay}}{{firstNameMaleMalay}} bin {{titleMaleMalay}}{{lastNameMalay}}',
//Chinese
'{{lastNameChinese}} {{firstNameMaleChinese}}',
'{{lastNameChinese}} {{firstNameMaleChinese}}',
'{{lastNameChinese}} {{firstNameMaleChinese}}',
'{{lastNameChinese}} {{firstNameMaleChinese}}',
'{{lastNameChinese}} {{firstNameMaleChinese}}',
'{{firstNameMaleChristian}} {{lastNameChinese}} {{firstNameMaleChinese}}',
//Indian
'{{initialIndian}} {{firstNameMaleIndian}}',
'{{initialIndian}} {{lastNameIndian}}',
'{{firstNameMaleIndian}} a/l {{firstNameMaleIndian}}',
'{{firstNameMaleIndian}} a/l {{firstNameMaleIndian}} {{lastNameIndian}}',
'{{firstNameMaleIndian}} {{lastNameIndian}} a/l {{lastNameIndian}}',
'{{firstNameMaleIndian}} {{lastNameIndian}} a/l {{firstNameMaleIndian}} {{lastNameIndian}}',
'{{firstNameMaleIndian}} {{lastNameIndian}}',
);
/**
* @link https://en.wikipedia.org/wiki/Malaysian_names
*/
protected static $femaleNameFormats = array(
//Malay
'{{nurName}}{{hajjah}}{{firstNameFemaleMalay}} {{lastNameMalay}} binti {{titleMaleMalay}}{{firstNameMaleMalay}} {{lastNameMalay}}',
'{{nurName}}{{hajjah}}{{firstNameFemaleMalay}} {{lastNameMalay}} binti {{titleMaleMalay}}{{firstNameMaleMalay}}',
'{{nurName}}{{hajjah}}{{firstNameFemaleMalay}} {{lastNameMalay}} binti {{titleMaleMalay}}{{lastNameMalay}}',
'{{nurName}}{{hajjah}}{{firstNameFemaleMalay}} {{lastNameMalay}}',
'{{nurName}}{{hajjah}}{{firstNameFemaleMalay}} binti {{titleMaleMalay}}{{firstNameMaleMalay}} {{lastNameMalay}}',
'{{nurName}}{{hajjah}}{{firstNameFemaleMalay}} binti {{titleMaleMalay}}{{firstNameMaleMalay}}',
'{{nurName}}{{hajjah}}{{firstNameFemaleMalay}} binti {{titleMaleMalay}}{{lastNameMalay}}',
//Chinese
'{{lastNameChinese}} {{firstNameFemaleChinese}}',
'{{lastNameChinese}} {{firstNameFemaleChinese}}',
'{{lastNameChinese}} {{firstNameFemaleChinese}}',
'{{lastNameChinese}} {{firstNameFemaleChinese}}',
'{{lastNameChinese}} {{firstNameFemaleChinese}}',
'{{firstNameFemaleChristian}} {{lastNameChinese}} {{firstNameFemaleChinese}}',
//Indian
'{{initialIndian}}{{firstNameFemaleIndian}}',
'{{initialIndian}}{{lastNameIndian}}',
'{{firstNameFemaleIndian}} a/l {{firstNameMaleIndian}}',
'{{firstNameFemaleIndian}} a/l {{firstNameMaleIndian}} {{lastNameIndian}}',
'{{firstNameFemaleIndian}} {{lastNameIndian}} a/l {{firstNameMaleIndian}}',
'{{firstNameFemaleIndian}} {{lastNameIndian}} a/l {{firstNameMaleIndian}} {{lastNameIndian}}',
'{{firstNameFemaleIndian}} {{lastNameIndian}}',
);
/**
* @link https://en.wikipedia.org/wiki/List_of_Malay_people
* @link https://samttar.edu.my/senarai-nama-pelajar-2016/
* @link http://smkspkl.edu.my/senarai-nama-pelajar
*/
protected static $firstNameMaleMalay = array(
'A','A.r','A\'fif','A\'zizul','Ab','Abadi','Abas','Abd','Abd.','Abd.rahim','Abdel','Abdul','Abdull','Abdullah','Abdulloh','Abu','Adam','Adi','Adib','Adil','Adnan','Ady','Adzmin','Afandy','Afif','Afiq','Afza','Agus','Ahmad','Ahmat','Ahmed','Ahwali','Ahyer','Aidid','Aidil','Aiman','Aimman','Ainol','Ainuddin','Ainul','Aizad','Aizam','Aizat','Aizuddin','Ajis','Ajmal','Ajwad','Akhmal','Akid','Akif','Akmal','Al','Al-afnan','Al-muazrar','Alfian','Ali','Alias','Alif','Aliff','Alilah','Alin','Allif','Amaanullah','Amami','Aman','Amar','Ameershah','Amier','Amierul','Amil','Amin','Aminuddin','Amir','Amiruddin','Amirul','Ammar','Amran','Amri','Amru','Amrullah','Amsyar','Anas','Andri','Aniq','Anuar','Anuwar','Anwar','Aqeel','Aqif','Aqil','Arash','Arbani','Arefin','Arief','Arif','Arifen','Ariff','Ariffin','Arifin','Armi','Ashraf','Ashraff','Ashrof','Ashrul','Aslam','Asmawi','Asmin','Asmuri','Asraf','Asri','Asrialif','Asror','Asrul','Asymawi','Asyraaf','Asyraf','Atan','Athari','Awaludin','Awira','Azam','Azely','Azfar','Azhan','Azhar','Azhari','Azib','Azim','Aziz','Azizan','Azizul','Azizulhasni','Azlan','Azlee','Azli','Azman','Azmi','Azmie','Azmin','Aznan','Aznizam','Azraai','Azri','Azrie','Azrien','Azril','Azrin','Azrul','Azry','Azuan',
'Badri','Badrullesham','Baharin','Baharuddin','Bahrul','Bakri','Basaruddin','Basiran','Basirin','Basri','Basyir','Bazli','Borhan','Buang','Budi','Bukhari','Bukharudin','Bustaman','Buyung',
'Chailan',
'Dahalan','Dailami','Dan','Danial','Danie','Daniel','Danien','Danish','Darimin','Darul','Darus','Darwisy','Dhiyaulhaq','Diah','Djuhandie','Dolbahrin','Dolkefli','Dzikri','Dzul','Dzulfahmi','Dzulfikri','Dzulkarnaen',
'Eazriq','Effendi','Ehza','Eizkandar','Ekhsan','Elyas','Enidzullah','Ezam','Ezani',
'Fadhil','Fadly','Fadzil','Fadziruddin','Fadzli','Fahmi','Faiq','Fairuz','Faisal','Faiz','Faizal','Faizurrahman','Fakhrul','Fakhrullah','Farham','Farhan','Farid','Faris','Farisan','Fariz','Fasil','Fateh','Fathi','Fathuddin','Fathul','Fauzan','Fauzi','Fauzul','Fawwaz','Fazal','Fazly','Fazreen','Fazril','Fendi','Fikri','Fikrie','Fikrul','Firdaus','Fithri','Fitiri','Fitri','Fuad',
'Ghazali',
'Habib','Haddad','Hadi','Hadif','Hadzir','Haffize','Haffizi','Hafidzuddin','Hafis','Hafiy','Hafiz','Hafizan','Hafizhan','Hafizi','Hafizsyakirin','Hafizuddin','Haikal','Haiqal','Hairol','Hairollkahar','Hairuddin','Hairul','Hairun','Haisyraf','Haizan','Hakeem','Hakim','Hakimi','Hakimie','Halidan','Haliem','Halim','Hamdani','Hamidoon','Hamizan','Hamka','Hamzah','Hanafi','Hanif','Hanit','Hannan','Haqeem','Haqimie','Harez','Haris','Harith','Hariz','Harmaini','Harraz','Harun','Hasan','Hashim','Hasif','Hasnul','Hasrin','Hasrol','Hassan','Hasyim','Haszlan','Hayani','Hazim','Haziq','Haziqh','Hazrie','Hazrul','Hazwan','Hazzam','Helmy','Hermansah','Hidayat','Hidayatullah','Hilmi','Hisam','Hisammudin','Hisyam','Hj','Hoirussalam','Humadu','Hurmin','Husain','Husaini','Husnul','Hussein','Hussin','Huzaifi','Huzaimi','Huzzaini',
'Ibnu','Ibrahim','Idham','Idlan','Idris','Idrus','Idzwan','Ielman','Ighfar','Ihsan','Ikhmal','Ikhwan','Ikmal','Ilham','Ilhan','Illias','Ilman','Iman','Imran','Indra','Innamul','Iqbal','Iqwan','Iraman','Irfan','Irman','Irsyad','Isa','Ishak','Ishaq','Iskandar','Isma','Ismail','Ismaon','Isyraq','Iwan','Iyad','Izam','Izdihar','Izlan','Izuhail','Izwan','Izz','Izzan','Izzat','Izzikry','Izzuddin','Izzul',
'Ja\'afer','Jaf','Jaferi','Jafree','Jafri','Jahari','Jalani','Jamal','Jamali','Jamalludin','Jamaluddin','Jamekon','Jamil','Jamsare','Jani','Jasin','Jasni','Jebat','Jefrie','Johari','Joharudin','Jumat','Junaidi',
'Kamal','Kamaruddin','Kamarudin','Kamarul','Kamaruzain','Kamaruzaman','Kamaruzzaman','Kasim','Kasturi','Kemat','Khadzromi','Khairi','Khairil','Khairin','Khairiz','Khairol','Khairubi','Khairudin','Khairul','Khairulnizam','Khairun','Khairurrazi','Khalilul','Khasmadi','Khasri','Khatta','Khirul','Khoirul','Kholis','Khusaini','Khuzairey','Kutni',
'Latiff','Lazim','Lokman','Loqman','Lufty','Lukman','Luqman','Luqmanul','Luthfi','Luthfie',
'M.','Maamor','Madfaizal','Mahadhir','Mahatdir','Mahmusin','Mansor','Marlizam','Martonis','Mastura','Mat','Mazlan','Mazmin','Mazwan','Md','Md.','Megat','Meor','Midoon','Mie','Mikhail','Mirza','Misbun','Miskan','Misran','Miza','Mohlim','Mohmad','Mokhtar','Mokhzani','Moktar','Mu\'izzuddin','Muazzam','Mubarak','Muhaimen','Muhaimi','Muhammad','Muhd','Muid','Muizzuddin','Muizzudin','Mukhtar','Mukhriz','Mukminin','Murad','Murshid','Mus\'ab','Musa','Musiran','Muslim','Mustafa','Mustain','Mustaqim','Musyrif','Muszaphar','Muzami','Muzamil','Muzhafar','Muzzammil',
'Na\'imullah','Nabil','Naderi','Nadzeri','Naim','Najhan','Najib','Najmi','Nakimie','Naqib','Naqiuddin','Narul','Nasaruddin','Nashrul','Nasimuddin','Nasir','Nasiruddin','Nasri','Nasrizal','Nasruddin','Nasrul','Nasrullah','Naufal','Nawawi','Nazari','Nazaruddin','Nazarul','Nazeem','Nazeri','Nazhan','Nazim','Nazlan','Nazmi','Nazren','Nazri','Nazril','Nazrin','Nazrul','Nazzab','Ngadinin','Ngasiman','Ngatri','Nik','Nizam','Nizan','Nizar','Noor','Noordin','Noorizman','Nor','Norain','Norazman','Norazmi','Nordanish','Nordiarman','Nordin','Norfadli','Norfahmi','Norhakim','Norhan','Norhisham','Norsilan','Nur','Nur\'irfaan','Nurakmal','Nurhanafi','Nurhazrul','Nurul','Nuwair','Nuzrul','Nuzul',
'Omar','Omri','Osama','Osman','Othman',
'Pauzi','Puadi','Putra',
'Qairil','Qays','Qusyairi',
'R','Radin','Radzi','Radzuan','Rafael','Raffioddin','Rafiee','Rafiq','Rafizal','Rahim','Raihan','Raja','Rakmat','Ramdan','Ramlan','Ramli','Rash','Rashdan','Rashid','Rashidi','Rasid','Raulah','Rausyan','Razak','Razali','Razemi','Razif','Razlan','Razuan','Redzuan','Redzuawan','Redzwan','Rehan','Rehman','Rezal','Ridhuan','Ridwan','Ridza','Ridzuan','Ridzwan','Rifqi','Rizal','Rizli','Rohaizad','Rohaizal','Rohman','Roosmadi','Roseli','Roslan','Roslee','Rosli','Roslin','Rosman','Rosnan','Rossafizal','Rozi','Rukaini','Rukmanihakim','Ruknuddin','Ruslan','Rusli','Rusman',
'S.rozli','Sabana','Sabqi','Sabri','Sadili','Sadri','Saf\'han','Saffrin','Safie','Safiy','Safrizal','Safuan','Safwan','Sahamudin','Saharil','Said','Saidan','Saidin','Saif','Saiful','Saifullah','Saifullizan','Saipol','Sakri','Salamon','Salihin','Salimi','Salleh','Samad','Samani','Sameer','Samiun','Samsul','Samsur','Sanorhizam','Sardine','Sarudin','Sarwati','Saufishazwi','Sazali','Selamat','Senon','Shafarizal','Shafie','Shafiq','Shah','Shahamirul','Shaharudin','Shaheila','Shaheizy','Shahfiq','Shahmi','Shahnon','Shahquzaifi','Shahril','Shahrin','Shahrizal','Shahrol','Shahru','Shahrul','Shahrulnaim','Shahrun','Shahrunizam','Shahzwan','Shaiful','Shaikh','Shakif','Shakir','Sham','Shameer','Shamhazli','Shamil','Shamizan','Shamizul','Shamsuddin','Shamsudin','Shamsul','Shamsuri','Shamsuzlynn','Shapiein','Sharafuddin','Shari','Sharif','Sharifuddin','Sharifudin','Sharil','Sharizal','Sharsham','Sharudin','Sharul','Shaugi','Shauqi','Shawal','Shazwan','Sheikh','Shmsul','Shohaimi','Shukri','Sirajuddin','Sofian','Sohaini','Solehen','Solekhan','Solleh','Sualman','Subbahi','Subkhiddin','Sudarrahman','Sudirman','Suhaimi','Sukarni','Sukhairi','Sukri','Sukymi','Sulaiman','Sulhan','Suzaili','Suzaman','Syafiq','Syahaziq','Syahid','Syahir','Syahmi','Syahrial','Syahriman','Syahru','Syahzuan','Syakir','Syakirin','Syakirul','Syamirul','Syamsol','Syaqirin','Syarafuddin','Syawal','Syawalludin','Syazani','Syazwan','Syed','Syid','Syukri','Syuqeri',
'Tajuddin','Takiudin','Talha','Tarmizi','Tasripin','Taufek','Taufik','Tayib','Termizi','Thalahuddin','Thaqif','Tunan',
'Umair','Umar','Usman',
'W','Wafi','Wafiq','Wan','Wazir','Wazzirul','Wi',
'Yani','Yaqzan','Yazid','Yunos','Yusaini','Yusfaisal','Yushafiq','Yusni','Yusof','Yusoff','Yusri','Yussof','Yusuf',
'Zabayudin','Zabidi','Zahari','Zahid','Zahiruddin','Zahrul','Zaid','Zaidi','Zainal','Zaini','Zainodin','Zainordin','Zainuddin','Zainul','Zairy','Zaiyon','Zakaria','Zaki','Zakii','Zakri','Zakwan','Zambri','Zamre','Zamri','Zamrul','Zan','Zaqiyuddin','Zar\'ai','Zarif','Zariq','Zarith','Zarul','Zaukepli','Zawawi','Zharaubi','Zikri','Zikril','Zikry','Zizi','Zol','Zolkifle','Zubair','Zubir','Zufayri','Zufrie','Zuheeryrizal','Zuhri','Zuki','Zul','Zulfadhli','Zulfadli','Zulfahmi','Zulfaqar','Zulfaqqar','Zulfikar','Zulhaikal','Zulhakim','Zulhakimi','Zulhelmi','Zulhilmi','Zulkapli','Zulkarnain','Zulkefli','Zulkfli','Zulkifli','Zulkipli','Zulman','Zuri'
);
protected static $firstNameFemaleMalay = array(
'\'Abidah','\'Alyaa','\'Aqilah','\'Atiqah','\'Afiqah','\'Alia','\'Aqilah','A\'ishah','A\'in','A\'zizah','Abdah','Abiatul','Adani','Adawiyah','Adha','Adharina','Adhwa','Adibah','Adilah','Adilla','Adina','Adini','Adira','Adlina','Adlyna','Adriana','Adzlyana','Afifa','Afifah','Afina','Afiqah','Afiza','Afrina','Afzan','Ahda','Aida','Aidatul','Aidila','Aifa','Aiman','Aimi','Aimuni','Ain','Aina','Ainaa','Ainaanasuha','Aini','Ainin','Ainn','Ainnaziha','Ainul','Ainun','Ainur','Airin','Aishah','Aisya','Aisyah','Aiza','Akmal','Aleeya','Aleeza','Aleya','Aleza','Alia','Aliaa','Aliah','Aliffa','Aliffatus','Alina','Alis','Alisya','Aliya','Alkubra','Alleisya','Ally','Alya','Alyaa','Amalia','Amalien','Amalin','Amalina','Amani','Amanina','Amiera','Aminy','Amira','Amirah','Amisha','Amrina','Amylia','Amyra','An-nur','Anas','Andani','Andi','Anesha','Ani','Aninafishah','Anis','Anisah','Anisha','Anissa','Aniza','Anna','Anne','Antaza','Aqeem','Aqeera','Aqila','Aqilah','Arfahrina','Ariana','Ariena','Ariessa','Arifah','Arina','Ariqah','Arissa','Arisya','Armira','Arwina','Aryani','Ashika','Ashriyana','Asiah','Asma\'rauha','Asmaa\'','Asmaleana','Asniati','Asnie','Asniza','Aswana','Asy','Asyiqin','Asykin','Athirah','Atifa','Atifah','Atifahajar','Atikah','Atiqa','Atiqah','Atirah','Atyqah','Auni','Awatif','Awatiff','Ayesha','Ayu','Ayuni','Ayunie','Az','Azashahira','Aziah','Aziemah','Azika','Azira','Azizah','Azliah','Azliatul','Azlin','Azlina','Azmina','Azni','Azrah','Azrina','Azua','Azuin','Azwa','Azwani','Azyan','Azyyati',
'Badrina','Bahirah','Balqis','Basyirah','Batrisya','Batrisyia','Bilqis','Bismillah',
'Camelia','Cempaka',
'Dalila','Dalili','Damia','Dania','Danish','Darlina','Darwisyah','Deni','Dhani','\'Dhiya','Diana','Dianah','Dini','Diyana','Diyanah','Dylaila',
'Eizzah','Eliya','Ellynur','Elpiya','Elyana','Elysha','Ema','Emylia','Erika','Eva','Ezzatul',
'Faathihah','Fadhilah','Fadzliana','Fahda','Fahimah','Fahira','Fairuz','Faizah','Faiznur','Faizyani','Fakhira','Falah','Faqihah','Fara','Faradieba','Farah','Faraheira','Farahin','Farahiyah','Farahtasha','Farha','Farhah','Farhana','Faridatul','Fariha','Farina','Farisah','Farisha','Farrah','Fartinah','Farzana','Fasehah','Fasha','Fateha','Fatehah','Fathiah','Fathiha','Fathihah','Fathimah','Fatiha','Fatihah','Fatimatul','Fatin','Fatini','Fauziah','Faza','Fazlina','Fezrina','Filza','Filzah','Firzanah','Fitrah','Fitri','Fitriah','Fizra',
'Hadfina','Hadiyatul','Hafezah','Hafidzah','Hafieza','Hafizah','Hahizah','Hajar','Hakimah','Halimatul','Halimatussa\'diah','Halisah','Hamira','Hamizah','Hana','Hanaani','Hanani','Hani','Hanim','Hanini','Hanis','Hanisah','Hanna','Hannan','Hannani','Hanni','Hanun','Harma','Hasmalinda','Hasya','Hasyimah','Hayani','Hayati','Hayatul','Hayaty','Hazira','Hazirah','Hazmeera','Hazwani','Hazwanie','Herlina','Herliyana','Hidayah','Hidzwati','Huda','Humaira','Hureen','Husna','Husnina',
'Ida','Iffah','Iklil','Ili','Ilyana','Iman','Imelda','Insyira','Insyirah','Intan','\'Irdhina','Irdina','\'Irdina','Irsa','Iryani','\'Isdmah','Islamiah','Isnur','Izaiti','Izati','Izatie','Izatul','Izaty','Izlin','\'Izzah','Izzah','Izzani','Izzati','Izzatul','Izzaty','Izziani',
'Jaf','Jajuenne','Jani','Jannah','Jannatul','Jaslina','Jihan','Ju','Julia','Juliana','Juliya',
'Kamarlia','Kamelia','Kausthar','Kauthar','Khadijah','Khahirah','Khairina','Khairun','Khairunisa','Khairunnisa','Khairunnisak','Khaleeda','Khaleisya','Khaliesah','Khalisa','Khodijah',
'Laila','Liana','Lina','Lisa','Liyana',
'Madihah','Maheran','Mahfuzah','Mahirah','Maisara','Maisarah','Maizatul','Malihah','Mardhiah','Mariam','Marina','Mariska','Marlina','Marni','Maryam','Mas','Mashitah','Masitah','Mastura','Maswah','Masyikah','Masyitah','Maszlina','Mawaddah','Maya','Mazdiyana','Mazlyn','Melisa','Melissa','Mimi','Mira','Mirsha','Miskon','Miza','Muazzah','Mumtaz','Mursyidah','Muti\'ah','Muyassarah','Muzainah','Mysara','Mysarah',
'Nabihah','Nabila','Nabilah','Nabilla','Nabillah','Nadhilah','Nadhirah','Nadhrah','Nadia','Nadiah','Nadiatun','Nadilla','Nadira','Nadirah','Nadwah','Nadzirah','Nafisah','Nafizah','Najah','Najian','Najiha','Najihah','Najla','Najwa','Najwani','Naliny','Naqibahuda','Nashrah','Nashuha','Nasliha','Nasrin','Nasuha','Natasa','Natasha','Natasya','Nathasa','Natrah','Naurah','Nayli','Nazatul','Nazihah','Nazira','Nazirah','Nazura','Nazurah','Nikmah','Nina','Nisa','Nisak','Nisrina','Noorain','Noorazmiera','Noorfarzanah','Noornazratul','Norafizah','Norain','Noraisyah','Noralia','Noranisa','Noratasha','Nordhiya','Nordiana','Norelliana','Norerina','Norfaezah','Norfahanna','Norhafiza','Norhamiza','Norhidayah','Noridayu','Norliyana','Norsakinah','Norshaera','Norshahirah','Norshuhailah','Norsolehah','Norsuhana','Norsyafiqah','Norsyahirah','Norsyamimie','Norsyarah','Norsyazmira','Norsyazwani','Norsyuhada','Norul','Noryshah',
'Nuradilah','Nurafifah','Nurafrina','Nurain','Nuraina','Nuralia','Nuraliah','Nuralifah','Nuralya','Nurani','Nuranisya','Nuraqilah','Nurarisha','Nurasyikin','Nuratiqah','Nuraveena','Nureen','Nurfaatihah','Nurfadlhlin','Nurfaizah','Nurfarah','Nurfarahin','Nurfarhana','Nurfarrah','Nurfatehah','Nurfatiha','Nurfatin','Nurfirzanah','Nurfitrah','Nurfizatul','Nurhafizah','Nurhajar','Nurhani','Nurhanida','Nurhanis','Nurhanisah','Nurhanna','Nurhawa','Nurhazwani','Nurhazzimah','Nurhidayah','Nurhidayatul','Nurhuda','Nurilyani','Nurin','Nurjazriena','Nurmuzdalifah','Nurnajiha','Nurnatasha','Nurnazhimah','Nurnazhirah','Nurqurratuain','Nursabrina','Nursahira','Nursarah','Nursarwindah','Nursham','Nurshammeza','Nursofiah','Nursuhaila','Nursyaffira','Nursyafika','Nursyahindah','Nursyakirah','Nursyarina','Nursyazwani','Nursyazwina','Nursyuhadah','Nurulhuda','Nurulsyahida','Nurun','Nurwadiyah','Nurwahidah','Nurzafira','Nurzarith','Nurzulaika',
'Pesona','Puteri','Putri',
'Qairina','Qamarina','Qasrina','Qhistina','Qistina','Quintasya','Qurratu','Qurratuaini','Qurratul',
'Rabi\'atul','Rabiatul','Rafidah','Rahiemah','Rahmah','Raihah','Raihana','Raihanah','Raja','Rashmi','Rasyaratul','Rasyiqah','Rasyiqqah','Raudatul','Ridiatul','Rieni','Rifhan','Rihhadatul','Ros','Rosalinda','Rosyadah','Rusyda','Rusydina',
'Sa\'adah','Saadiah','Sabrina','Safi','Safiah','Safiyah','Sahira','Saidatul','Sakinah','Sakirah','Salwa','Sameera','Sarah','Sarwati','Sasya','Serene','Sha','Shabariah','Shafiah','Shafiera','Shafikah','Shafinaz','Shafiqa','Shafiqah','Shah','Shahida','Shahidah','Shahiera','Shahila','Shahira','Shahirah','Shahrazy','Shahrina','Shakilah','Shakinah','Shalina','Shameera','Shamila','Shamimie','Shamira','Shar\'fiera','Sharifah','Sharizah','Shauqina','Shayira','Shazana','Shazieda','Shazlien','Shazwana','Shazwani','Shonia','Shuhada','Siti','Siti','Siti','Siti','Siti','Siti','Sitti','Sofea','Sofeah','Soffia','Sofia','Sofiya','Sofiyah','Sofya','Solehah','Sopie','Suaidah','Suhada','Suhadah','Suhaida','Suhaila','Suhailah','Suhaina','Suhana','Suhani','Sulaiha','Sumayyah','Suraya','Suziyanis','Syaffea','Syafika','Syafikah','Syafina','Syafiqa','Syafiqah','Syafirah','Syafiyah','Syafiyana','Syahada','Syahadatullah','Syahera','Syaherah','Syahidah','Syahidatul','Syahiera','Syahira','Syahirah','Syahmimi','Syahmina','Syahzani','Syaidatul','Syairah','Syakila','Syakira','Syakirah','Syamien','Syamilah','Syamimi','Syamina','Syamirah','Syara','Syarafana','Syarafina','Syarah','Syarina','Syasyabila','Syauqina','Syaza','Syazana','Syazliya','Syazmin','Syazryana','Syazwana','Syazwani','Syazwanie','Syazwina','Syifa\'','Syuhada','Syuhada`','Syuhaida','Syuhaidah',
'Taqiah','Tasnim','Tengku','Tihany',
'Umairah','Umi','Umira','Ummi',
'Wadiha','Wafa','Waheeda','Wahida','Wahidah','Wan','Wardatul','Wardina','Wardinah','Wazira','Weni',
'Yasmeen','Yasmin','Yetri','Yunalis','Yusra','Yusrinaa','Yusyilaaida',
'Zaffan','Zafirah','Zaharah','Zahirah','Zahrah','Zahrak','Zaidalina','Zaidatulkhoiriyah','Zainab','Zainatul','Zakdatul','Zatalini','Zati','Zayani','Zeqafazri','Zilhaiza','Zubaidah','Zulaika','Zulaikha'
);
protected static $lastNameMalay = array(
'\'Aizat','A\'liyyuddin','Abas','Abdillah','Abdullah','Abidin','Adam','Adha','Adham','Adi','Adieka','Adip','Adli','Adnan','Adrus','Afandi','Afiq','Afizi','Afnan','Afsyal','Ahmad','Ahwali','Aidi','Aidil','Aiman','Aizad','Aizam','Aizat','Ajllin','Ajmal','Akashah','Akasyah','Akbar','Akhmal','Akid','Akif','Akmal','Al-amin','Al-hakim','Albukhary','Ali','Alias','Alif','Alimi','Aliuddin','Amaluddin','Amin','Aminnudin','Aminrullah','Aminuddin','Amiran','Amiruddin','Amirul','Amirullah','Ammar','Ammer','Amni','Amran','Amri','Amry','Amsyar','Amzah','Anam','Anaqi','Andalis','Anuar','Anwar','Apizan','Aqashah','Aqil','Arfan','Arfandi','Arias','Arief','Arif','Ariff','Ariffin','Arifin','Arifuddin','Arman','Arshad','Arziman','As','Asa','Ashraf','Ashraff','Asmadi','Asmar','Asmawi','Asri','Asyraf','Asyran','Asyrani','Aszahari','Awal','Awalluddin','Awaluddin','Awaludin','Awira','Ayyadi','Azahar','Azahari','Azam','Azhan','Azhar','Azhari','Azim','Aziz','Azizan','Azizi','Azizy','Azlan','Azlansyhah','Azli','Azlim','Azman','Azmee','Azmi','Azmin','Aznai','Azni','Azraai','Azrai','Azri','Azril','Azrin','Azriq','Azrul','Azuan',
'Badrulhisham','Baha','Bahaman','Bahari','Baharin','Baharruddin','Baharuddin','Baharudin','Bahri','Bahrin','Bahrodin','Bakar','Bakri','Bakry','Bakti','Basaruddin','Bashah','Basri','Basyir','Batisah','Bella','Berman','Borhan','Buhari','Bukhari',
'Chai',
'Dahalan','Dahari','Dahlan','Daiman','Daneal','Daniael','Danial','Daniel','Danish','Darmawi','Daryusman','Daud','Dazila','Din','Dini','Djuhandie','Dolkefli','Draman','Dzikri','Dzolkefli','Dzulkifli','Dzullutfi',
'Effendi','Effindi','Ekhsan','Elfin','Erfan',
'Fadhil','Fadhilah','Fadil','Fadillah','Fadlullah','Fadzil','Faez','Fahi','Fahim','Fahmi','Fahmie','Fairos','Fairuz','Faiser','Faiz','Faizal','Faizul','Faizun','Fakhri','Fakhrurrazi','Fareesnizra','Fareez','Farhan','Farid','Farihan','Faris','Farris','Fathi','Fatullah','Faudzi','Fauzi','Fauzy','Fayyad','Fazal','Fazil','Fazira','Fikri','Firdaus','Firdoz','Fiteri','Fitri','Fuad','Fuart','Fuzi',
'Garapar','Ghani','Ghazi',
'Haddi','Hadi','Hadzis','Haeizan','Hafandi','Hafiz','Hafizam','Hafizee','Hafizh','Hafizi','Hafizuddin','Haidie','Haikal','Haiqal','Hairizan','Hairuddin','Hairulnizam','Hairunnezam','Haizam','Haizan','Hajar','Hakam','Hakiem','Hakim','Hakimi','Hakimie','Halib','Halil','Halim','Halin','Hamdan','Hamdani','Hamid','Hamidi','Hamizie','Hamizuddin','Hamjah','Hammani','Hamzah','Hanafi','Hanafia','Hanief','Hanif','Hanifah','Haniff','Hanim','Hapani','Haqim','Haqimi','Haramaini','Hardinal','Hariff','Haris','Harith','Hariz','Harmaini','Harman','Haron','Harris','Haruddin','Harun','Hasadi','Hasan','Hasbi','Hasbullah','Hashan','Hasif','Hasim','Hasmawi','Hasnan','Hasri','Hassan','Hassim','Hassimon','Haszlan','Hazambi','Hazaril','Hazim','Hazimie','Haziq','Hazizan','Hazlin','Hazre','Hazrin','Hazrol','Helmi','Hi\'qal','Hikmee','Hilmi','Hisam','Hisham','Hishhram','Hizam','Husaini','Husin','Husna','Husni','Hussin','Huzaify','Huzain',
'Ibrahim','Idham','Idris','\'Iffat','Ifwat','Ikhmal','Ikhram','Ikhwan','Ikmal','Ikram','Ilman','Iman','Imran','Imtiyaz','Iqbal','Iqmal','Irfan','Irham','Irsyad','Is\'ad','Isa','Isfarhan','Ishak','Ishsyal','Iskandar','Ismadi','Ismail','Ismayudin','Isroman','Isyrafi','Izad','Izam','Izani','Izman','Izwan','Izzat','Izzuddin','Izzudin',
'Jainal','Jaini','Jamahari','Jamal','Jamaluddin','Jamaludin','Jaman','Jamri','Jani','Jasni','Jaya','Jeffri','Jefri','Jelani','Jemadin','Johan','Johari','Juhari','Jumat','Junaidi',
'Kahar','Kamal','Kamaruddin','Kamarudin','Kamarul','Kamaruzaman','Kamil','Kamslian','Karzin','Kasim','Kasturi','Khafiz','Khairani','Khairuddin','Khaleed','Khaliq','Khan','Kharmain','Khatta','Khilmi','Khir-ruddin','Khirulrezal','Khusaini',
'Latif','Latip','Lazim','Lukman',
'Maarof','Mahadi','Mahat','Mahathir','Mahmudin','Mahmusin','Mahyuddin','Mahyus','Majid','Malek','Malik','Maliki','Mamhuri','Man','Manaf','Manan','Manap','Mansor','Margono','Martunus','Maruzi','Marzuki','Maserun','Maskor','Maslan','Maswari','Maszuni','Mazalan','Mazlan','Midali','Mikhail','Mirza','Miskan','Miskoulan','Mislan','Misnan','Mizan','Mohhidin','Mohsin','Mokhtar','Moktar','Molkan','Mon','Montahar','Mossanif','Mu','Muaddib','Muain','Muhaimi','Muhaimin','Muhdi','Muiz','Mujamek','Mukmin','Mukromin','Muneer','Muqriz','Murad','Murshed','Murshidi','Musa','Muslim','Musliman','Mustafa','Mustapha','Mustaqim','Musyrif','Mutaali','Mutalib','Muti\'i','Muzamil','Muzammil',
'Na\'im','Nabil','Nadzri','Nafiz','Naim','Najhi','Najib','Najmi','Najmuddin','Naqiyuddin','Nasaruddin','Nashriq','Nasiman','Nasir','Nasrodin','Nasrullah','Naufal','Nawawi','Nazairi','Nazar','Nazarudin','Nazeri','Nazhan','Nazirin','Nazmi','Nazree','Nazri','Nazrin','Nazry','Ngadenan','Ngadun','Niszan','Nizam','Noh','Noor','Noordin','Noorhakim','Noorismadi','Noorizman','Nor','Noradhzmi','Noraffendi','Noraslan','Norazam','Norazim','Norazman','Norazmi','Nordin','Norhisam','Norhisham','Norizal','Norizan','Norlisam','Normansah','Norrizam','Norsilan','Norzamri','Nurfairuz','Nurhaliza','Nurnaim',
'Omar','Osman','Othman',
'Pa\'aing','Pauzi','Pisol','Putra','Putra',
'Qayum','Qayyum','Qayyuum','Qusyairi',
'Ra\'ais','Radzi','Raffioddin','Raffiq','Rafi','Rafizal','Rahamad','Rahim','Rahman','Rahmat','Rais','Raizal','Raman','Ramdan','Ramdzan','Ramlan','Ramlee','Ramli','Ramly','Rani','Ranjit','Raqi','Rashid','Rashidi','Rashidin','Rasid','Rassid','Rasyid','Razak','Razali','Raze','Razi','Razin','Razlan','Razman','Redha','Redzuan','Rembli','Remi','Ridduan','Ridhwan','Ridzuan','Ridzwan','Rifin','Rifqi','Rifqie','Rithwan','Rizal','Rizuan','Rizwan','Robani','Rohaizan','Rohem','Rohman','Ros','Rosdan','Roshman','Roslan','Roslee','Rosli','Rosly','Rosmawi','Rosnan','Rossaimi','Rostam','Rostan','Roszainal','Rozi','Rubi','Rusdi','Ruslan','Rusli','Rustam','Rusyaidi',
'Sa\'ari','Saad','Sabaruddin','Sabarudin','Sabki','Sabri','Sabrie','Safee','Saffuan','Safie','Safingi','Safrifarizal','Safrizal','Safwan','Sahidi','Sahril','Sahroni','Saifuddin','Saifudin','Saifulzakher','Saifuzin','Saihun','Saizol','Sakdon','Sakri','Salam','Saleh','Salehudin','Salim','Salleh','Salman','Sam','Samad','Samae','Samah','Saman','Samsani','Samsuddin','Samsul','Samsuri','Sandha','Sani','Sanorhizam','Sapuan','Sarim','Satar','Saudi','Sazali','Sedek','Selamat','Senon','Sha\'ril','Shabana','Shafei','Shafie','Shafiq','Shah','Shaharuddin','Shaharudin','Shahiman','Shahrazy','Shahrizan','Shaidi','Shaifuddin','Shaihuddin','Sham','Shameer','Shamizan','Shamsuddin','Shamsudin','Shamsul','Shapiein','Sharasan','Sharif','Sharifudin','Shariman','Sharin','Sharollizam','Sharum','Shazani','Shazman','Shmsul','Shobi','Shueib','Shukor','Shukri','Sidek','Sinuzulan','Soberi','Sobirin','Sofi','Solehin','Solekhan','Sonan','Suami','Subhi','Subzan','Sudirman','Sueib','Sufi','Sufian','Suhaimi','Suhiman','Sukarsek','Sulaiman','Sulong','Suraji','Surya','Sutrisno','Suz\'ian','Suzaimi','Syafiq','Syafrin','Syahir','Syahmi','Syahril','Syahrin','Syakir','Syamil','Syauqi','Syazwan','Syukran','Syukri','Syuraih',
'Tajudin','Takiudin','Talib','Taqiuddin','Tarjuddin','Tarmizi','Tarudin','Taufek','Thaqif','Tuah','Tukimin','Tumiran',
'Ubaidillah','Ulum','Umar','Usman','Usri','Uzair',
'Wafi','Wahab','Wahbillah','Wahid','Wahidan','Wahidin','Wardi','Wasil','Wazif','Wildani',
'Ya\'accob','Yaacob','Yaakob','Yaacup','Yacob','Yahaya','Yahya','Yajid','Yamani','Yanis','Yaqin','Yasin','Yazid','Yunus','Yusaini','Yusihasbi','Yusni','Yusof','Yusoff','Yusri','Yusrin','Yusseri','Yussof','Yusuf','Yuszelan','Yuzli',
'Zafran','Zahani','Zahar','Zahareman','Zahari','Zahin','Zaid','Zaidi','Zailan','Zailani','Zaimi','Zaiminuddin','Zain','Zainal','Zaini','Zainorazman','Zainordin','Zainuddin','Zainudin','Zainul-\'alam','Zainun','Zainuri','Zairi','Zairulaizam','Zakaria','Zaki','Zakir','Zakuan','Zakwan','Zam','Zamanhuri','Zamani','Zamhari','Zamran','Zamre','Zamree','Zamri','Zamzuri','Zani','Zar\'ai','Zawawi','Zawi','Zazlan','Zehnei','Zhafran','Zihni','Zikry','Zin','Zizi','Zol','Zolkafeli','Zolkifli','Zuanuar','Zubair','Zubir','Zufayri','Zuhaili','Zuki','Zukri','Zulamin','Zulfadhli','Zulfikar','Zulfikri','Zulhazril','Zulhelmi','Zulkafli','Zulkanine','Zulkarnaen','Zulkefle','Zulkefli','Zulkernain','Zulkhairie','Zulkifli','Zulqurnainin','Zumali','Zuraidi','Zuri','Zuwairi',
);
/**
* Note: The empty elements are for names without the title, chances increase by number of empty elements.
*
* @link https://en.wikipedia.org/wiki/Muhammad_(name)
*/
protected static $muhammadName = array('', '', '', '', 'Mohamad ','Mohamed ','Mohammad ','Mohammed ','Muhamad ','Muhamed ','Muhammad ','Muhammed ','Muhammet ','Mohd ');
/**
*
* @link https://en.wikipedia.org/wiki/Noor_(name)
*/
protected static $nurName = array('', '', '', '', 'Noor ', 'Nor ', 'Nur ', 'Nur ', 'Nur ', 'Nurul ','Nuur ');
/**
* @link https://en.wikipedia.org/wiki/Malaysian_names#Haji_or_Hajjah
*/
protected static $haji = array('', '', '', '', 'Haji ', 'Hj ');
protected static $hajjah = array('', '', '', '', 'Hajjah ', 'Hjh ');
/**
* @link https://en.wikipedia.org/wiki/Malay_styles_and_titles
*/
protected static $titleMaleMalay = array('', '', '', '', '', '', 'Syed ','Wan ','Nik ','Che ');
/**
* Chinese family name or surname
*
* @link https://en.wikipedia.org/wiki/List_of_common_Chinese_surnames
* @link https://en.wikipedia.org/wiki/Hundred_Family_Surnames
*
*/
protected static $lastNameChinese = array(
'An','Ang','Au','Au-Yong','Aun','Aw',
'Bai','Ban','Bok','Bong',
'Ch\'ng','Cha','Chai','Cham','Chan','Chang','Cheah','Cheam','Chee','Chen','Cheng','Cheok','Cheong','Chew','Chia','Chiam','Chiang',
'Chieng','Chiew','Chin','Ching','Chong','Choong','Chou','Chow','Choy','Chu','Chua','Chuah','Chung',
'Dee','Die','Ding',
'Ee','En','Eng','Er','Ewe',
'Fam','Fan','Fang','Feng','Foo','Foong',
'Gan','Gao','Gee','Gnai','Go','Goh','Gong','Guan','Gun',
'H\'ng','Hang','Hao','Haw','Hee','Heng','Hew','Hiew','Hii','Ho','Hoo','Hong','Hooi','Hui',
'Jong',
'Kam','Kang','Kar','Kee','Khoo','Khor','Khu','Kia','Kim','King','Ko','Koay','Koh','Kok','Kong','Kow','Kwok','Kwong','Ku','Kua','Kuan','Kum',
'Lah','Lai','Lam','Lau','Law','Leau','Lee','Leng','Leong','Leow','Leung','Lew','Li','Lian','Liang','Liao','Liew','Lim','Ling','Liong','Liow',
'Lo','Loh','Loi','Lok','Loke','Loo','Looi','Low','Lu','Luo','Lum','Lye',
'Ma','Mah','Mak','Meng','Mok',
'Neo','Neoh','New','Ng','Nga','Ngan','Ngeh','Ngeow','Ngo','Ngu','Nguei','Nii',
'Ong','Oo','Ooi','Oon','Oong','OuYang',
'P\'ng','Pang','Phang','Phoon','Phor','Phua','Phuah','Poh','Poon',
'Qian','Qu','Quah','Quak','Quan','Quek',
'Sam','Sau','Seah','See','Seetho','Seng','Seoh','Seow','Shee','Shi','Shum','Sia','Siah','Siao','Siauw','Siaw','Siew','Sim','Sin','Sio','Siong','Siow','Siu','Soh','Song','Soo','Soon','Su','Sum',
'T\'ng','Tai','Tam','Tan','Tay','Tang','Tea','Tee','Teh','Tek','Teng','Teo','Teoh','Tern','Tew','Tey','Thang','Thew','Thong','Thoo','Thum','Thun','Ting','Tiong','Toh','Tong','Tse','Tung',
'Vong',
'Wah','Waiy','Wan','Wee','Wen','Wong','Woo','Woon','Wu',
'Xia','Xiong','Xu',
'Yam','Yao','Yiaw','Ying','Yip','Yang','Yap','Yau','Yee','Yen','Yeo','Yeoh','Yeong','Yeow','Yep','Yew','Yong','Yow','You','Yu','Yuan','Yuen',
'Zhong','Zhang','Zheng','Zhu','Zu'
);
/**
* Chinese second character
*
* @link https://en.wikipedia.org/wiki/Chinese_given_name
* @link https://en.wikipedia.org/wiki/List_of_Malaysians_of_Chinese_descent
* @link https://en.wikipedia.org/wiki/Category:Malaysian_people_of_Cantonese_descent
* @link https://en.wikipedia.org/wiki/Category:Malaysian_politicians_of_Chinese_descent
*/
protected static $firstNameChinese = array(
'Ah','Ai','Aik','An','Ann','Ang','Au','Aun','Aw',
'Bae','Bai','Bak','Ban','Bang','Bao','Bau','Bee','Beh','Bei','Ben','Beng','Bi','Bik','Bin','Bing','Bo','Bok','Bong','Boo','Boon','Bow','Bu','Bui','Buk','Bun','Bung',
'Cai','Car','Caw','Cee','Ceh','Cek','Cen','Cer',
'Cha','Chah','Chai','Chak','Cham','Chan','Chang','Chao','Chap','Char','Chat','Chau','Chaw',
'Chea','Cheah','Cheam','Chean','Cheang','Chee','Cheen','Chek','Chen','Cheng','Cheok','Cheong','Cher','Chet','Chew',
'Chi','Chia','Chih','Chik','Chin','Ching','Chio','Chit','Chiu',
'Cho','Choi','Chok','Chon','Chong','Choo','Chooi','Choon','Choong','Chor','Chou','Chow','Choy',
'Chu','Chua','Chuah','Chuan','Chua','Chui','Chuk','Chum','Chun','Chung','Chuo','Chye',
'Da','Dai','Dan','Dang','Dao','Dau','Dee','Deng','Di','Dim','Din','Ding','Diong','Do','Dong','Doo','Dou','Du','Dui','Duo',
'Ee','Eh','En','Enn','Er','Ern','Eu','Ew',
'Fa','Fah','Fai','Fam','Fan','Fang','Fat','Fatt','Fay','Faye','Fee','Fei','Fen','Feng','Fern','Fey','Fok','Fon','Fong','Foo','Foon','Foong','Fu','Fui','Fuk','Fun','Fung',
'Gai','Gak','Gam','Gan','Gao','Gau','Gee','Gek','Geng','Gi','Giap','Gin','Git','Go','Goh','Gok','Gon','Gong','Goo','Goon','Gu','Gui','Guk','Gun','Gung','Gunn',
'Ha','Haa','Hah','Hai','Han','Hang','Hao','Har','Haw','He','Hee','Hei','Hen','Heng','Heong','Her','Hew','Hi','Hii','Hin','Hing','Hiong','Hiu',
'Ho','Hoe','Hoi','Hok','Hom','Hon','Hong','Hoo','Hooi','Hook','Hoon','Hoong','Hor','Hou','How','Hoy','Hu','Hua','Huan','Huang','Hue','Hui','Hun','Hung','Huo','Hup',
'Jan','Jang','Jao','Jee','Jei','Jen','Jeng','Jeong','Jer','Jet','Jett','Jeu','Ji','Jia','Jian','Jiang','Jie','Jien','Jiet','Jim','Jin','Jing','Jio','Jiong','Jit','Jiu',
'Jo','Joe','Jong','Joo','Joon','Joong','Joy','Ju','Jun','Jung','Jye',
'Ka','Kaa','Kah','Kai','Kak','Kam','Kan','Kang','Kao','Kap','Kar','Kat','Kau','Kaw','Kay','Ke','Kean','Keang','Keat','Kee','Kei','Kek','Ken','Keng','Ker','Keu','Kew','Key',
'Kha','Khai','Khan','Khang','Khar','Khaw','Khay','Khean','Kheang','Khee','Khi','Khia','Khian','Khiang','Kho','Khoh','Khoi','Khoo','Khor','Khu','Khum','Khung',
'Ki','Kia','Kian','Kiang','Kiap','Kiat','Kien','Kiet','Kim','Kin','King','Kit','Ko','Koe','Koh','Koi','Kok','Kong','Koo','Koong','Koor','Kor','Kou','Kow','Koy',
'Ku','Kua','Kuang','Kui','Kum','Kun','Kung','Kuo','Kuong','Kuu',
'La','Lai','Lak','Lam','Lan','Lang','Lao','Lap','Lar','Lat','Lau','Law','Lay',
'Le','Lea','Lean','Leang','Leat','Lee','Leen','Leet','Lei','Lein','Leik','Leiu','Lek','Len','Leng','Leon','Leong','Leow','Ler','Leu','Leung','Lew','Lex','Ley',
'Li','Liah','Lian','Liang','Liao','Liat','Liau','Liaw','Lie','Liek','Liem','Lien','Liet','Lieu','Liew','Lih','Lik','Lim','Lin','Ling','Lio','Lion','Liong','Liow','Lip','Lit','Liu',
'Lo','Loh','Loi','Lok','Long','Loo','Looi','Look','Loon','Loong','Lor','Lou','Low','Loy',
'Lu','Lua','Lui','Luk','Lum','Lun','Lung','Luo','Lup','Luu',
'Ma','Mae','Mag','Mah','Mai','Mak','Man','Mang','Mao','Mar','Mat','Mau','Maw','May','Me','Mea','Mee','Meg','Meh','Mei','Mek','Mel','Men','Meu','Mew',
'Mi','Mie','Miin','Miing','Min','Ming','Miu','Mo','Moh','Moi','Mok','Mon','Mong','Moo','Moon','Moong','Mou','Mow','Moy','Mu','Mua','Mui','Mum','Mun','Muu',
'Na','Naa','Nah','Nai','Nam','Nan','Nao','Nau','Nee','Nei','Neng','Neo','Neu','New','Nga','Ngah','Ngai','Ngan','Ngao','Ngau','Ngaw','Ngo','Ngu','Ni','Nian','Niang','Niao','Niau','Nien','Nik','Nin','Niu','Nong','Nyet',
'Oh','Oi','Ong','Onn','Oo','Ooi',
'Pah','Pai','Pak','Pam','Pan','Pang','Pao','Pat','Pau','Paw','Pay','Peh','Pei','Peik','Pek','Pen','Peng','Pey',
'Phang','Pheng','Phong','Pik','Pin','Ping','Po','Poh','Pok','Pom','Pong','Pooi','Pou','Pow','Pu','Pua','Puah','Pui','Pun',
'Qi','Qin','Qing','Qiu','Qu','Quan','Quay','Quen','Qui','Quek','Quok',
'Rei','Ren','Rin','Ring','Rinn','Ron','Rong','Rou','Ru','Rui','Ruo',
'Sai','Sam','San','Sang','Say','Sha','Shak','Sham','Shan','Shang','Shao','Shar','Shau','Shaw','Shay','She','Shea','Shee','Shei','Shek','Shen','Sher','Shew','Shey','Shi','Shia','Shian','Shiang','Shiao','Shie','Shih','Shik','Shim','Shin','Shing','Shio','Shiu',
'Sho','Shok','Shong','Shoo','Shou','Show','Shu','Shui','Shuk','Shum','Shun','Shung','Shuo','Si','Sia','Siah','Siak','Siam','Sian','Siang','Siao','Siau','Siaw','Sien','Sieu','Siew','Sih','Sik','Sim','Sin','Sing','Sio','Siong','Siou','Siow','Sit','Siu',
'So','Soh','Soi','Sok','Son','Song','Soo','Soon','Soong','Sou','Sow','Su','Suan','Suang','Sue','Suen','Sui','Suk','Sum','Sun','Sung','Suo',
'Ta','Tai','Tak','Tam','Tan','Tang','Tao','Tar','Tat','Tatt','Tau','Tay','Tea','Teak','Tean','Tee','Teh','Tei','Tek','Ten','Teng','Teo','Teoh','Ter','Tet','Teu','Tew','Tey',
'Tha','Thai','Tham','Thang','Thau','Thay','Thee','Theo','Ther','Thew','They','Thia','Thian','Thien','Tho','Thok','Thong','Thoo','Thor','Thou','Thu','Thuk','Thum','Thung','Thur','Ti','Tia','Tiah','Tiak','Tiam','Tian','Tiang','Tiek','Tien','Tik','Tim','Tin','Ting','Tio','Tiong','Tiu',
'To','Toh','Tok','Tong','Too','Tor','Tou','Tow','Tu','Tuk','Tung',
'Ung',
'Vin','Von','Voon',
'Wa','Wah','Wai','Wan','Wang','Way','Wee','Wei','Wen','Weng','Wey','Whay','Whey','Wi','Win','Wing','Wo','Woh','Woi','Wok','Won','Wong','Woo','Woon','Wu','Wui',
'Xi','Xia','Xiah','Xian','Xiang','Xiao','Xiau','Xie','Xin','Xing','Xiong','Xiu','Xu','Xun',
'Yam','Yan','Yang','Yao','Yat','Yatt','Yau','Yaw','Ye','Yee','Yen','Yeng','Yeo','Yeoh','Yeong','Yep','Yet','Yeu','Yew','Yi','Yih','Yii','Yik','Yin','Ying','Yip','Yit','Yo','Yok','Yon','Yong','Yoo','You','Yow','Yu','Yuan','Yue','Yuen','Yuet','Yuk','Yun','Yung','Yup','Yut','Yutt',
'Za','Zai','Zang','Zao','Zau','Zea','Zeah','Zed','Zee','Zen','Zeng','Zeo','Zet',
'Zha','Zhai','Zhan','Zhang','Zhao','Zhau','Zhee','Zhen','Zheng','Zhet','Zhi','Zhong','Zhu','Zhung',
'Zi','Zia','Ziah','Ziak','Zian','Ziang','Ziao','Ziau','Zit','Zo','Zoe','Zou','Zu','Zui','Zuk','Zung',
);
/**
* Chinese male third character
*
* @link https://en.wikipedia.org/wiki/Chinese_given_name
* @link https://en.wikipedia.org/wiki/List_of_Malaysians_of_Chinese_descent
* @link https://en.wikipedia.org/wiki/Category:Malaysian_people_of_Cantonese_descent
* @link https://en.wikipedia.org/wiki/Category:Malaysian_politicians_of_Chinese_descent
*/
protected static $firstNameMaleChinese = array(
'Aik','Ang','Au','Aun',
'Bak','Ban','Bang','Bao','Bau','Ben','Beng','Bing','Bok','Bong','Boo','Boon','Bow','Buk','Bun','Bung',
'Chai','Chak','Chan','Chang','Chao','Chap','Chat','Chau','Chaw',
'Cheah','Chee','Cheen','Chek','Chen','Cheong','Cher','Chet','Chew',
'Chia','Chih','Chik','Chin','Ching','Chit','Chiu',
'Cho','Choi','Chok','Chon','Chong','Choo','Chooi','Choon','Choong','Chor','Chou','Chow','Choy',
'Chua','Chuah','Chuan','Chua','Chui','Chuk','Chum','Chun','Chung','Chuo','Chye',
'Dan','Dao','Dau','Dee','Deng','Di','Dim','Din','Diong','Dong','Dou','Du','Dui','Duo',
'Eu','Ew',
'Fai','Fam','Fat','Fatt','Fee','Feng','Fok','Fon','Fong','Foo','Foon','Foong','Fu','Fui','Fuk',
'Gai','Gak','Gam','Gan','Gao','Gau','Gee','Gek','Geng','Giap','Gin','Git','Go','Goh','Gok','Gon','Gong','Gu','Guk','Gun','Gung','Gunn',
'Hai','Han','Hang','Har','Haw','Hei','Hen','Heng','Hing',
'Ho','Hoe','Hoi','Hok','Hom','Hon','Hong','Hoo','Hook','Hoon','Hoong','Hor','Hou','How','Hoy','Hu','Huan','Huang','Hun','Hung','Huo','Hup',
'Jeong','Jer','Jet','Jett','Jeu','Ji','Jian','Jiang','Jiet','Jim','Jin','Jio','Jiong','Jit','Jiu','Jo','Joe','Joong','Jung','Jye',
'Kai','Kan','Kang','Kao','Kap','Kau','Kaw','Kean','Keang','Keat','Kek','Ken','Keng','Ker','Keu','Kew',
'Khai','Khan','Khang','Khaw','Khean','Kheang','Khia','Khian','Khiang','Kho','Khoh','Khoi','Khoo','Khu','Khung',
'Kia','Kian','Kiang','Kiap','Kiat','Kien','Kiet','Kin','King','Kit','Ko','Koi','Kok','Kong','Koo','Koong','Koor','Kou','Kow','Koy',
'Ku','Kuang','Kui','Kun','Kung','Kuo','Kuong','Kuu',
'Lak','Lam','Lang','Lao','Lap','Lar','Lat','Lau','Law',
'Lean','Leang','Leat','Lee','Leet','Leik','Leiu','Lek','Len','Leon','Leong','Leow','Leung','Lew','Lex',
'Liang','Liao','Liat','Liau','Liaw','Liek','Liem','Liet','Lieu','Liew','Lih','Lik','Lim','Lio','Lion','Liong','Liow','Lip','Lit','Liu',
'Lo','Loh','Loi','Lok','Long','Loo','Looi','Look','Loon','Loong','Lor','Lou','Low','Loy',
'Lu','Luk','Lum','Lun','Lung','Lup',
'Man','Mang','Mao','Mar','Mat','Mau','Maw','Mek','Men',
'Mo','Mok','Mon','Mong','Moong','Mou','Mow','Mu',
'Nam','Nan','Nau','Neng','Neo','Neu','Ngai','Ngao','Ngau','Ngaw','Ngo','Niao','Niau','Nien','Nik','Niu','Nyet',
'Oh','Oi','Ong','Onn','Oo',
'Pah','Pai','Pak','Pang','Pao','Pat','Pau','Paw','Pen','Peng',
'Phang','Pheng','Phong','Pok','Pou','Pow','Pu','Pua','Puah',
'Quan','Quen','Quek','Quok',
'Ren','Ron',
'Sai','Sam','San','Sang','Shak','Sham','Shang','Shao','Shau','Shaw','Shek','Shen','Shiang','Shih','Shik','Shim','Shing','Shio','Shiu',
'Sho','Shong','Shoo','Shou','Show','Shun','Shung','Shuo','Siam','Siang','Siau','Siaw','Sieu','Sih','Sik','Sing','Sio','Siong','Siou','Siow','Sit',
'Son','Song','Soon','Soong','Sou','Sow','Suang','Sum','Sung','Suo',
'Ta','Tak','Tan','Tang','Tao','Tar','Tat','Tatt','Tau','Teak','Tean','Tee','Teh','Tei','Tek','Ten','Teng','Teo','Teoh','Ter','Tet','Teu','Tew',
'Tha','Thai','Tham','Thang','Thau','Thay','Thee','Theo','Ther','Thew','They','Thian','Thien','Tho','Thok','Thong','Thoo','Thor','Thou','Thu','Thuk','Thum','Thung','Thur','Tiak','Tiam','Tian','Tiang','Tiek','Tien','Tik','Tim','Tin','Tio','Tiong','Tiu',
'To','Toh','Tok','Tong','Too','Tor','Tou','Tow','Tu','Tuk','Tung',
'Ung',
'Vin','Von',
'Wa','Wah','Wai','Wang','Way','Wee','Wei','Weng','Whay','Win','Wing','Wo','Woh','Woi','Wok','Won','Wong','Woo','Wu','Wui',
'Xiang','Xiong',
'Yang','Yao','Yat','Yatt','Yau','Yaw','Ye','Yeng','Yeo','Yeoh','Yeong','Yet','Yih','Yii','Yik','Yip','Yit','Yo','Yok','Yon','Yong','Yoo','You','Yow','Yu','Yuen','Yuet','Yuk','Yut','Yutt',
'Za','Zai','Zang','Zao','Zau','Zea','Zeah','Zed','Zee','Zen','Zeng','Zeo','Zet',
'Zha','Zhai','Zhan','Zhang','Zhao','Zhau','Zhee','Zheng','Zhet','Zhong','Zhu','Zhung',
'Ziak','Zian','Ziang','Ziao','Ziau','Zit','Zuk','Zung',
);
/**
* Chinese female third character
*
* @link https://en.wikipedia.org/wiki/Chinese_given_name
* @link https://en.wikipedia.org/wiki/List_of_Malaysians_of_Chinese_descent
* @link https://en.wikipedia.org/wiki/Category:Malaysian_people_of_Cantonese_descent
* @link https://en.wikipedia.org/wiki/Category:Malaysian_politicians_of_Chinese_descent
*/
protected static $firstNameFemaleChinese = array(
'Ai','An','Ann','Aw',
'Bae','Bai','Bee','Beh','Bei','Bi','Bik','Bin','Bui',
'Cai','Cee','Cen','Cham','Cheam','Chean','Cheang','Cheng','Cheok','Chi','Ching','Chio','Chu',
'Dai','Dang','Ding','Do','Doo',
'Ee','En','Enn','Er','Ern',
'Fah','Fan','Fang','Fay','Faye','Fei','Fen','Fern','Fey','Fong','Fun','Fung',
'Gi','Goo','Goon','Gui',
'Ha','Haa','Hah','Hao','He','Hee','Heong','Her','Hew','Hi','Hii','Hin','Hiong','Hiu','Hooi','Hua','Hue','Hui',
'Jan','Jang','Jao','Jee','Jei','Jen','Jeng','Jia','Jie','Jien','Jing','Jong','Joo','Joon','Joy','Ju','Jun',
'Ka','Kaa','Kah','Kak','Kam','Kar','Kat','Kay','Ke','Kee','Kei','Key',
'Kha','Khar','Khay','Khee','Khi','Khor','Khum',
'Ki','Kim','Koe','Koh','Kor','Kum','Kua',
'Lai','Lan','Lay',
'Le','Lea','Leen','Lei','Lein','Leng','Ler','Leu','Ley',
'Li','Liah','Lian','Lie','Lien','Lin','Ling',
'Lua','Lui','Luo','Luu',
'Ma','Mae','Mag','Mah','Mai','Mak','May','Me','Mea','Mee','Meg','Meh','Mei','Mel','Meu','Mew',
'Mi','Mie','Miin','Miing','Min','Ming','Miu','Moh','Moi','Moo','Moon','Moy','Mua','Mui','Mum','Mun','Muu',
'Na','Naa','Nah','Nai','Nao','Nee','Nei','New','Nga','Ngah','Ngan','Ngu','Ni','Nian','Niang','Nin','Nong',
'Ooi',
'Pam','Pan','Pay','Peh','Pei','Peik','Pek','Pey','Pik','Pin','Ping','Po','Poh','Pom','Pong','Pooi','Pui','Pun',
'Qi','Qin','Qing','Qiu','Qu','Quay','Qui',
'Rei','Rin','Ring','Rinn','Rong','Rou','Ru','Rui','Ruo',
'Say','Sha','Shan','Shar','Shay','She','Shea','Shee','Shei','Sher','Shew','Shey','Shi','Shia','Shian','Shiao','Shie','Shin',
'Shok','Shu','Shui','Shuk','Shum','Si','Sia','Siah','Siak','Sian','Siao','Sien','Siew','Sim','Sin','Siu',
'So','Soh','Soi','Sok','Soo','Su','Suan','Sue','Suen','Sui','Suk','Sun',
'Tai','Tam','Tay','Tea','Teng','Tey','Thia','Ti','Tia','Tiah','Ting',
'Voon',
'Wan','Wen','Wey','Whey','Wi','Woon',
'Xi','Xia','Xiah','Xian','Xiao','Xiau','Xie','Xin','Xing','Xiu','Xu','Xun',
'Yam','Yan','Yee','Yen','Yep','Yeu','Yew','Yi','Yin','Ying','Yong','Yuan','Yue','Yuen','Yun','Yung','Yup',
'Zhen','Zhi','Zi','Zia','Ziah','Zo','Zoe','Zou','Zu','Zui',
);
/**
* @link https://en.wikipedia.org/wiki/List_of_Malaysians_of_Chinese_descent
* @link https://en.wikipedia.org/wiki/Category:Malaysian_people_of_Cantonese_descent
* @link https://en.wikipedia.org/wiki/Category:Malaysian_people_of_Chaoshanese_descent
* @link https://en.wikipedia.org/wiki/Category:Malaysian_people_of_Chinese_descent
* @link https://en.wikipedia.org/wiki/Category:Malaysian_people_of_English_descent
* @link https://en.wikipedia.org/wiki/Category:Malaysian_people_of_Hakka_descent
* @link https://en.wikipedia.org/wiki/Category:Malaysian_people_of_Hockchew_descent
* @link https://en.wikipedia.org/wiki/Category:Malaysian_people_of_Hokkien_descent
* @link https://en.wikipedia.org/wiki/Category:Malaysian_people_of_Peranakan_descent
* @link https://en.wikipedia.org/wiki/Category:Malaysian_politicians_of_Chinese_descent
*/
protected static $firstNameMaleChristian = array(
'Aaron','Addy','Adrian','Alex','Amos','Anthony',
'Bernard','Billy',
'Chris','Christopher','Colin',
'Danell','Daniel','Danny','David','Douglas',
'Eddie','Eddy','Edmund','Eric',
'Francis','Frankie',
'Gary','Gavin','George','Gregory',
'Henry',
'Isaac',
'James','Jason','Jeff','Jeffrey','Jimmy','John','Jonathan','Josiah','Julian',
'Kevin','Kris',
'Mark','Martin','Mavin','Melvin','Michael',
'Nathaniel','Nelson','Nicholas',
'Peter','Philip',
'Richard','Robert','Roger','Ronny','Rynn',
'Shaun','Simon','Stephen','Steven',
'Terry','Tony',
'Victor','Vince','Vincent',
'Welson','William','Willie',
);
protected static $firstNameFemaleChristian = array(
'Alice','Alyssa','Amber','Amy','Andrea','Angelica','Angie','Apple','Aslina',
'Bernice','Betty','Boey','Bonnie',
'Caemen','Carey','Carmen','Carrie','Cindy',
'Debbie',
'Elaine','Elena',
'Felixia','Fish','Freya',
'Genervie','Gin',
'Hannah','Heidi','Helena',
'Janet','Jemie','Jess','Jesseca','Jessie','Joanna','Jolene','Joyce','Juliana',
'Karen','Kathleen',
'Lilian','Linda','Lydia','Lyndel',
'Maria','Marilyn','Maya','Meeia','Melinda','Melissa','Michelle','Michele',
'Nadia','Natalie','Nicole',
'Penny',
'Phyllis',
'Quincy',
'Rachel','Rena','Rose',
'Samantha','Sarah','Sheena','Sherine','Shevon','Sonia','Stella',
'Teresa','Tiffany','Tracy','Tricia',
'Vera','Violet','Vivian','Vivien',
'Yvonne',
);
/**
* @link https://en.wikipedia.org/wiki/List_of_Malaysians_of_Indian_descent
* @link https://en.wikipedia.org/wiki/List_of_Malaysian_politicians_of_Indian_descent
* @link https://en.wikipedia.org/wiki/List_of_Malaysian_sportspeople_of_Indian_descent
* @link https://en.wikipedia.org/wiki/Tamil_Malaysians#Notable_people
*/
protected static $initialIndian = array(
'B. ','B. C. ',
'C. ',
'D. ','D. R. ','D. S. ',
'E. ',
'G. ',
'K. ','K. L. ','K. R.','K. S. ',
'M. ','M. G. ','M. G. G. ','M. K. ',
'N. ','N. K. ',
'P. ',
'R. ','R. G. ','R. S. ',
'S. ','S. A. ',
'T. ',
'V. ','V. T. ',
);
/**
* @link https://en.wikipedia.org/wiki/List_of_Malaysians_of_Indian_descent
* @link https://en.wikipedia.org/wiki/K._L._Devaser
* @link https://en.wikipedia.org/wiki/List_of_Malaysian_politicians_of_Indian_descent
* @link https://en.wikipedia.org/wiki/List_of_Malaysian_sportspeople_of_Indian_descent
* @link https://en.wikipedia.org/wiki/Tamil_Malaysians#Notable_people
*/
protected static $firstNameMaleIndian = array(
'Anbil','Ananda','Arasu','Arul','Arulraj','Arumugam','Ash',
'Babu','Balachandra','Balasubramaniam','Balden','Baljit','Baltej','Bishan',
'Canagasabai','Cecil','Chakra','Chanturu',
'Depan','Darma Raja','Devaki','Devamany','Devan','Devasagayam','Diljit','Doraisingam',
'Ganesh','Ganga','Gengadharan','Gobalakrishnan','Gobind','Gopinathan','Govindasamy','Gunasekaran','Gurmit',
'Haran','Harikrish','Hiresh','Huzir',
'Indi',
'Jagdeep','Janil','Jeevandran','Jegathesan','Jeyakumar','Jomo Kwame',
'Kamal','Kamalanathan','Kanagaraj','Kandasamy','Kandiah','Karamjit','Karnail','Karpal','Kasi','Kasinather','Kavi','Kavidhai','Kishor','Krishen','Krishnamoorthy','Krishnamurthi','Krishnasamy','Kulasegaran','Kumar','Kumutha','Kuhan','Kunanlan','Kundan Lal','Kunjiraman',
'Loganathan',
'Magendran','Maha','Mahadev','Mahaletchumy','Mahathir','Maniam','Manickavasagam','Manikavasagam','Manjit','Manogaran','Manoharan','Manrick','Marimuthu','Merican','Mogan','Mohanadas','Munshi','Murugayan','Murugesan','Mutahir',
'Nadarajan','Nandakumar','Nanthakumar','Naraina','Nethaji','Ninian',
'Padathan','Palanivel','Param','Paramjit','Pavandeep','Praboo','Pragash','Premnath','Prema','Pria','Puvaneswaran',
'Rabinder','Rajagobal','Rajesh','Rajeswary','Rajiv','Rakesh','Rama','Ramasamy','Ramesh','Ramkarpal','Ramon','Rattan','Ravichandran','Rehman','Renuga','Rohan','Rueben',
'Saarvindran','Samy','Sanisvara','Sanjay','Santhara','Santokh','Sarath','Saravanan','Sarjit','Sasikumar','Satwant','Selvakkumar','Selvaraju','Serbegeth','Shan','Shankar','Shanmugam','Sittampalam','Sivakumar','Sivarasa','Solamalay','Sothinathan','Subramaniam','Sukhjit','Sumisha','Surendran','Suresh','Suriaprakash',
'Tatparanandam','Tanasekharan','Thamboosamy','Thamil','Thayaparan','Thirumurugan','Thirunavuk',
'Uthayakumar',
'Varatharaju','Veenod','Veerappan','Veerappen','Veloo','Vasudevan','Vellu','Viatilingam','Vijandren','Vinod','Vishnu','Vivasvan',
'Waythamoorthy','Weeratunge',
'Yosri','Yugendran',
);
/**
* @link https://en.wikipedia.org/wiki/List_of_Malaysians_of_Indian_descent
* @link https://en.wikipedia.org/wiki/List_of_Malaysian_politicians_of_Indian_descent
* @link https://en.wikipedia.org/wiki/List_of_Malaysian_sportspeople_of_Indian_descent
* @link https://en.wikipedia.org/wiki/Tamil_Malaysians#Notable_people
*/
protected static $firstNameFemaleIndian = array(
'Ambiga','Anaika','Anand','Anita','Asha','Athi',
'Gheetha',
'Haanii',
'Janaky',
'Kasthuriraani','Kavita','Kiran',
'Melinder',
'Nithya',
'Prashanthini','Preeta','Priya','Pushpa',
'Ramya','Rani','Rasammah','Renuga',
'Sangeeta','Sannatasah','Saraswati','Shamini','Shanthi','Shanti','Shoba','Shuba','Siva','Sutheaswari','Swarna','Sybil',
'Thanuja','Theiviya','Thripura',
'Umasundari','Uthaya',
'Vijaya',
'Zabrina',
);
/**
* @link https://en.wikipedia.org/wiki/List_of_Malaysians_of_Indian_descent
* @link https://en.wikipedia.org/wiki/List_of_Malaysian_politicians_of_Indian_descent
* @link https://en.wikipedia.org/wiki/List_of_Malaysian_sportspeople_of_Indian_descent
* @link https://en.wikipedia.org/wiki/Tamil_Malaysians#Notable_people
*/
protected static $lastNameIndian = array(
'Alagaratnam','Ambumamee','Ammasee','Ampalavanar','Ananthan','Arivanathan','Arujunan','Arumugam','Asirvatham','Autherapady',
'Balakrishnan','Balan','Bamadhaj','Bastianpillai','Bhullar','Bhupalan',
'Chandran','Cumaraswamy','Chelvan','Chengara',
'Dairiam','Davies','Devaraj','Devandran','Devaser','Dhaliwal','Dharmalingam','Dhillon',
'Elavarasan',
'Fernandes','Fernandez',
'Ganapathy','Ganesan','Gnanalingam','Goundar','Govindasamy','Gunalan','Gurusamy',
'Haridas',
'Iyer',
'Jaidka','Jassal','Jayaram','Jayaseelan','Jayawardene','Jeevananthan',
'Kaliappan','Kamalesvaran','Kandasamy','Karathu','Kathigasu','Kathiripillai','Kaveri','Kayveas','Krishnan','Krishnasamy','Kumar','Kumaresan','Kumari','Kunalan','Kundargal','Kuppusamy',
'Lakshmi','Linggam','Lourdenadin',
'Madhavan','Mahathevan','Malayalam','Manicka','Manikavasagam','Marimuthu','Menon','Mohinder','Moorthy','Mudukasan','Muniandy','Munisamy','Munusamy','Murugan','Murugeson',
'Nadarajah','Nagapan','Nagappan','Nagaraj','Nagarajan','Nahappan','Naidu','Nair','Namasivayam','Narayan','Navaratnam','Navarednam','Nayar','Nijhar',
'Pakiam','Palaniappan','Palanisamy','Panchanathan','Pandithan','Parthiban','Pathmanaban','Patto','Pereira','Perera','Periasamy','Perumal','Pillai','Pillay','Ponnusamy','Prakash','Puaneswaran','Purushothaman','Puspanathan','Puthucheary',
'Raj Kaur','Rajakumar','Rajan','Rajannaidu','Rajendra','Rajendran','Rajhans','Raju','Ramachandra','Ramadas','Ramadass','Ramanathan','Ramani','Ramasamy','Raj','Rao','Rasiah','Ratnam','Ravindran','Rayer','Retinam','Rishyakaran','Robbat',
'Sachithanandan','Sakadivan','Sakwati','Samarasan','Sambanthan','Sandrakasi','Sangalimuthu','Saniru','Sankar','Saravanan','Sathasivam','Sathianathan','Saunthararajah','Seenivasagam','Sekhar','Sellan','Selvanayagam','Selvarajoo','Selvaratnam','Shanmuganathan','Shanmugaratnam','Shekhar','Shivraj','Shree','Sidhu','Sinnandavar','Sinnathamby','Sinnathuray','Sivanesan','Singh','Sivalingam','Sivanesan','Shankar','Sodhy','Somasundram','Sooryapparad','Soti','Sreenevasan','Subramaniam','Sundram','Suppiah','Surendran',
'Thajudeen','Thalalla','Thambu','Thanabalasingam','Thanenthiran','Theseira','Thevandran','Thiru','Thirunavukarasu','Thivy','Thuraisingham','Tikaram',
'Vadaketh','Vadiveloo','Vanajah','Varman','Vasudevan','Veeran','Veerasamy','Veerasenan','Veerathan','Veetil','Velappan','Vello','Vengatarakoo','Vethamuthu','Viswalingam',
'Xavier',
);
/**
* @link https://en.wikipedia.org/wiki/Malay_styles_and_titles
*/
protected static $titleMale = array('En.','Dr.','Prof.','Datuk','Dato\'','Datuk Seri','Dato\' Sri','Tan Sri','Tun');
protected static $titleFemale = array('Pn.','Cik','Dr.','Prof.','Datin','Datin Paduka','Datin Paduka Seri','Puan Sri','Toh Puan');
/**
* Return a Malay male first name
*
* @example 'Ahmad'
*
* @return string
*/
public static function firstNameMaleMalay()
{
return static::randomElement(static::$firstNameMaleMalay);
}
/**
* Return a Malay female first name
*
* @example 'Adibah'
*
* @return string
*/
public static function firstNameFemaleMalay()
{
return static::randomElement(static::$firstNameFemaleMalay);
}
/**
* Return a Malay last name
*
* @example 'Abdullah'
*
* @return string
*/
public function lastNameMalay()
{
return static::randomElement(static::$lastNameMalay);
}
/**
* Return a Malay male 'Muhammad' name
*
* @example 'Muhammad'
*
* @return string
*/
public static function muhammadName()
{
return static::randomElement(static::$muhammadName);
}
/**
* Return a Malay female 'Nur' name
*
* @example 'Nur'
*
* @return string
*/
public static function nurName()
{
return static::randomElement(static::$nurName);
}
/**
* Return a Malay male 'Haji' title
*
* @example 'Haji'
*
* @return string
*/
public static function haji()
{
return static::randomElement(static::$haji);
}
/**
* Return a Malay female 'Hajjah' title
*
* @example 'Hajjah'
*
* @return string
*/
public static function hajjah()
{
return static::randomElement(static::$hajjah);
}
/**
* Return a Malay title
*
* @example 'Syed'
*
* @return string
*/
public static function titleMaleMalay()
{
return static::randomElement(static::$titleMaleMalay);
}
/**
* Return a Chinese last name
*
* @example 'Lim'
*
* @return string
*/
public static function lastNameChinese()
{
return static::randomElement(static::$lastNameChinese);
}
/**
* Return a Chinese male first name
*
* @example 'Goh Tong'
*
* @return string
*/
public static function firstNameMaleChinese()
{
return static::randomElement(static::$firstNameChinese) . ' ' . static::randomElement(static::$firstNameMaleChinese);
}
/**
* Return a Chinese female first name
*
* @example 'Mew Choo'
*
* @return string
*/
public static function firstNameFemaleChinese()
{
return static::randomElement(static::$firstNameChinese) . ' ' . static::randomElement(static::$firstNameFemaleChinese);
}
/**
* Return a Christian male name
*
* @example 'Aaron'
*
* @return string
*/
public static function firstNameMaleChristian()
{
return static::randomElement(static::$firstNameMaleChristian);
}
/**
* Return a Christian female name
*
* @example 'Alice'
*
* @return string
*/
public static function firstNameFemaleChristian()
{
return static::randomElement(static::$firstNameFemaleChristian);
}
/**
* Return an Indian initial
*
* @example 'S. '
*
* @return string
*/
public static function initialIndian()
{
return static::randomElement(static::$initialIndian);
}
/**
* Return an Indian male first name
*
* @example 'Arumugam'
*
* @return string
*/
public static function firstNameMaleIndian()
{
return static::randomElement(static::$firstNameMaleIndian);
}
/**
* Return an Indian female first name
*
* @example 'Ambiga'
*
* @return string
*/
public static function firstNameFemaleIndian()
{
return static::randomElement(static::$firstNameFemaleIndian);
}
/**
* Return an Indian last name
*
* @example 'Subramaniam'
*
* @return string
*/
public static function lastNameIndian()
{
return static::randomElement(static::$lastNameIndian);
}
/**
* Return a random last name
*
* @example 'Lee'
*
* @return string
*/
public function lastName()
{
$formats = array(
'{{lastNameMalay}}',
'{{lastNameChinese}}',
'{{lastNameIndian}}',
);
return $this->generator->parse(static::randomElement($formats));
}
/**
* Return a Malaysian I.C. No.
*
* @example '890123-45-6789'
*
* @link https://en.wikipedia.org/wiki/Malaysian_identity_card#Structure_of_the_National_Registration_Identity_Card_Number_(NRIC)
*
* @param string|null $gender 'male', 'female' or null for any
* @param bool|string|null $hyphen true, false, or any separator characters
*
* @return string
*/
public static function myKadNumber($gender = null, $hyphen = false)
{
// year of birth
$yy = mt_rand(0, 99);
// month of birth
$mm = DateTime::month();
// day of birth
$dd = DateTime::dayOfMonth();
// place of birth (1-59 except 17-20)
while (in_array(($pb = mt_rand(1, 59)), array(17, 18, 19, 20))) {
};
// random number
$nnn = mt_rand(0, 999);
// gender digit. Odd = MALE, Even = FEMALE
$g = mt_rand(0, 9);
//Credit: https://gist.github.com/mauris/3629548
if ($gender === static::GENDER_MALE) {
$g = $g | 1;
} elseif ($gender === static::GENDER_FEMALE) {
$g = $g & ~1;
}
// formatting with hyphen
if ($hyphen === true) {
$hyphen = "-";
} else if ($hyphen === false) {
$hyphen = "";
}
return sprintf("%02d%02d%02d%s%02d%s%03d%01d", $yy, $mm, $dd, $hyphen, $pb, $hyphen, $nnn, $g);
}
}

View file

@ -0,0 +1,217 @@
<?php
namespace Faker\Provider\ms_MY;
class PhoneNumber extends \Faker\Provider\PhoneNumber
{
protected static $formats = array(
'{{mobileNumber}}',
'{{fixedLineNumber}}',
'{{voipNumber}}'
);
protected static $plusSymbol = array(
'+'
);
protected static $countryCodePrefix = array(
'6'
);
/**
* @link https://en.wikipedia.org/wiki/Telephone_numbers_in_Malaysia#Mobile_phone_codes_and_IP_telephony
*/
protected static $zeroOneOnePrefix = array('10','11','12','13','14','15','16','17','18','19','20','22','23','32');
protected static $zeroOneFourPrefix = array('2','3','4','5','6','7','8','9');
protected static $zeroOneFivePrefix = array('1','2','3','4','5','6','9');
/**
* @link https://en.wikipedia.org/wiki/Telephone_numbers_in_Malaysia#Mobile_phone_codes_and_IP_telephony
*/
protected static $mobileNumberFormatsWithFormatting = array(
'010-### ####',
'011-{{zeroOneOnePrefix}}## ####',
'012-### ####',
'013-### ####',
'014-{{zeroOneFourPrefix}}## ####',
'016-### ####',
'017-### ####',
'018-### ####',
'019-### ####',
);
protected static $mobileNumberFormats = array(
'010#######',
'011{{zeroOneOnePrefix}}######',
'012#######',
'013#######',
'014{{zeroOneFourPrefix}}######',
'016#######',
'017#######',
'018#######',
'019#######',
);
/**
* @link https://en.wikipedia.org/wiki/Telephone_numbers_in_Malaysia#Geographic_area_codes
*/
protected static $fixedLineNumberFormatsWithFormatting = array(
'03-#### ####',
'04-### ####',
'05-### ####',
'06-### ####',
'07-### ####',
'08#-## ####',
'09-### ####',
);
protected static $fixedLineNumberFormats = array(
'03########',
'04#######',
'05#######',
'06#######',
'07#######',
'08#######',
'09#######',
);
/**
* @link https://en.wikipedia.org/wiki/Telephone_numbers_in_Malaysia#Mobile_phone_codes_and_IP_telephony
*/
protected static $voipNumberWithFormatting = array(
'015-{{zeroOneFivePrefix}}## ####'
);
protected static $voipNumber = array(
'015{{zeroOneFivePrefix}}######'
);
/**
* Return a Malaysian Mobile Phone Number.
*
* @example '+6012-345-6789'
*
* @param bool $countryCodePrefix true, false
* @param bool $formatting true, false
*
* @return string
*/
public function mobileNumber($countryCodePrefix = true, $formatting = true)
{
if ($formatting) {
$format = static::randomElement(static::$mobileNumberFormatsWithFormatting);
} else {
$format = static::randomElement(static::$mobileNumberFormats);
}
if ($countryCodePrefix) {
return static::countryCodePrefix($formatting) . static::numerify($this->generator->parse($format));
} else {
return static::numerify($this->generator->parse($format));
}
}
/**
* Return prefix digits for 011 numbers
*
* @example '10'
*
* @return string
*/
public static function zeroOneOnePrefix()
{
return static::numerify(static::randomElement(static::$zeroOneOnePrefix));
}
/**
* Return prefix digits for 014 numbers
*
* @example '2'
*
* @return string
*/
public static function zeroOneFourPrefix()
{
return static::numerify(static::randomElement(static::$zeroOneFourPrefix));
}
/**
* Return prefix digits for 015 numbers
*
* @example '1'
*
* @return string
*/
public static function zeroOneFivePrefix()
{
return static::numerify(static::randomElement(static::$zeroOneFivePrefix));
}
/**
* Return a Malaysian Fixed Line Phone Number.
*
* @example '+603-4567-8912'
*
* @param bool $countryCodePrefix true, false
* @param bool $formatting true, false
*
* @return string
*/
public function fixedLineNumber($countryCodePrefix = true, $formatting = true)
{
if ($formatting) {
$format = static::randomElement(static::$fixedLineNumberFormatsWithFormatting);
} else {
$format = static::randomElement(static::$fixedLineNumberFormats);
}
if ($countryCodePrefix) {
return static::countryCodePrefix($formatting) . static::numerify($this->generator->parse($format));
} else {
return static::numerify($this->generator->parse($format));
}
}
/**
* Return a Malaysian VoIP Phone Number.
*
* @example '+6015-678-9234'
*
* @param bool $countryCodePrefix true, false
* @param bool $formatting true, false
*
* @return string
*/
public function voipNumber($countryCodePrefix = true, $formatting = true)
{
if ($formatting) {
$format = static::randomElement(static::$voipNumberWithFormatting);
} else {
$format = static::randomElement(static::$voipNumber);
}
if ($countryCodePrefix) {
return static::countryCodePrefix($formatting) . static::numerify($this->generator->parse($format));
} else {
return static::numerify($this->generator->parse($format));
}
}
/**
* Return a Malaysian Country Code Prefix.
*
* @example '+6'
*
* @param bool $formatting true, false
*
* @return string
*/
public static function countryCodePrefix($formatting = true)
{
if ($formatting) {
return static::randomElement(static::$plusSymbol) . static::randomElement(static::$countryCodePrefix);
} else {
return static::randomElement(static::$countryCodePrefix);
}
}
}

View file

@ -15,5 +15,41 @@ class Company extends \Faker\Provider\Company
'{{lastName}} og {{lastName}} {{companySuffix}}'
);
protected static $companySuffix = array('AS', 'DA', 'NUF');
/**
* Common suffixes
* @link https://www.brreg.no/bedrift/organisasjonsformer/
*/
protected static $companySuffix = array('ANS', 'AS', 'ASA', 'BA', 'DA', 'ENK', 'GFS', 'KTRF', 'NUF', 'PK', 'SA', 'SPA', 'STI', 'VIFE');
/**
* 1500 random job titles from Statistisk Sentralbyrå
* @link http://www.ssb.no/a/yrke/yrke.csv
*/
protected static $jobTitleFormat = array(
'Administrasjonsdirektør', 'Administrasjonskonsulent', 'Administrasjonssekretær', 'Administrasjonssjef', 'Administrerende Overlege', 'Admiral', 'Advokatassistent', 'Aerobicinstruktør', 'Afis-Fullmektig', 'Agrotekniker', 'Ais-Fullmektig', 'Akrobat', 'Aktivitør', 'Akupunktør', 'Alarmoperatør', 'Allmenningbestyrer', 'Allmennpraktiserende Lege', 'Amanuensis', 'Ambassaderåd', 'Ambassadesekretær', 'Ambulansemedhjelper', 'Ambulansesjef', 'Ambulerende Vaktmester', 'Ammoniakkoker', 'Anestesilege', 'Animatør', 'Anleggsdykker', 'Anleggsgartnermester', 'Anleggsmaskinkjører', 'Anleggsmaskinmekaniker', 'Anleggsoperatør', 'Annenflyger', 'Annonseakkvisitør', 'Annonsebehandler', 'Annonsekonsulent', 'Annonseselger', 'Annonsesjef', 'Anretningshjelp', 'Apotekmedarbeider', 'Arbeidsmedisiner', 'Arbeidssjef', 'Arbeidsstudieingeniør', 'Arbeidsterapeut', 'Arbeidstilrettelegger', 'Arbeidstilsynskontrollør', 'Arbeidstilsynsrådgiver', 'Arkivassistent', 'Arkivmedarbeider', 'Arrestforvarer', 'Asfaltarbeider', 'Asfaltverkarbeider', 'Asfaltør', 'Assistentfotograf', 'Assisterende Administrerende Direktør', 'Assisterende Banksjef', 'Assisterende Bestyrer', 'Assisterende Borer', 'Assisterende Byfogd', 'Assisterende Fylkeshelsesjef', 'Assisterende Fylkeslege', 'Assisterende Fylkesmann', 'Assisterende Helsedirektør', 'Assisterende Kjøkkensjef', 'Assisterende Kommunegartner', 'Assisterende Sjefflygeleder', 'Assisterende Sjefspsykolog', 'Assisterende Sykepleiesjef', 'Assisterende Vaktmester', 'Astrofysiker', 'Astronom', 'Atomfysiker', 'Attache', 'Autoklavoperatør', 'Autoklavpasser', 'Automasjonsingeniør', 'Automatiker', 'Automatiseringsmontør', 'Avdelingsarkitekt', 'Avdelingsbanksjef', 'Avdelingsbetjent', 'Avdelingsdirektør', 'Avdelingsergoterapeut', 'Avdelingsingeniør', 'Avdelingsleder/fysioterapeut', 'Avdelingspsykolog', 'Avdelingssekretær', 'Avdelingssjef', 'Avdelingssjef Akvakultur Mv.', 'Avdelingssjef Restaurant', 'Avdelingssykepleier', 'Avlaster', 'Avlskonsulent', 'Avløser',
'Babysvømmeinstruktør', 'Badeassistent', 'Badebetjent', 'Bakermester', 'Bakteriolog', 'Banearbeider', 'Bankassistent', 'Bankkonsulent', 'Banksjef', 'Barkeeper', 'Barmedarbeider', 'Barne- Og Ungdomssekretær', 'Barnehageassistent', 'Barnehjemsbestyrer', 'Barnepasser', 'Barnevernskonsulent', 'Bartender', 'Basketballtrener', 'Bedriftskonsulent', 'Bedriftspsykolog', 'Bedriftsrevisor', 'Bedriftsøkonom', 'Befrakter', 'Begravelsesbyråassistent', 'Begravelsesbyråmedarbeider', 'Begravelsesbyråsjåfør', 'Beleggskjærer', 'Bemanningskonsulent', 'Benkesnekker', 'Beregner', 'Bergmester', 'Bergverksarbeider', 'Beskjærer', 'Bestyrer Helsetjenester', 'Betjent', 'Betongindustriarbeider', 'Betongvarearbeider', 'Bibliotekleder', 'Biblioteksjef', 'Bilagskontrollør', 'Bilelektriker', 'Bilgummiarbeider', 'Bilinspektør', 'Bilklargjører', 'Billedkonsulent', 'Billedtekniker', 'Billettekspeditør', 'Billettkonsulent', 'Billettkontrollør', 'Billettselger', 'Billettør', 'Bilmegler', 'Bilmekaniker', 'Bilmottaker', 'Bilpleier', 'Bilrenser', 'Bilsakkyndig', 'Biltilsyninspektør', 'Biopat', 'Blandemaskinoperatør', 'Blander', 'Blogger', 'Blomsterdekoratør', 'Blåseinstrumentmaker', 'Bokbinder', 'Bokbinderassistent', 'Bokbussassistent', 'Bokbussfører', 'Bokhandlermedarbeider', 'Bokhandlermedhjelper', 'Bokholderassistent', 'Bokollektivmedarbeider', 'Boligleder', 'Boligsjef', 'Bomringvakt', 'Bomvakt', 'Bookingansvarlig', 'Bookingmedarbeider', 'Bookingsekretær', 'Borearbeider', 'Boredekksarbeider', 'Boreingeniør', 'Boreoperasjonsleder', 'Borer', 'Boresjef', 'Borevæskeingeniør', 'Botaniker', 'Boveileder', 'Bowlingvert', 'Branninspektør', 'Brannisolatør', 'Brannkonstabel', 'Brannmester', 'Brannvakt', 'Brannvarslerinstallatør', 'Brenner', 'Brolegger', 'Bromaler', 'Brooperatør', 'Brukskunstner', 'Brygger', 'Bryggeriformann', 'Bryggerimester', 'Brønnborer', 'Budsjåfør', 'Bukker', 'Bulldoserkjører', 'Bunadmedarbeider', 'Bunnlærstanser', 'Buntmaker', 'Business Controller', 'Bussfører', 'Butikkinnehaver', 'Butikkinspektør', 'Butikkmedarbeider', 'Butikkonsulent', 'Butikksjef', 'Butikkslakter', 'Byarkitekt', 'Bydelsdirektør', 'Byfogd', 'Byggekranfører', 'Byggesaksbehandler', 'Byggesjef', 'Byggtapetserer', 'Byggtapetsermester', 'Bygningsarbeider', 'Bygningskontrollør', 'Byplanlegger', 'Byplansjef', 'Byrettsdommer', 'Byråd', 'Byssegutt', 'Byssepike', 'Båndsager', 'Båtfører', 'Båtmekaniker', 'Bærplukker', 'Børsdirektør', 'Børsemakermester', 'Børstemaker', 'Bøter',
'Cabin Chief', 'Cafemedarbeider', 'Campingplassmedarbeider', 'Cash Management Controller', 'Cellulosearbeider', 'Charge D\'affaires', 'Cirkustekniker', 'Cnc-Operatør', 'Coach', 'Controller', 'Croupier', 'Cruiseassistent',
'Daglig Leder', 'Dagsenterleder', 'Damefrisør', 'Danselærer', 'Danser', 'Dataadministrator', 'Datamaskinoperatør', 'Dataservicetekniker', 'Datasjef', 'Datatekniker', 'Dekkbygger', 'Dekorkonsulent', 'Deleekspeditør', 'Delesjef', 'Departementsråd', 'Designer', 'Desksjef', 'Diakoniarbeider', 'Diettkokk', 'Direksjonssekretær', 'Dirigent', 'Discjockey', 'Distribusjonssjåfør', 'Distributør', 'Distriktsarbeidssjef', 'Distriktsbanksjef', 'Distriktsdirektør', 'Distriktsmusiker', 'Distriktsrevisor', 'Distriktstannlege', 'Divisjonsdirektør Akvakultur Mv.', 'Divisjonssjef Akavkultur Mv.', 'Dokumentarfilmfotograf', 'Dommer', 'Domorganist', 'Dp-Operatør', 'Dramalærer', 'Dramatiker', 'Driftsansvarlig Flyfrakt', 'Driftsfullmektig', 'Driftskonsulent', 'Driftskonsulent It', 'Driftskoordinator', 'Driftsplantekniker', 'Driftstekniker', 'Driftsøkonom', 'Droneoperatør', 'Drosjesjåfør', 'Dykkerleder', 'Dyrlege', 'Dørselger', 'Dørvert', 'Døvekapellan', 'Døveprest',
'Edb-Leder', 'Ekspedent', 'Ekspedisjonssjef', 'Eksportagent', 'Eksportkonsulent', 'Eldreomsorgssjef', 'Elektriker', 'Elektrikerformann', 'Elektrisk Kabeloperasjonstekniker', 'Elektroautomasjonstekniker', 'Elektroingeniør', 'Elektromontør', 'Elkraftingeniør', 'Elverksmontør', 'Emaljebrenner', 'Emaljør', 'Energisjef', 'Engasjementssjef', 'Enhetsleder', 'Entomolog', 'Entreprenør', 'Ergoterapeut', 'Etatsjef', 'Etterforsker',
'Fagbokforfatter', 'Faglaborant', 'Faglærer', 'Fagopplæringssjef', 'Fagsjef Skogbruk', 'Fagspesialist', 'Fagutdanningskonsulent', 'Faktureringssekretær', 'Familierådgiver', 'Fargekoker', 'Fargeriarbeider', 'Fasademontør', 'Fatter', 'Feierlærling', 'Feltarbeider', 'Feltassistent', 'Feltprest', 'Fengselsavdelingsbetjent', 'Fengselsbetjent', 'Fengselsinspektør', 'Fengselsoverbetjent', 'Fenrik', 'Ferdigstiller', 'Filetarbeider', 'Filialsjef', 'Filminspisient', 'Filmkontrollsjef', 'Filosof', 'Finansanalytiker', 'Finansråd', 'Finansrådgiver', 'Finanstilsynsdirektør', 'Fiolinbygger', 'Fiskehandler', 'Fiskeridirektør', 'Fiskerikonsulent', 'Fiskeriråd', 'Fiskeritekniker', 'Fiskerøkter', 'Fiskeskipper', 'Fiskeslakter', 'Fiskevraker', 'Fjøsmester', 'Flaskesorterer', 'Flekker', 'Flisarbeider', 'Fly-Radiotekniker', 'Flyattache', 'Flyeksportmedarbeider', 'Flyelektrotekniker', 'Flygeleder', 'Flygelederassistent', 'Flyinstruktør', 'Flymekaniker', 'Flyplassekspeditør', 'Flysystemavioniker', 'Flyteknisk Inspektør', 'Flytrafikkassistent', 'Flyvertinne', 'Fms-Operatør', 'Folklorist', 'Forbundssekretær', 'Forhandlingssjef', 'Forkynner', 'Forlagsmedarbeider', 'Formgiver', 'Formstøper', 'Formuesforvalter', 'Forsikringsassistent', 'Forsikringsrådgiver', 'Forsikringsselger', 'Forskalingsbas', 'Forsker', 'Forskjærer', 'Forskningsassistent', 'Forskningssjef', 'Forskningstekniker', 'Forstander', 'Forstkandidat', 'Forsvarsråd', 'Forsøksleder', 'Forvaltningsassistent', 'Forvaltningsingeniør', 'Forvaltningssjef', 'Fosterfar', 'Fotograf', 'Fotolaboratorieassistent', 'Fraktsjef', 'Freelancejournalist', 'Frisørlærling', 'Fritidsassistent', 'Fritidssjef', 'Frivillighetssentralleder', 'Fruktpressearbeider', 'Fruktprodusent', 'Fryseriarbeider', 'Fugearbeider', 'Fylkesagronom', 'Fylkesarkitekt', 'Fylkesbarnevernsjef', 'Fylkesbyggesjef', 'Fylkesingeniør', 'Fylkeskartsjef', 'Fylkeskontorsjef', 'Fylkeskoordinator I Fylkesarbeidskontoret', 'Fylkesmann', 'Fylkespersonalsjef', 'Fylkesstyrerepresentant', 'Fyrmester', 'Fyrtjenestermann', 'Fysiker', 'Fysiokjemiker', 'Fører', 'Førsteamanuensis', 'Førstefarmasøyt', 'Førstefotograf', 'Førstekonservator', 'Førstelagmann', 'Førstelektor', 'Førstemaskinist', 'Førstemeteorologifullmektig', 'Førstepasser', 'Førstepostbetjent', 'Førstepostfullmektig', 'Førstepreparant', 'Førsteprovisor', 'Førsterevisor', 'Førstesekretær', 'Førstestatsadvokat', 'Førstestyrmann', 'Førstetollinspektør',
'Gallerivakt', 'Garderobebetjening', 'Garnfisker', 'Garnisonstannlege', 'Gartnerassistent', 'Gartnerformann', 'Gassverksjef', 'Gateselger', 'General', 'Generalinspektør For Heimevernet', 'Generalinspektør For Hæren', 'Geodet', 'Geolog', 'Geomatiker', 'Geotekniker', 'Gjærhusarbeider', 'Glasiolog', 'Glassarbeider', 'Glassblåser', 'Glassblåsermester', 'Glasshåndverker', 'Glasurarbeider', 'Godstrafikkleder', 'Grafikerlærling', 'Grafisk Formgiver', 'Grafisk Ingeniør', 'Grafisk Trykkermester', 'Granitthogger', 'Grensekontrollør', 'Grovsliper', 'Gruppeleder I Arbeidsmarkedsetaten', 'Gruvemåler', 'Guide', 'Gullarbeider', 'Gullsmedmester', 'Gummivarearbeider', 'Gynekolog', 'Gårdbruker', 'Gårdsarbeider', 'Gårdshjelp',
'Hammerarbeider', 'Handelsagent', 'Handelsråd', 'Handlevognrydder', 'Hanskesyer', 'Hartskoker', 'Hattemaker', 'Havarisekretær', 'Havneassistent', 'Havnefogd', 'Havnekontrollør', 'Havnesjef', 'Havnetrafikkleder', 'Heisinstallatør', 'Heismontør', 'Heismontørlærling', 'Helse- Og Miljørådgiver', 'Helseinformatiker', 'Helseinspektør', 'Helsesøster', 'Herrefrisør', 'Hjelpekokk', 'Hjelpepleier', 'Hjelpepleiermedarbeider', 'Hjemmehjelper', 'Hjemmehjelpsleder', 'Hjemmekonsulent', 'Hjemmesykepleier', 'Hjullastersjåfør', 'Hms-Leder', 'Hoffmarskalk', 'Hollenderifører', 'Hostess', 'Hotellarbeider', 'Hotellmedarbeider', 'Hotellsjef', 'Hovedforvalter', 'Hovmester', 'Hr-Direktør', 'Hudarbeider', 'Hudterapeut', 'Hundefører', 'Husdyrkonsulent', 'Husholdsassistent', 'Husmorvikar', 'Hustrykker', 'Hvalfanger', 'Hydrograf', 'Hydrolog', 'Hylsemaker', 'Håndballtrener', 'Håndvever', 'Hørselsassistent', 'Høvelmester',
'Idrettsinstruktør', 'Idrettsseksjonsleder', 'Idrettstrener', 'Ikt-Lærling', 'Illustratør', 'Importsjef', 'Impregnerer', 'Industribokbinder', 'Industrimontør', 'Industripsykolog', 'Industrirørlegger', 'Industrisnekker', 'Industrisyer', 'Informasjonskonsulent', 'Informasjonsleder', 'Informasjonsmedarbeider', 'Informasjonsskrankemedarbeider', 'Inkassoassistent', 'Inkassokonsulent', 'Inkassoleder', 'Inkassosjef', 'Inneselger', 'Innkjøpsansvarlig', 'Innkjøpsingeniør', 'Innkjøpskonsulent', 'Innreder', 'Innredningskonsulent', 'Innredningsmontør', 'Innsjekkingsmedarbeider', 'Innspillingsleder', 'Inspeksjonsingeniør', 'Inspisient', 'Installasjonsingeniør', 'Instituttsjef', 'Instruktør', 'Instruktørtannlege', 'Instrumentavioniker', 'Instrumentmaker', 'Instrumentrørlegger', 'Interiørarkitekt', 'Internatgruppeassistent', 'Internatgruppeleder', 'Internatleder', 'Iskremarbeider', 'It-Ansvarlig', 'It-Konsulent', 'It-Koordinator', 'It-Leder', 'It-Medarbeider', 'It-Prosjektleder', 'It-Selger/account Manager', 'It-Sjef', 'It-Systemingeniør', 'It-Teknisk Konsulent',
'Jernbaneekspeditør', 'Jernbinderbas', 'Jordbrukssjef', 'Jordmor', 'Jordregistertekniker', 'Jordskifteassistent', 'Jordskiftedommer', 'Jordskifteingeniør', 'Jordskifteoverdommer', 'Jordskifterettsleder', 'Journalist', 'Juksafisker', 'Juridisk Rådgiver', 'Jurist', 'Juvelèr',
'Kabelarbeider', 'Kabelbanefører', 'Kabinettsekretær', 'Kafemedarbeider', 'Kaiarbeider', 'Kaibetjent', 'Kalanderarbeider', 'Kammeroperatørleder', 'Kanselist', 'Kapitalforvalter', 'Kapsler', 'Kaptein', 'Kapteinløytnant', 'Kardiolog', 'Karosserimekaniker', 'Kartsjef', 'Kasseleder', 'Kennelleder', 'Keramiker', 'Keramisk Former', 'Kinokontrollør', 'Kinomaskinist', 'Kinosjef', 'Kirkegårdsarbeider', 'Kiropraktor', 'Kjellermester', 'Kjemikaliedykker', 'Kjemiker', 'Kjevekirurg', 'Kjeveortoped', 'Kjole- Og Draktsyermester', 'Kjøkkenbestyrer', 'Kjølemaskinist', 'Kjølemaskinkjører', 'Kjørelærer', 'Kjøreskolelærer', 'Kjøttskjærer', 'Klinikkassistent', 'Klinisk Ernærinsfysiolog', 'Klinisk Sosionom', 'Klinisk Vernepleier', 'Klokkedykker', 'Klokker', 'Klubbarbeider', 'Klubbleder', 'Klubbtillitsmann', 'Koder', 'Kokillestøper', 'Koksbrenner', 'Koldkjøkkenassistent', 'Kolonialhandler', 'Komiker', 'Kommunaldirektør', 'Kommunalsjef', 'Kommuneadvokat', 'Kommuneergoterapeut', 'Kommunekasserer', 'Kommuneplansjef', 'Kommunestyrerepresentant', 'Kommunikasjonsrådgiver', 'Kommunikasjonsrådmann', 'Kommunikatør', 'Kompressoroperatør', 'Konditor', 'Konduktør', 'Konfektmaker', 'Konferansevert', 'Konferansevertinne', 'Konkurransedirektør', 'Konserndirektør', 'Konsernregnskapssjef', 'Konservator', 'Konstruksjonstegner', 'Kontaktmann', 'Kontoraspirant', 'Kontormedarbeider', 'Kontorrengjører', 'Kontraktsleder', 'Kontrollflyger', 'Kontrolloperatør', 'Kontrollromsassistent', 'Kontrollsjef', 'Kontrollveterinær', 'Kontrollør', 'Kopperslager', 'Koranlærer', 'Koreolog', 'Korrespondent', 'Korrosjonsbehandler', 'Kostholdskonsulent', 'Kostnadsingeniør', 'Kostymeformann', 'Kraftmegler', 'Kraftverksdirektør', 'Kraftverksoperatør', 'Kredittleder', 'Kreftsykepleier', 'Krematoriebetjent', 'Kretskortmontør', 'Kringkastingssjef', 'Kulturhussjef', 'Kulturkonsulent', 'Kulturminnekonsulent', 'Kundemegler', 'Kundesuppertleder', 'Kunststopper', 'Kurator', 'Kursmedarbeider', 'Kursveileder', 'Kurvfletter', 'Kurvmaker', 'Kurvmakermester', 'Kusk', 'Kvalitetsbedømmer', 'Kvalitetsmedarbeider', 'Kvalitetssikringsassistent', 'Kvalitetssikringsinspektør', 'Kvalitetssikringskoordinator', 'Kvalitetssikringsleder', 'Kybernetiker', 'Kystdirektør',
'Laboratorieleder', 'Laboratorierådgiver', 'Laboratorietekniker', 'Lagerformann', 'Lagerforvalter', 'Lagerfunksjonær', 'Lagerleder', 'Lagersjef', 'Lakkerer', 'Lakkoker', 'Landbruksdirektør', 'Landbruksmaskinmekaniker', 'Landbruksveileder', 'Landskapsarkitekt', 'Landssekretær', 'Landsstyremedlem', 'Ledende Aktivitør', 'Ledende Legesekretær', 'Leder', 'Leder It Brukerstøtte', 'Lege I Spesialisering', 'Legemiddelinspektør', 'Legesekretær', 'Legpredikant', 'Leigeskjærer', 'Lekotekleder', 'Lektor', 'Lensmannsbetjent', 'Lensmannsfullmektig', 'Leveransekoordinator', 'Ligningsrevisor', 'Ligningssekretær', 'Limarbeider', 'Limnolog', 'Lineegner', 'Linjeleder', 'Linjemontør', 'Litteraturagent', 'Litteraturkritiker', 'Location Scout', 'Locationassistent', 'Loddselger', 'Logistikkdirektør', 'Logistikkkoordinator', 'Logistikkleder', 'Logistikkmedarbeider', 'Logistikkonsulent', 'Logistikksjef', 'Logoped', 'Lokomotivfører', 'Lokomotivkontrollør', 'Losbåtfører', 'Losbåtsmann', 'Losinspektør', 'Lufthavnbetjent', 'Lufttrafikksjef', 'Lugarpike', 'Lydingeniør', 'Lydmester', 'Lydtekniker', 'Lysrigger', 'Lystekniker', 'Låsemontør', 'Lærervikar', 'Lærling', 'Lønningssekretær', 'Lønningssjef', 'Løypekjører', 'Løytnant',
'Malerlærling', 'Manikyrist', 'Mannekeng', 'Marinamedarbeider', 'Mariningeniør', 'Maritim Sjef', 'Markedsassistent', 'Markedsfører', 'Markedskoordinator', 'Markedsmedarbeider', 'Markedsovervåker', 'Markedssjef', 'Marketingsekretær', 'Marketingsjef', 'Marketingsplanlegger', 'Markisemontør', 'Maskinassistent', 'Maskinfører', 'Maskiningeniør', 'Maskininnbinder', 'Maskinmekaniker', 'Maskinoffiser', 'Maskinpakker', 'Maskinpasser', 'Maskintegner', 'Maskør', 'Masseoppløser', 'Matematikkinstruktør', 'Materialadministrasjonssjef', 'Materialforvalter', 'Medhjelper', 'Medisinalråd', 'Meglerassistent', 'Meierikonsulent', 'Mekaniker', 'Mekanisk Kabeloperasjonstekniker', 'Mengeblander', 'Menger', 'Menig', 'Menighetsarbeider', 'Menighetssekretær', 'Mensendiecker', 'Merkevaresjef', 'Messepike', 'Messeplanlegger', 'Metalliserer', 'Metallpusser', 'Meteorologikonsulent', 'Mikrofilmfotograf', 'Mikseoperatør', 'Militærattache', 'Militærpsykolog', 'Miljøsaneringsarbeider', 'Miljøvernsjef', 'Miljøvernsjef På Svalbard', 'Mineralvannarbeider', 'Minerer', 'Minerydder', 'Minigraverfører', 'Misjonsprest', 'Misjonssekretær', 'Mobilkranfører', 'Modellsnekker', 'Modellør', 'Molekylærbiolog', 'Montasjeingeniør', 'Montasjesjef', 'Moseplukker', 'Motormann', 'Motormannlærling', 'Motormekaniker', 'Motorsykkelbud', 'Motorsykkelreparatør', 'Mub Ingeniør', 'Multimediedesigner', 'Museumsdirektør', 'Museumstekniker', 'Musikkinstrumentreparatør', 'Musikkpedagog', 'Musikkprodusent', 'Musikkterapeut', 'Mykolog', 'Myntarbeider', 'Møbelmontør', 'Møbelsnekker', 'Møbeltapetserer', 'Møllemester', 'Mølleoperatør', 'Møller', 'Mønsteroperatør', 'Mønstersliper',
'Namsfullmektig', 'Natler', 'Nattportier', 'Nautisk Instrumentmaker', 'Ndt-Kontrollør', 'Neglskulptør', 'Nemndleder', 'Nestleder', 'Nettmann', 'Nettverksanalytiker', 'Nettverkstekniker', 'Notfisker', 'Nupper', 'Nyhetsredaktør', 'Nyhetsreporter', 'Nyhetssjef', 'Næringsmiddelkandidat', 'Næringsmiddelkontrollør', 'Næringsmiddelteknolog', 'Næringssjef',
'Odontolog', 'Odontologisk Forsker', 'Offentlig Godkjent Sykepleier', 'Offisersaspirant', 'Offshore Installation Manager', 'Oldfrue', 'Oljeanalytiker', 'Oljedestillatør', 'Oljedirektør', 'Oljekontraktkjøper', 'Oljekontraktmegler', 'Oljepressearbeider', 'Oljeraffinerer', 'Oljeseparatør', 'Ombud', 'Ombudsmann For Forsvaret', 'Områdebanksjef', 'Områdesjef', 'Omsorgsarbeider', 'Onkolog', 'Onkologisykepleier', 'Operatør', 'Operatør Av Pakkemaskiner', 'Opplæringsfarmasøyt', 'Opplæringskonsulent', 'Opplæringsleder', 'Opplæringssjef', 'Oppmålingstekniker', 'Oppredningsarbeider', 'Oppsynssjef', 'Oppvekstsjef', 'Opsjonsmegler', 'Optikermedarbeider', 'Ordensvakt', 'Ordreplukker', 'Organisasjonskonsulent', 'Organisasjonsleder', 'Organisasjonssekretær', 'Orgelbygger', 'Ortoped', 'Ortopeditekniker', 'Ortopediteknisk Sjef', 'Ortoptist', 'Oseanograf', 'Ostemaker', 'Overgartner', 'Overingeniør', 'Overinspektør', 'Overjordmor', 'Overkokk', 'Overlærskjærer', 'Overpleier', 'Overpostbetjent', 'Overpostmester', 'Overradiograf', 'Oversetter', 'Overstiger', 'Oversykepleier',
'Pantelåner', 'Pappsalarbeider', 'Paraplymaker', 'Parkettlegger', 'Parkettsliper', 'Parksjef', 'Parlamentarisk Leder', 'Partisekretær', 'Parykkmaker', 'Parykkmakermester', 'Passkontrollør', 'Pater', 'Patolog', 'Pedagog', 'Pedagogisk Psykolog', 'Pelsbereder', 'Pelsdyroppdretter', 'Pelsmaker', 'Pengeutlåner', 'Perforerer', 'Perfusjonist', 'Personal-Og Økonomidirektør', 'Personalassistent', 'Personalleder', 'Petrofysiker', 'Petroleumsarkitekt', 'Phytoterapeut', 'Pianoreparatør', 'Pianostemmer', 'Piping Ingeniør', 'Pizzabaker', 'Pizzasjåfør', 'Planlegger', 'Planleggingssjef', 'Planner', 'Plasseringsrådgiver', 'Pleiemedarbeider', 'Pleier', 'Poet', 'Polaritetsterapeut', 'Poliklinikksykepleier', 'Poliseprodusent', 'Politiadvokat', 'Politiavdelingssjef', 'Politiførstebetjent', 'Politimester', 'Politioverkonstabel', 'Politisk Sekretær', 'Popmusiker', 'Porteføljeforvalter', 'Porteføljeselger', 'Post Doc.', 'Postdoktor', 'Postfortoller', 'Postfullmektig', 'Postinspektør', 'Postmester', 'Poståpner', 'Preparantassistent', 'Preserveringstekniker', 'Pressebas', 'Pressefotograf', 'Presser', 'Privatassurandør', 'Prodekan', 'Production Supervisor', 'Produksjonsingeniør', 'Produksjonskoordinator', 'Produksjonsmedarbeider', 'Produksjonsoperatør', 'Produksjonsteknisk Leder', 'Produktsekretær', 'Produkttester', 'Produktutviklingskoordinator', 'Programleder', 'Programmerer', 'Programmeringssjef', 'Programsjef', 'Programvaretester', 'Programvareutvikler', 'Promotionkonsulent', 'Promotionmedarbeider', 'Prorektor', 'Prosjektmegler', 'Prosjektoppfølger', 'Prosjektstyringssjef', 'Prosjektøkonom', 'Protesetekniker', 'Protokollfører', 'Protokollsekretær', 'Pubvert', 'Purserassistent', 'Påkleder', 'Pølsemaker',
'Rabbiner', 'Radarreparatør', 'Radioingeniør', 'Radioleder', 'Radiosondeleder', 'Radiotekniker', 'Radiotelefonist', 'Raffinerer', 'Rammemaker', 'Redaksjonssekretær', 'Redaktør', 'Regionsekretær', 'Regionsjef', 'Regissør', 'Registrert Legemiddelkonsulent', 'Regningsinnkrever', 'Regnskapsansvarlig', 'Rehabiliteringsterapeut', 'Reineier', 'Reklamefotograf', 'Reklamekonsulent', 'Reklamesekretær', 'Rekrutteringskonsulent', 'Rektor', 'Rekvisitamaker', 'Rekvisittleder', 'Rembursjef', 'Renholdsbetjent', 'Renholdsinspektør', 'Renholdskonsulent', 'Renholdsleder', 'Renovasjonskjører', 'Renseriarbeider', 'Renseribestyrer', 'Renserimaskinarbeider', 'Reparatør', 'Resepsjonsfullmektig', 'Resepsjonsleder', 'Reservedelsekspeditør', 'Reservedykker', 'Reservesjåfør', 'Ressurskoordinator', 'Restaurantinspektør', 'Restaureringsassistent', 'Restaureringstekniker', 'Rettsgenetiker', 'Rettsskriver', 'Revisjonsleder', 'Revisjonsrådgiver', 'Revisjonssjef', 'Revisor', 'Revisormedarbeider', 'Ridelærer', 'Rigger', 'Riksantikvar', 'Riksarkivar', 'Riksbibliotekar', 'Risiko Controller', 'Rockemusiker', 'Rockesanger', 'Rodeleder', 'Romanforfatter', 'Rosenterapeut', 'Roughneck', 'Rullestolreparatør', 'Ryddehjelp', 'Rådgivende Overlege', 'Røkter', 'Røntgenassistent', 'Røringeniør', 'Rørsveiser',
'Sagbladstiller', 'Sagbruks- Og Høvleriarbeider', 'Sagsliper', 'Salatbarmedarbeider', 'Salgsanalytiker', 'Salgsassistent', 'Salgsingeniør', 'Salgskontrollør', 'Salgsrådgiver', 'Salgssekretær', 'Sambandsoffiser', 'Sametingspresident', 'Samfunnsgeograf', 'Saneringsarbeider', 'Scanner', 'Sceneinstruktør', 'Scenemester', 'Seismisk Personell', 'Sekretær', 'Seksjonsoverlege', 'Sektorsjef/assisterende Leder Av Politistyrke', 'Selfanger', 'Selger', 'Sementarbeider', 'Sementeringstekniker', 'Seminarholder', 'Senior Ingeniør', 'Senior Maskiningeniør', 'Senior Operatør', 'Senior Planleggsingsingeniør', 'Senior Økonomikonsulent', 'Senioranalytiker', 'Seniorinnkjøper', 'Seniorinspektør', 'Seniormetallurg', 'Seniorserviceingeniør', 'Senterleder', 'Sentralbanksjef', 'Sentralbordleder', 'Serigraf', 'Service Manager', 'Servicemontør', 'Servitør', 'Shopper', 'Shoveldoserkjører', 'Signalmann', 'Sikkerhetsansvarlig', 'Sikkerhetsdirektør', 'Sikkerhetsleder', 'Silketrykker', 'Sivilforsvarsinspektør', 'Sivilombud', 'Siviløkonom', 'Sjefbioingeniør', 'Sjeflege', 'Sjefsfysioterapeut', 'Sjefsingeniør', 'Sjefskokk', 'Sjefslandskapsarkitekt', 'Sjefssykepleier', 'Sjefsøkonom', 'Sjåfør Klasse B', 'Skadedyrkontrollør', 'Skadekonsulent', 'Skademedarbeider', 'Skaderegulerer', 'Skadesjef', 'Skatteregnskapssjef', 'Skatterevisor', 'Skiftekontrollør', 'Skiftingeniør', 'Skiftleder', 'Skilærer', 'Skimaker', 'Skinnsorterer', 'Skippingmedarbeider', 'Skipsradiomontør', 'Skipsreperatør', 'Skipsrørlegger', 'Skipssmed', 'Skjenkekontrollør', 'Skogbestyrer', 'Skogbruksplanlegger', 'Skogdirektør', 'Skogformann', 'Skogforvalter', 'Skogfullmektig', 'Skogsmaskinfører', 'Skogtaksator', 'Skoleassistent', 'Skoledirektør', 'Skolefritidsleder', 'Skoleinspektør', 'Skolepsykolog', 'Skolerådgiver', 'Skomakerlærling', 'Skopusser', 'Skoreparatør', 'Skrankeekspeditør', 'Skrankemedarbeider', 'Skredder', 'Skribent', 'Skript', 'Skuespiller', 'Skummer', 'Skøyteinstruktør', 'Slaktermester', 'Slankekonsulent', 'Sminkeassistent', 'Småbruker', 'Smører', 'Snekkermester', 'Snurrevadfisker', 'Snømåker', 'Snørelager', 'Soknediakon', 'Soneterapeut', 'Sortbytter', 'Sorterer', 'Sorteringsleder', 'Sortersalarbeider', 'Sosialfaglig Leder', 'Sosialinspektør', 'Sosialrådmann', 'Sosialsekretær', 'Sparklingsarbeider', 'Speditør', 'Spesialbioingeniør', 'Spesialergoterapeut', 'Spesialfysioterapeut', 'Spesiallærer', 'Spesialpedagog', 'Spesialpsykolog', 'Spesialrevisor', 'Spesialrådgiver', 'Spesialsykepleier', 'Spesialtannlege', 'Spoler', 'Sporveisdirektør', 'Spregningsarbeider', 'Spritdestillatør', 'Sprøytelakkerer', 'Spåkone/-Mann', 'Stabssjef', 'Staffcaptain', 'Stallkar', 'Stallmann', 'Stallpike', 'Stasjonsbetjent', 'Stasjonssjef', 'Statslosaspirant', 'Statsmeteorolog', 'Statsmykolog', 'Statssekretær', 'Statsskogsjef', 'Steinbruddsarbeider', 'Steinfagmester', 'Steward', 'Stillasbygger', 'Stipendiat', 'Stopper', 'Store Manager', 'Storkundeansvarlig', 'Stortingspresident', 'Storurmaker', 'Strategirådgiver', 'Stråleterapeut', 'Studieinspektør', 'Studieleder', 'Studiobetjent', 'Studioformann', 'Stuert', 'Styreleder', 'Styremedlem', 'Støttekontakt', 'Surveyer', 'Svakstrømsmontør', 'Sveiseinspektør', 'Sveiserlærling', 'Sykehusdirektør', 'Sykehusfarmasøyt', 'Sykehuslaborant', 'Sykehusprest', 'Sykehussjef', 'Sysselmann', 'Systemanalytiker', 'Systemarkitekt', 'Systemerer', 'Systemingeniør', 'Systemsjef', 'Systemtekniker', 'Systemtester', 'Systemutvikler', 'Sølvsiselør', 'Sølvsmed', 'Sølvtrykker', 'Søppelkjører',
'Taksteinlegger', 'Takstmann', 'Takstøkonom', 'Taktekker', 'Tallmagiker', 'Tannhelsesekretær', 'Tannhygieniker', 'Tannlegeassistent', 'Tannteknikermester', 'Tapper', 'Tapperiformann', 'Taubanefører', 'Taxisjåfør', 'Teglsorterer', 'Tegneassistent', 'Teknisk Ansvarlig', 'Teknisk Direktør', 'Teknisk Rådmann', 'Tekstilkonservator', 'Tekstilkunstner', 'Tekstiloperatør', 'Tekstiltrykker', 'Teleekspeditør', 'Telefonsentralmontør', 'Telefullmektig', 'Telegrafbetjent', 'Telekommunikasjonsingeniør', 'Telesjef', 'Teolog', 'Teppelegger', 'Terminalansvarlig', 'Terminalarbeider', 'Terminalleder', 'Termisk Sprøyter', 'Tilrettelegger', 'Tilsynslege', 'Tilsynsveterinær', 'Tiltakssjef', 'Tivoliarbeider', 'Togelektriker', 'Togkontrollør', 'Togsjef', 'Tolldistriktssjef', 'Tollkasserer', 'Tollstedsjef', 'Topograf', 'Torghandler', 'Total Service Manager', 'Totalisatorfunksjonær', 'Trafikkflyger', 'Trafikklærer', 'Trafikksjef', 'Trailersjåfør', 'Transformatormontør', 'Transportformann', 'Transportleder', 'Transportmedarbeider', 'Transportsjef', 'Transportør', 'Tredreier', 'Trepleier', 'Trikkefører', 'Truckfører', 'Trygdedirektør', 'Trygderevisor', 'Trygdesjef', 'Trykker', 'Trykktester', 'Trålbas', 'Turistvert', 'Turoperatør', 'Tvisteløseleder', 'Tvisteløser', 'Tårnarbeider', 'Tårnkranfører', 'Tårnmann', 'Tømmerberegner', 'Tømmerfløter', 'Tømmerhogger', 'Tømmermåler', 'Tømmermålingsinspektør', 'Tømmersjef', 'Tømmersorterer', 'Tørkepasser', 'Tørker', 'Tørrfisktilvirker', 'Tørrstoffkoker',
'Ullklassifisør', 'Undervisningsassistent', 'Underwriter', 'Utbyggingssjef', 'Utenrikskorrespondent', 'Utenriksredaktør', 'Utenriksråd', 'Utmarkstekniker', 'Utreder', 'Utredningsingeniør', 'Utrykningsleder', 'Utstyrsoperatør', 'Utviklingsdirektør', 'Utviklingssjef',
'Va-Ingeniør', 'Vakt', 'Vaktbetjent', 'Vaktmann', 'Vaktmesterassistent', 'Valutakoordinator', 'Valutasjef', 'Vannverkssjef', 'Varabrannmester', 'Vareautomatoperatør', 'Varemegler', 'Varmebehandler', 'Vaskeriassistent', 'Vedlikeholdsingeniør', 'Vedlikeholdstekniker', 'Vegvalsekjører', 'Vekterlærling', 'Vektkontrollør', 'Velferdssekretær', 'Velferdssjef', 'Verftssjef', 'Verkstedansvarlig', 'Verkstedarbeider', 'Verkstedformann', 'Verkstedingeniør', 'Verkstedmedarbeider', 'Verkstedsjef', 'Verktøyinnstiller', 'Verktøykonstruktør', 'Verktøymaker', 'Verktøysliper', 'Verneingeniør', 'Verneombud', 'Vervet', 'Veterinærinspektør', 'Vever', 'Vikarbyråkonsulent', 'Viltforvalter', 'Viltkonsulent', 'Vinduspusser', 'Viseadmiral', 'Visekonsernsjef', 'Visekonsul', 'Visesanger', 'Voksenopplæringssjef', 'Vraker', 'Vytnesjæjja', 'Værelsesbetjent', 'Værvarslingssjef',
'Web-Publisher', 'Webdesigner', 'Webmaster', 'Webredaktør',
'Yrkesfaglærer', 'Yrkesopplæringsleder', 'Yster',
'Økonom', 'Økonomiarbeider',
'Øre-Nese-Hals-Spesialist',
);
}

View file

@ -2,6 +2,8 @@
namespace Faker\Provider\nl_BE;
use Faker\Provider\DateTime;
class Person extends \Faker\Provider\Person
{
protected static $firstNameMale = array(
@ -69,4 +71,36 @@ class Person extends \Faker\Provider\Person
'Vermeersch', 'Vermeiren', 'Vermeulen', 'Verschueren', 'Verstraete', 'Verstraeten',
'Vervoort', 'Wauters', 'Willems', 'Wouters', 'Wuyts', 'Yildirim', 'Yilmaz'
);
/**
* Belgian Rijksregister numbers are used to identify each citizen,
* it consists of three parts, the person's day of birth, in the
* format 'ymd', followed by a number between 1 and 997, odd for
* males, even for females. The last part is used to check if it's
* a valid number.
*
* @link https://nl.wikipedia.org/wiki/Rijksregisternummer
*
* @param string|null $gender 'male', 'female' or null for any
* @return string
*/
public static function rrn($gender = null)
{
$middle = self::numberBetween(1, 997);
if ($gender === static::GENDER_MALE) {
$middle = $middle %2 === 1 ? $middle : $middle+1;
} elseif ($gender === static::GENDER_FEMALE) {
$middle = $middle %2 === 0 ? $middle : $middle+1;
}
$middle = sprintf('%03d', $middle);
$date = DateTime::dateTimeThisCentury();
$dob = sprintf('%06d', $date->format('ymd'));
$help = $date->format('Y') >= 2000 ? 2 : null;
$check = intval($help.$dob.$middle);
$rest = sprintf('%02d', 97 - ($check % 97));
return $dob.$middle.$rest;
}
}

File diff suppressed because it is too large Load diff

View file

@ -6,7 +6,43 @@ class Address extends \Faker\Provider\Address
{
protected static $buildingNumber = array('%', '%#', '%##', '%###', '%-?', '%#-?', '%?', '%#?', '%-#', '%#-##');
protected static $postcode = array('%### ??');
protected static $postcodes = array(
'1013PT', '1015GZ', '1053GS', '1058EG', '1060PM', '1068NE', '1072NL', '1073SK', '1074JA', '1078NH', '1111LW',
'1121JC', '1141RP', '1141VM', '1161TC', '1183CH', '1187RK', '1188LP', '1271KZ', '1312SG', '1323CW', '1325EZ',
'1333EJ', '1334DP', '1339VJ', '1351AC', '1352AC', '1354LM', '1356AC', '1391RX', '1406MZ', '1411JM', '1435GS',
'1443CK', '1444TM', '1448VB', '1505WL', '1509GP', '1531CZ', '1531KA', '1561ZV', '1602EP', '1606BS', '1619KB',
'1674PG', '1689BJ', '1702LB', '1761GN', '1775BR', '1782SK', '1788WE', '1862BK', '1901CT', '1911CH', '1949AN',
'1951MS', '1962PL', '1972DA', '2015HA', '2022RM', '2171XJ', '2231BB', '2231DG', '2231NZ', '2242PK', '2245VZ',
'2261BH', '2262EA', '2264BK', '2264TS', '2266AA', '2274GD', '2316XD', '2332KV', '2333CW', '2403CG', '2512VH',
'2516XJ', '2518ER', '2521SZ', '2531BH', '2544KR', '2562VH', '2564CJ', '2595BK', '2597PL', '2613DC', '2622DX',
'2623HS', '2631VK', '2671LD', '2675EE', '2685VZ', '2771JD', '2801JS', '2802ED', '2803ZN', '2841AK', '2903XH',
'2905PN', '2908KA', '2922AG', '2935RD', '2951JC', '3015XB', '3021WL', '3026RC', '3034VE', '3035CE', '3044AB',
'3054XL', '3055AK', '3068DL', '3069HH', '3073DW', '3075AH', '3132CS', '3135EX', '3143KB', '3145CN', '3202AN',
'3208LB', '3209BE', '3222CK', '3223VD', '3232TN', '3235NS', '3241BG', '3247CN', '3252CJ', '3255SC', '3274LD',
'3312CV', '3317HR', '3319BN', '3319RG', '3351RJ', '3411AK', '3439LB', '3511PL', '3513GS', '3514CR', '3515GC',
'3527EJ', '3551GH', '3572KA', '3573AL', '3608VJ', '3628AC', '3704MK', '3731EP', '3739JJ', '3741ZC', '3771RK',
'3824HR', '3843BB', '3871GE', '3882CG', '3892BA', '3904NB', '3981KE', '3985SG', '4011KH', '4021EB', '4103XV',
'4131NE', '4142WE', '4201BS', '4209SE', '4261ZC', '4283HA', '4307LC', '4334HG', '4337VE', '4371EN', '4382JC',
'4382NC', '4385AS', '4401CA', '4401CG', '4521BW', '4553NG', '4581CA', '4614BD', '4614GX', '4698BG', '4702HJ',
'4703LB', '4706CN', '4707WJ', '4735AS', '4793CM', '4797HE', '4811SH', '4814NJ', '4815CJ', '4835GG', '4871DD',
'4921PK', '5011HS', '5013BE', '5061NA', '5103KD', '5105AC', '5111XN', '5126NT', '5126WR', '5151LR', '5151RZ',
'5152VB', '5171GH', '5223BK', '5231PS', '5268GE', '5298AL', '5301HE', '5403NJ', '5469AT', '5481NC', '5482XE',
'5575CS', '5611LP', '5644KR', '5645KR', '5651LX', '5654AX', '5684CP', '5712BR', '5751LD', '5753RJ', '5754GE',
'5912SP', '6019CW', '6021BT', '6021KJ', '6049BL', '6085EX', '6097DG', '6097ZH', '6118BW', '6163KG', '6164GP',
'6165XE', '6222BT', '6222VD', '6222VJ', '6226WC', '6365BJ', '6411ND', '6415BX', '6417BV', '6461JD', '6524SR',
'6534XT', '6538CX', '6538RV', '6541AD', '6581BZ', '6584AM', '6605DP', '6621KN', '6651KG', '6655AE', '6671DV',
'6673DB', '6716ND', '6741BR', '6822JL', '6823JD', '6871ZM', '6905SG', '6915TT', '6922EG', '6942LX', '6952ET',
'6961XV', '6971GW', '7009CN', '7011JD', '7051JB', '7121LZ', '7136LH', '7261CN', '7273PP', '7311AL', '7312DG',
'7314BK', '7315CW', '7323KB', '7361TD', '7391CZ', '7391SG', '7411VR', '7425EB', '7441GB', '7442CW', '7442GX',
'7481DX', '7481SL', '7544XD', '7557VC', '7558GR', '7574PG', '7606XL', '7607RE', '7615RD', '7622VX', '7627SE',
'7642EN', '7645AL', '7678RM', '7681ZA', '7707RL', '7722LG', '7722XJ', '7761AJ', '7825VC', '7833JJ', '7906NK',
'7942JG', '7957DD', '7981BC', '8061BA', '8075AT', '8121HA', '8121SB', '8141HR', '8152BA', '8171JC', '8181VZ',
'8226HJ', '8231DH', '8231JL', '8252HG', '8262EA', '8265GX', '8302AR', '8321KC', '8322EH', '8421PG', '8431MC',
'8446CM', '8472DA', '8502CA', '8521DE', '8573WP', '8602XV', '8605AV', '8606XZ', '8701EG', '8701ZE', '8711EJ',
'8802VB', '8861KZ', '8862AC', '8933EK', '9057LC', '9061AS', '9073LK', '9164LC', '9201TM', '9203PZ', '9269SV',
'9269SZ', '9289ZH', '9354VD', '9401MA', '9406BM', '9431GV', '9501AM', '9502CX', '9642EA', '9651AR', '9675LR',
'9712LJ', '9742GT', '9745EH', '9751TA', '9751TS', '9752BK', '9752GE', '9801TA', '9901EH', '9991EG', '9999XK',
);
protected static $streetNameFormats = array('{{lastName}}{{streetSuffix}}');
@ -109,4 +145,9 @@ class Address extends \Faker\Provider\Address
{
return static::randomElement(static::$cityNames);
}
public static function postcode()
{
return static::randomElement(static::$postcodes);
}
}

Some files were not shown because too many files have changed in this diff Show more