Defective Code Logo

Total Downloads Latest Stable Version Latest Stable Version

English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文

تعارف

Faker Storage ایک اعلی کارکردگی والا PHP پیکج ہے جس کا مقصد بڑے پیمانے پر جعلی ڈیٹا فائلوں کو موثر طریقے سے پیدا اور ذخیرہ کرنا ہے۔ ہم آہنگی کو مدنظر رکھتے ہوئے یہ Swoole یا PCNTL کا فائدہ اٹھاتا ہے تاکہ ہزاروں فائلیں متوازی طور پر پیدا کی جا سکیں، جو کہ لوڈ ٹیسٹنگ، ترقیاتی ماحول، اور اسٹوریج سسٹم بینچ مارکنگ کے لیے مثالی ہے۔

یہ پیکج مختلف فائل اقسام کی پیداوار کے لیے ایک روانی API فراہم کرتا ہے بشمول تصاویر (PNG, JPG, GIF, BMP, WEBP, AVIF)، ٹیکسٹ فائلیں، CSV فائلیں، بائنری ڈیٹا، اور RFC822 کی تعمیل کرنے والے ای میلز۔ ہر جنریٹر بیج کے ساتھ پیدا کردہ درست نتائج فراہم کرتا ہے، جس سے کہ ماحول کے لحاظ سے ٹیسٹ ڈیٹا قابلِ نقل ہوتا ہے۔

اہم خصوصیات

مثال

use DefectiveCode\Faker\Faker;
use League\Flysystem\Filesystem;
use DefectiveCode\Faker\Generators\Png;
use League\Flysystem\Local\LocalFilesystemAdapter;
 
// 1000 PNG تصاویر پیدا کریں 10 متوازی کارکنوں کے ساتھ
Faker::make(Png::class)
->width(800, 1920)
->height(600, 1080)
->toDisk(new Filesystem(new LocalFilesystemAdapter('/path/to/storage')))
->basePath('images')
->count(1000)
->concurrency(10)
->seed(42)
->generate();
 
// CSV فائلیں پیدا کریں
use DefectiveCode\Faker\Generators\Csv;
 
Faker::make(Csv::class)
->columns(5, 10)
->rows(100, 500)
->delimiter(',')
->toDisk(new Filesystem(new LocalFilesystemAdapter('/path/to/storage')))
->count(50)
->generate();
 
// الحاق کے ساتھ ای میلز پیدا کریں
use DefectiveCode\Faker\Generators\Email;
 
Faker::make(Email::class)
->paragraphs(3, 5)
->sentences(2, 4)
->withAttachment(Png::class, 1, 3)
->toDisk(new Filesystem(new LocalFilesystemAdapter('/path/to/storage')))
->count(100)
->generate();

تنصیب

پیکج کو Composer کے ذریعے انسٹال کریں:

composer require defectivecode/faker-storage

ضروریات

اختیاری انحصارات

بہترین کارکردگی کے لئے Swoole توسیع انسٹال کریں:

pecl install swoole

یہ پیکج خود بخود Swoole کا استعمال کرے گا اگر یہ دستیاب ہو، ورنہ PCNTL پر واپس جائے گا۔

استعمال

بنیادی ورک فلو

تمام جنریٹر ایک ہی پیٹرن کی پیروی کرتے ہیں:

  1. ایک جنریٹر کے ساتھ Faker کا ایک مثال بنائیں
  2. جنریٹر کو ترتیب دیں (اختیاری)
  3. ذخیرہ کرنے کی منزل مقرر کریں
  4. ہم آہنگی اور تعداد کی ترتیب دیں
  5. فائلیں پیدا کریں
use DefectiveCode\Faker\Faker;
use League\Flysystem\Filesystem;
use DefectiveCode\Faker\Generators\Text;
use League\Flysystem\Local\LocalFilesystemAdapter;
 
Faker::make(Text::class)
->paragraphs(5, 10) // جنریٹر کی مخصوص ترتیب
->toDisk(new Filesystem(new LocalFilesystemAdapter('/storage')))
->basePath('documents') // فائلیں /storage/documents/ میں ہوں گی
->count(100) // 100 فائلیں پیدا کریں
->concurrency(4) // 4 کارکنوں کا استعمال کریں
->seed(123) // محفوظ نتائج کے لئے
->generate();

اسٹوریج کی تنظیم

Flysystem کا استعمال

Faker Storage League Flysystem کو اسٹوریج کی انتزاع کے لئے استعمال کرتا ہے:

use League\Flysystem\Filesystem;
use League\Flysystem\Local\LocalFilesystemAdapter;
 
// مقامی اسٹوریج
$filesystem = new Filesystem(new LocalFilesystemAdapter('/path/to/storage'));
 
Faker::make(Png::class)
->toDisk($filesystem)
->generate();

AWS S3 اسٹوریج

use Aws\S3\S3Client;
use League\Flysystem\Filesystem;
use League\Flysystem\AwsS3V3\AwsS3V3Adapter;
 
$client = new S3Client([
'credentials' => [
'key' => 'your-key',
'secret' => 'your-secret',
],
'region' => 'us-east-1',
'version' => 'latest',
]);
 
$adapter = new AwsS3V3Adapter($client, 'your-bucket-name');
$filesystem = new Filesystem($adapter);
 
Faker::make(Png::class)
->toDisk($filesystem)
->basePath('uploads/images')
->generate();

ڈسک کے اختیارات

فائل سسٹم ایڈاپٹر کو اضافی اختیارات فراہم کریں:

Faker::make(Png::class)
->toDisk($filesystem)
->diskOptions([
'visibility' => 'public',
'ACL' => 'public-read',
'CacheControl' => 'max-age=31536000',
])
->generate();

ہم آہنگی کی ترتیب

concurrency() طریقہ کے ساتھ متوازی عملدرآمد کو کنٹرول کریں:

// 10 ورکنگ تھریڈز / پراسیس کا استعمال کریں
Faker::make(Png::class)
->concurrency(10)
->generate();
 
// Swoole مخصوص: ہر تھریڈ کے لئے دونوں تھریڈز اور کوروٹائن سیٹ کریں
Faker::make(Png::class)
->concurrency(threads: 4, coroutines: 8) // 4 کارکن، ہر ایک کے 8 کوروٹائن
->generate();

فائل کی نام دہی

ڈیفالٹ نام دہی

پہلے سے طے شدہ طور پر، فائلیں UUID v4 کا استعمال کرتے ہوئے نام دی جاتی ہیں:

// پیدا کرتا ہے: e7f0a8d3-5c2b-4f9e-8a1d-3b4c5d6e7f8a.png
Faker::make(Png::class)->generate();

بلٹ ان نام جنریٹر

use DefectiveCode\Faker\NameGenerator;
 
// UUID کی بنیاد پر (ڈیفالٹ)
NameGenerator::setDefault('uuid'); // پیدا کرتا ہے: e7f0a8d3-5c2b-4f9e-8a1d-3b4c5d6e7f8a.png
 
// متسلسل نمبروں کا استعمال
NameGenerator::setDefault('sequence'); // پیدا کرتا ہے: 1.png, 2.png, 3.png, ...

حسب ضرورت نام دہی

فائل کے نام اپنی مرضی کے مطابق بنانے کے لئے ایک کلوزر فراہم کریں:

use DefectiveCode\Faker\NameGenerator;
 
// حسب ضرورت کلوزر
Faker::make(Png::class)
->nameGenerator(function (int $seed, int $completedFiles, $generator) {
return "custom-{$completedFiles}-{$seed}.png";
})
->generate();
 
// تاریخ کی بنیاد پر نام دہی
Faker::make(Png::class)
->nameGenerator(function (int $seed, int $completedFiles, $generator) {
return date('Y/m/d') . "/image-{$completedFiles}.png";
})
->generate();

نقل کی خاطر بیجنگ

ایک بیج سیٹ کریں تاکہ ایک ہی فائلیں مختلف باروں میں پیدا ہوں:

Faker::make(Png::class)
->seed(42)
->count(10)
->generate();

ہر فائل کو ایک منفرد درست بیج ملتا ہے جو بنیادی بیج اور فائل کے انڈیکس سے ماخوذ ہوتا ہے۔

جنریٹرز

امیج جنریٹرز

تمام امیج جنریٹر طول و عرض اور معیار کی تشکیل کی حمایت کرتے ہیں۔

PNG

use DefectiveCode\Faker\Generators\Png;
 
Faker::make(Png::class)
->width(800, 1920) // بے ترتیب چوڑائی 800-1920px کے درمیان
->height(600, 1080) // بے ترتیب اونچائی 600-1080px کے درمیان
->withAlpha(true) // الفا / شفافیت کی چینل کو فعال کریں
->grid(5) // اختیاری: 5x5 مطابقت کا نمونہ پیدا کریں
->toDisk($filesystem)
->generate();

JPG

use DefectiveCode\Faker\Generators\Jpg;
 
Faker::make(Jpg::class)
->width(800, 1920) // بے ترتیب چوڑائی 800-1920px کے درمیان
->height(600, 1080) // بے ترتیب اونچائی 600-1080px کے درمیان
->grid(5) // اختیاری: 5x5 مطابقت کا نمونہ پیدا کریں
->toDisk($filesystem)
->generate();

GIF

use DefectiveCode\Faker\Generators\Gif;
 
Faker::make(Gif::class)
->width(800, 1920) // بے ترتیب چوڑائی 800-1920px کے درمیان
->height(600, 1080) // بے ترتیب اونچائی 600-1080px کے درمیان
->withAlpha(true) // الفا / شفافیت کی چینل کو فعال کریں
->grid(5) // اختیاری: 5x5 مطابقت کا نمونہ پیدا کریں
->toDisk($filesystem)
->generate();

BMP

use DefectiveCode\Faker\Generators\Bmp;
 
Faker::make(Bmp::class)
->width(800, 1920) // بے ترتیب چوڑائی 800-1920px کے درمیان
->height(600, 1080) // بے ترتیب اونچائی 600-1080px کے درمیان
->grid(5) // اختیاری: 5x5 مطابقت کا نمونہ پیدا کریں
->toDisk($filesystem)
->generate();

WEBP

use DefectiveCode\Faker\Generators\Webp;
 
Faker::make(Webp::class)
->width(800, 1920) // بے ترتیب چوڑائی 800-1920px کے درمیان
->height(600, 1080) // بے ترتیب اونچائی 600-1080px کے درمیان
->withAlpha(true) // الفا / شفافیت کی چینل کو فعال کریں
->grid(5) // اختیاری: 5x5 مطابقت کا نمونہ پیدا کریں
->toDisk($filesystem)
->generate();

AVIF

use DefectiveCode\Faker\Generators\Avif;
 
Faker::make(Avif::class)
->width(800, 1920) // بے ترتیب چوڑائی 800-1920px کے درمیان
->height(600, 1080) // بے ترتیب اونچائی 600-1080px کے درمیان
->withAlpha(true) // الفا / شفافیت کی چینل کو فعال کریں
->grid(5) // اختیاری: 5x5 مطابقت کا نمونہ پیدا کریں
->toDisk($filesystem)
->generate();

بے ترتیب تصویر

ایک بے ترتیب تصویر کا فارمیٹ پیدا کرتی ہے:

use DefectiveCode\Faker\Generators\RandomImage;
 
Faker::make(RandomImage::class)
->width(800, 1920)
->height(600, 1080)
->withAlpha(false) // بے ترتیب میں: AVIF, BMP, GIF, JPEG, PNG, WEBP
->toDisk($filesystem)
->generate();
 
Faker::make(RandomImage::class)
->width(800, 1920)
->height(600, 1080)
->withAlpha(true) // بے ترتیب میں: AVIF, GIF, PNG, WEBP
->toDisk($filesystem)
->generate();

ٹیکسٹ جنریٹر

سادہ ٹیکسٹ فائلیں پیدا کریں جن میں پیراگراف ہوں:

use DefectiveCode\Faker\Generators\Text;
 
Faker::make(Text::class)
->paragraphs(5, 10) // 5-10 پیراگراف فی فائل
->sentences(3, 6) // ہر پیراگراف میں 3-6 جملے
->toDisk($filesystem)
->generate();

خروج کی مثال:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
 
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

CSV جنریٹر

بے ترتیب ڈیٹا کے ساتھ CSV فائلیں پیدا کریں:

use DefectiveCode\Faker\Generators\Csv;
 
Faker::make(Csv::class)
->columns(5, 10) // 5-10 کالم
->rows(100, 500) // 100-500 قطاریں
->delimiter(',') // کالم کی حد
->enclosure('"') // فیچر کی حد
->escape('\\') // بچنے والا کردار
->eol("\n") // لائن کا اختتام
->toDisk($filesystem)
->generate();

خروج کی مثال:

"John Doe","john@example.com","555-1234","New York","Engineer"
"Jane Smith","jane@example.com","555-5678","Los Angeles","Designer"
"Bob Johnson","bob@example.com","555-9012","Chicago","Manager"

بائنری جنریٹر

بے ترتیب بائنری ڈیٹا پیدا کریں:

use DefectiveCode\Faker\Generators\Binary;
 
Faker::make(Binary::class)
->length(1024, 1048576) // 1KB - 1MB
->toDisk($filesystem)
->generate();

ای میل جنریٹر

RFC822 کی تعمیل کرنے والی ای میل فائلیں پیدا کریں:

use DefectiveCode\Faker\Generators\Email;
 
Faker::make(Email::class)
->paragraphs(3, 5) // ای میل کے جسم میں پیراگراف
->sentences(2, 4) // ہر پیراگراف میں جملے
->withAttachment(Png::class, 1, 3) // 1-3 PNG الحاقات شامل کریں
->toDisk($filesystem)
->generate();

ای میل ہیڈرز

پیدا کردہ ای میلز میں شامل ہیں:

الحاقات کے ساتھ ای میل

فائلیں جنریٹر کی کلاس کے ناموں یا مثالوں کا استعمال کرکے الحاق کریں:

use DefectiveCode\Faker\Generators\Email;
use DefectiveCode\Faker\Generators\Png;
use DefectiveCode\Faker\Generators\Pdf;
 
Faker::make(Email::class)
->withAttachment(Png::class, 1, 3) // 1-3 PNG الحاقات
->generate();
 
// کنفیگر کردہ جنریٹر کی مثال کا استعمال کرکے الحاق کریں
$pngGenerator = new Png(Png::getDefaultConfig());
$pngGenerator->width(400, 800)->height(300, 600);
 
Faker::make(Email::class)
->withAttachment($pngGenerator, 2, 5)
->generate();

خروج کی مثال:

To: John Doe <john.doe@example.com>
From: Jane Smith <jane.smith@example.com>
Subject: Important meeting tomorrow
Date: Fri, 03 Jan 2026 10:30:00 +0000
Message-ID: <3e92e5c2b0d632b3a36fbbb17484b7fe@example.com>
Content-Type: multipart/mixed; boundary="----=_Part_123"
 
------=_Part_123
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
 
Lorem ipsum dolor sit amet, consectetur adipiscing elit...
 
------=_Part_123
Content-Type: image/png; name="attachment.png"
Content-Disposition: attachment; filename="attachment.png"
Content-Transfer-Encoding: base64
 
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==
------=_Part_123--

ترقی یافتہ استعمال

حسب ضرورت جنریٹر

اپنے حسب ضرورت جنریٹر بنانے کے لئے Generator انٹرفیس کو نافذ کریں:

use DefectiveCode\Faker\Configs\Config;
use DefectiveCode\Faker\Concerns\SetsSeed;
use DefectiveCode\Faker\Generators\Generator;
use DefectiveCode\Faker\Concerns\PreparesFaker;
 
class MyCustomGenerator implements Generator
{
use PreparesFaker;
use SetsSeed;
 
public function __construct(public Config $config) {}
 
public static function getDefaultConfig(): Config
{
return new MyCustomConfig([
'contentType' => 'application/x-custom',
'nameGenerator' => NameGenerator::default('extension'),
]);
}
 
public function generate(): mixed
{
// آپ کی پیداوار کی منطق یہاں
$data = $this->faker->randomElement(['foo', 'bar', 'baz']);
 
$stream = fopen('php://temp', 'w+');
fwrite($stream, $data);
 
return $stream;
}
}
 
// اپنے حسب ضرورت جنریٹر کا استعمال کریں
Faker::make(MyCustomGenerator::class)
->toDisk($filesystem)
->generate();

تشکیل کی کلاسیں

ہر جنریٹر ایک تشکیل کی کلاس کا استعمال کرتا ہے جو Config کو بڑھاتی ہے:

use DefectiveCode\Faker\Configs\Config;
 
class MyCustomConfig extends Config
{
public int $minValue = 1;
public int $maxValue = 100;
}

کارکردگی کے نکات

  1. Swoole کا استعمال کریں: بہترین کارکردگی کے لئے Swoole توسیع انسٹال کریں
  2. ہم آہنگی کو ترتیب دیں: بہترین گزرگاہ کے لئے تھریڈ کی تعداد کو CPU کور کے برابر کریں
  3. بیچ کی کارروائیاں: متعدد چھوٹے چلانے کے بجائے بڑے بیچ پیدا کریں
  4. اسٹوریج کی جگہ: عارضی فائلوں کے لئے تیز اسٹوریج (SSD، مقامی ڈسک) کا استعمال کریں
  5. نیٹ ورک I/O: S3 کا استعمال کرتے وقت، بینڈوڈتھ کے استعمال کو زیادہ سے زیادہ کرنے کے لئے ہم آہنگی بڑھائیں

تشکیل

عالمی ترتیب کے طریقے

یہ طریقے تمام Faker مثالوں پر دستیاب ہیں:

make(string $generator): Faker

متعلقہ جنریٹر کے ساتھ ایک نئی Faker مثال بنائیں:

Faker::make(Png::class)

toDisk(Filesystem $filesystem): Faker

ذخیرہ کرنے کی منزل مقرر کریں (ضروری):

Faker::make(Png::class)
->toDisk(new Filesystem(new LocalFilesystemAdapter('/storage')))

basePath(string $basePath): Faker

فائل کے سسٹم میں بیس پاتھ مقرر کریں:

Faker::make(Png::class)
->basePath('images/uploads') // فائلیں /storage/images/uploads/ میں ذخیرہ ہوں گی

count(int $count): Faker

پیدا کرنے کے لئے فائلوں کی تعداد مقرر کریں:

Faker::make(Png::class)
->count(1000)

concurrency(int $threads, ?int $coroutines = null): Faker

متوازی عملدرآمد کی تشکیل کریں:

// بنیادی ہم آہنگی
Faker::make(Png::class)
->concurrency(4)
 
// Swoole مخصوص: تھریڈز اور کوروٹائن
Faker::make(Png::class)
->concurrency(threads: 4, coroutines: 8)

seed(int $seed): Faker

محفوظ پیدائش کے لیے بیج مقرر کریں:

Faker::make(Png::class)
->seed(42)

nameGenerator(Closure $generator): Faker

فائل کے نام کی تخصیص کریں:

Faker::make(Png::class)
->nameGenerator(function (int $seed, int $completedFiles, $generator) {
return "file-{$completedFiles}.png";
})

diskOptions(array $diskOptions): Faker

فائل سسٹم ایڈاپٹر کو اختیارات فراہم کریں:

Faker::make(Png::class)
->diskOptions([
'visibility' => 'public',
'ACL' => 'public-read',
])

generate(): void

فائل کی پیدائش کریں:

Faker::make(Png::class)->generate();

سپورٹ کی رہنمائی

ہمارے اوپن سورس پیکیج کا انتخاب کرنے کے لیے شکریہ! براہ کرم ان سپورٹ رہنما خطوط پر ایک لمحہ صرف کریں۔ یہ آپ کو ہمارے پروجیکٹ سے زیادہ سے زیادہ فائدہ اٹھانے میں مدد کریں گے۔

کمیونٹی کی بنیاد پر مدد

ہمارا اوپن سورس پروجیکٹ ہماری شاندار کمیونٹی کی مدد سے چلتا ہے۔ اگر آپ کے پاس سوالات ہیں یا مدد کی ضرورت ہے تو، StackOverflow اور دیگر آن لائن وسائل آپ کے بہترین دوست ہیں۔

کیڑے اور فیچر کی ترجیحات

اوپن سورس پروجیکٹ کا انتظام کرنے کی حقیقت یہ ہے کہ ہم ہر رپورٹ شدہ کیڑے یا فیچر کی درخواست کو فوری طور پر نہیں حل کر سکتے۔ ہم مسائل کو درج ذیل ترتیب میں ترجیح دیتے ہیں:

1. ہماری ادائیگی شدہ مصنوعات پر اثر انداز ہونے والے کیڑے

وہ کیڑے جو ہماری ادائیگی شدہ مصنوعات پر اثر انداز ہوتے ہیں ہمیشہ ہماری پہلی ترجیح ہوں گے۔ کچھ معاملات میں، ہم صرف ان کیڑوں کو حل کریں گے جو براہ راست ہمیں متاثر کرتے ہیں۔

2. کمیونٹی کی طرف سے پول ریگسٹس

اگر آپ نے کسی کیڑے کی نشاندہی کی ہے اور آپ کے پاس حل ہے، تو براہ کرم پول ریگسٹس جمع کرائیں۔ اپنی مصنوعات سے متعلق مسائل کے بعد، ہم ان کمیونٹی کی بنیاد پر درستگیوں کو اگلی سب سے بڑی ترجیح دیتے ہیں۔ جائزہ لینے اور منظور ہونے کے بعد، ہم آپ کے حل کو ضم کریں گے اور آپ کی شراکت کو تسلیم کریں گے۔

3. مالی مدد

ذکر کردہ زمرے سے باہر کے مسائل کے لیے، آپ ان کا حل کرنے کے لئے مالی امداد فراہم کرنے کا انتخاب کر سکتے ہیں۔ ہر اوپن مسئلہ ایک آرڈر فارم سے منسلک ہے جہاں آپ مالی طور پر تعاون کر سکتے ہیں۔ ہم ان مسائل کو فراہم کردہ فنڈنگ کی رقم کی بنیاد پر ترجیح دیتے ہیں۔

کمیونٹی کی شراکتیں

اوپن سورس اس وقت بڑھتا ہے جب اس کی کمیونٹی فعال ہو۔ چاہے آپ کیڑے حل نہیں کر رہے ہوں، کوڈ کی بہتریوں، دستاویز کے اپ ڈیٹس، سبقیں، یا کمیونٹی چینلز میں دوسروں کی مدد کے ذریعے شراکت دینے پر غور کریں۔ ہم بالعموم سب کو، ایک کمیونٹی کے طور پر، اوپن سورس کام کی مدد کرنے کی ترغیب دیتے ہیں۔

دوہرانے کے لیے، DefectiveCode کیڑے کو اس بنیاد پر ترجیح دے گا کہ وہ ہمارے ادائیگی شدہ پروڈکٹس، کمیونٹی کی پول ریگسٹس اور مسائل کے لئے موصولہ مالی مدد پر کس طرح اثر انداز ہوتے ہیں۔

لائسنس - MIT لائسنس

کاپی رائٹ © Defective Code, LLC. تمام حقوق محفوظ ہیں

یہاں پر کسی بھی شخص کو یہ سافٹ ویئر اور اس سے وابستہ دستاویزات کی کاپی حاصل کرنے کی اجازت دی جاتی ہے (جسے "سافٹ ویئر" کہا جاتا ہے)، تاکہ وہ سافٹ ویئر میں کسی بھی پابندی کے بغیر کام کر سکے، بشمول بغیر کسی حد کے، استعمال کرنے، کاپی کرنے، ترمیم کرنے، یکجا کرنے، شائع کرنے، تقسیم کرنے، ذیلی لائسنس دینے اور/یا سافٹ ویئر کی کاپیوں کو بیچنے کے حقوق حاصل کرنے، اور ان لوگوں کو اجازت دینے کا کہ جنہیں سافٹ ویئر فراہم کیا گیا ہے، کہ وہ ایسا کرسکیں، مندرجہ ذیل شرائط کے تابع:

اوپر کا کاپی رائٹ نوٹس اور یہ اجازت نامہ سافٹ ویئر کی تمام کاپیوں یا اہم حصوں میں شامل کیا جائے گا۔

یہ سافٹ ویئر "جیسا ہے" فراہم کیا جاتا ہے، بغیر کسی قسم کی وارنٹی، واضح یا مضمر، بشمول لیکن محدود نہیں، مارکیٹ ایبیلٹی، کسی خاص مقصد کے لئے موزونیت اور خلاف ورزی کے وارنٹیوں کے۔ کسی بھی صورت میں مصنفین یا کاپی رائٹ ہولڈرز کسی بھی دعوے، نقصانات یا دیگر ذمہ داریوں کے لئے ذمہ دار نہیں ہوں گے، چاہے وہ معاہدے کے ایکشن، غلطی یا کسی اور طریقے سے ہو، جو سافٹ ویئر یا سافٹ ویئر کے استعمال یا دیگر معاملات سے پیدا ہو، یا اس سے متعلق ہو۔