-
نگاهی به 10 باگ پرهزینه تاریخ
این خانه امن نیست
از همان زمانی که درسال 1947 حشرهاي عملکرد سیستم مارک 2 هاروارد را مختل كرد تا همین امروز که بیش از شصت سال از آن تاریخ ميگذرد، باگها عضو جدانشدني نرمافزارهای کامپیوتری بودهاند (البته برخلاف افسانههاي موجود، تولد اصطلاح باگ با این اتفاق رخ نداده است). این مفهوم آنقدر در زندگی ما وارد شده که حتی بهعنوان کاربر نیز در موارد بسیاری ميتوانیم تشخیص دهیم، نرمافزار در چه بخشی باگ دارد و البته بهراحتی نیز از کنار آن ميگذریم، زیرا برایما روشنشدهاست که نرمافزارها باگ دارند و این امری اجتنابناپذیر است، اما مسئله به همین سادگیها هم نیست. با این که باگها به ندرت خسارت جانی در پی داشتهاند، اما بارها نيز خسارتهاي عظیم مالی به همراه آوردهاند.
در این مقاله سعی خواهیم كرد تا ده باگ خطرآفرین تاریخ نرمافزارهای کامپیوتری را بیان كنيم. فهرستي که شامل اتفاقاتی غیرقابل باور است. توجه داشته باشید که در این مقاله به هر باگ به صورت مختصر اشاره شده و به همین دلیل ممکن است توضیحات فنی ارائه شده برای بعضی کافی نباشد. به همين دليل، بهتر است با جستوجو درباره باگ مورد نظر اطلاعات تکمیلی در رابطه با آن را مطالعه كنيد.
1- کاوشگر مارینر (1962)
هزینه: 18,5 میلیون دلار
راکت مارینر 1 و یک کاوشگر فضایی به سمت ونوس در حال حرکت بودند. با این حال، درست کمی بعد از ظهر بود که آنها از مسیرشان منحرف شدند. مرکز کنترل عملیات مجبور شد راکت را 295 ثانیه بعد از شروع حرکت از بین ببرد. مشکل اینجا بود که یک برنامهنویس هنگام واردکردن فرمولی از روی نوشته کاغذی مرتکب اشتباه شده و علامت باری را که بر بالای یکی از حروف قرار داشت و نشان دهنده تابع Smoothing (ملايمكننده) آن متغیر بود، وارد نکرده بود. به این ترتیب، هر تغییر نرمال سرعتو شتاب را به صورت یک موضوع جدی تلقی کرده و این امر باعث شد تا حرکت راکت دچار تغییرات اشتباه شده و از مسیر منحرف شود.
2- خط لوله گاز شوروی (1982)
هزینه: میلیونها دلار، ضرر قابل توجه به اقتصاد روسیه
دولت شوروی در راستای برنامه کسب یا سرقت فناوريهاي حیاتی از ایالاتمتحده کامپیوترهایی را برای کنترل خط لولهگاز ترانس، سیبری تهیه کرد. ماهیت پیچیده این خط لوله نیاز به سیستمهاي پیچیدهاي را برای کنترل اقتضا ميکرد. به همین دلیل، آنها تصمیم گرفتند از فناوريهاي غربی استفاده کنند و سراغ کانادا رفتند . CIA با علم به این خرید، باگی را در این سیستمها جاسازی کرد که در بررسیهاي اولیه روسها خود را نشان ندهد، اما بعد در عملیات باعث انفجار خطوط گاز شود. در نهايت، این اتفاق افتاد و انفجار صورت گرفته بزرگترین انفجار انسانی غیراتمی تاریخشد. با توجه به قرار داشتن این سیستمها در مناطق دورافتاده خسارت جانیاي برای آن اعلام نشد. بعدها روسها منکر چنین داستانی شده و آن را زاییده مغز امریکاییها دانستند. به گفته آنان، دلیل این انفجار فقط خطا در ساخت خط لوله در آن نقطه خاص بوده و شدت آن نیز بسیار کمتر از آن چیزی که بیان شده بوده است.
3- جنگ جهانی سوم (1983)
هزینه: تقریباً تمام بشریت
23 سپتامبر 1983 روزی بود که ميتوانست تاریخ بشریت را برای همیشه تغییر دهد. همه چیز از یک باگ شروع شد که باعث شد شوروی اخطاری اشتباه را مبنی بر شروع حمله هوایی ایالاتمتحده دریافت كند. شاید همه ما باید سپاسگزار یک کارمند دولت شوروی باشیم که باعث شد جنگ جهانی سوم کلید نخورد.ماجرا اينگونه شروع شد که صبح روز بیست و سوم ماه سپتامبر، سیستم اخطار اولیه شوروی اعلام كرد، پنج موشک از سوی امریکا به سمت این کشور در حال حرکت است. کلنل ستوان استانیسلاو پتروف که فرماندهی آن بخش از سیستم اخطار اولیه را برعهده داشت، به کارمندانش اعلام کرد، برای اعلام نتیجه دست نگه دارند. وی برای کارش دو دلیل داشت: نخست اینکه با وجود دعواهای لفظی موجود میان دو کشور در آن زمان کلنل مشاهده کرده بود که بيشتر این درگیریها تنها در مرحله کلامی باقی مانده و اثر جانبی ندارند. البته، دومین دلیل کلنل که مهمترین آنها نیز محسوب ميشد، این بود که اگر ایالاتمتحده قصد حمله هوایی به شوروی را داشته باشد، به يقين برای این کار خیلی بیشتر از پنج عدد موشک به سمت این کشور روانه خواهد كرد.
پس از تأملی چند دقیقهای، سیستم دیگر هیچ نشانی از این موشکها نشان نداد و به این ترتیب مشخص شد، تشخیص اولیه از خطای سیستم ناشی شده بود. دلیل این خطا از آنجا ناشی ميشد که نرمافزار نتوانسته بود تشخیص اشتباه وجود موشکی را که از انعکاس نورخورشید از روی بخش بالایی ابرها ناشی ميشد، فیلتر کند. البته، بررسیهاي بعدی نشان داد، تعداد باگهاي این سیستم خیلی بیشتر از این صحبتها بوده و به طور کلی نرمافزار به کار رفته در آن پر از باگ است. با وجود تصمیم هوشمندانه کلنل مبنی بر جلوگیری از اعلام دستور ضدحمله، وی به دلیل عدم اعتمادش به سیستم برنامهنویسان شوروی به شدت از سوی دولت در تنگنا قرار گرفت و به همین دلیل مجبور به بازنشستگی پیش از موعد شد. تصمیم او آینهاي از عدم قدرت برنامهنویسان شوروی در تولید سیستمهاي حیاتی بود و این موضوعی بود که اصلاً به مذاق پروپاگاندای دولت شوروی سابق خوش نمیآمد. در 21 مي سال 2004 سازمان انجمن شهروندان جهانی در سانفراسیسکو بالاترین درجه افتخاریاش را به کلنل پتروف اهدا کرد تا شاید به این وسیله از تصمیم هوشمندانه وی تجلیلی به عمل آید.
4- شتاب دهنده پزشکی ثراک- 25 (1986-1985)
هزینه: مرگ سه نفر و مصدومیت شدید سه نفر دیگر
ماشین Radiation Therapy کانادایی ثراک25 با عملکرد اشتباه خود پرتوهاي مرگ باری را به سمت تعدادی از بیماران روانه داشت. این دستگاه که یک سیستم درمانی پیشرفته محسوب ميشد ميتوانست دو نوع پرتوزایی مختلف را ارائه كند. یکی با پرتوهای کم قدرت مانند ذرههاي بتا و دیگری با اشعه X. یکی از پیشرفتهاي مهم انجامگرفته در ساخت این دستگاه جایگزینی قفل امنیتی الکترومکانیکی با یک نرمافزار کنترلی بود که به عقیده سازندگان ميتوانست اطمینان پذیری بیشتری را برای نرمافزار به همراه آورد.
چیزی که مهندسان سازنده ثراک25 از آن اطلاع نداشتند این بود که هم این مدل و هم مدل قبلی آن، یعنی ثراک20 از سیستم عاملی استفاده ميکردند که توسط یک برنامهنویس نه چندان حرفهاي سرهم شده بود. در نتیجه، این سیستم عامل از باگ به نسبت مشهوری با عنوان Race Condition رنج ميبرد. این اصطلاح به زمانی گفته ميشود که خروجی سیستم به صورت غیرمنتظره و خطیری به زمان بندی اجرای فرآيند یا رشتههاي پردازشي (thread) مختلف بستگی داشته باشد. به طور خاص در سیستم ثراک25 این باگ باعث ميشد تا تایپیستی با انگشتان سریع بتواند به صورت اتفاقی تنظیمات سیستم را به گونهاي تغییر دهد که سیستم شروع به تابش پرتوی با قدرت بالا كند، در حاليكه فلز هدف اشعه X در موقعیت حفاظتی خود قرار نداشته باشد. به احتمال ميتوانید تصور کنید که بقیه داستان چگونه پیش خواهد رفت!
این باگ به یکی از غم انگیزترین داستانهاي شکست نرم افزارها تبدیل شد. تعداد کشتهها در برخي منابع تا پنج نفر نیز گزارش شده است. دو تن از بیماران در هنگام درمان با این دستگاه سعی کردند در حال جیغ کشیدن و زاری کردن از اتاق فرار کنند. تجربه ثراک 25 باعث شد تا دستگاههای پزشکی با کنترل بیشتری قبل از عرضه مواجه شوند، هر چند که هزینه این پیشرفت بسیار سنگین بود.
5- راز دوشنبه سیاه (1987)
هزینه : 500 میلیارد دلار در یک روز
دوشنبه سیاه اصطلاحی است که به 19 اکتبر 1987 گفته ميشود. یعنی روزی که شاخص صنعتی داو جونز با 508 درجه سقوط 22,6 درصد ارزش کلیاش را از دست داد. شاخص S&P 500 نیز 20,4 درصد سقوط كرد تا به این وسیله وال استریت با یکی از بزرگترین بحرانهاي تاریخش مواجه شود.برنامههاي مبادله کامپیوتری در آن زمان به نسبت مفهومی جدید محسوب ميشدند و عده بسیاری از افراد هنوز اطمینان کافی به این سیستمها نداشتند. با سقوط بازار در روز دوشنبه، بلافاصله بسیاری دلیل اصلی این امر را اشتباه برنامه در تولید تعداد زیادی از دستورات فروش دانستند که باعث شد بازار در هم شكسته (Overwhelm) شده و سیستمها از کار بیفتند. جامعه فعال در زمینه مالی نیز بهدلیل پیشزمینه فکری شان در زمینه استفاده از برنامههاي کامپیوتری به سرعت این دلیل را پذیرفتند. اما مسئله پیچیدهتر از این حرفها بود. در حقيقت، این فاجعه اصلاً از یک باگ کامپیوتری به وجود نیامده بود، بلکه افراد فعال در این زمینه سعی کردند با سپر بلا کردن کامپیوتر، اشتباهات خود را در تنظیم بازار بپوشانند. واقعیت اینجا است که این سیستم شامل راهبردي برای دست و پنجهنرمکردن با بیمههاي پورتفولیو بود و همین راهبرد بود که سقوط بازار را رقم زد. مشتقات بیمه پورتفولیو وابستگی شدیدی به شرایط بازار دارند. به همین دلیل، وقتی شرایط در بورس هنگ کنگ و اروپا بحرانی شد، با باز شدن بازار بورس در ایالاتمتحده این برنامه بنا به راهبرد پيشبيني شده در آن شروع به تولید حجم زیادی از دستورهای فروش كرد و این موضوع باعث شد تا قیمتها به طرز حیرت آوری پایین آید. نکته اصلی اینجا است که این برنامه دقیقاً همانکاری را انجام داد که قرار بود انجام دهد. یکی از ویژگیهایی که در این نرمافزار تعبیه شد، تولید حجم زیادی از درخواستهاي فروش در شرایط فروریختن بازار بود. هر چند که دوشنبه سیاه مشخص کرد این ویژگی، هوشمندانه تنظیم نشده بود، اما به هر سو این مشکلی نیست که بتوان آن را به نرمافزار ارتباط داد. تا جایی که به نرمافزار مبادله مربوط ميشده است، این سیستم کارش را به درستی انجام داده بود. این حادثه شاید مشهورترین باگی باشد که در واقع باگ نبوده است!
6- خطوط AT&T از سرویس دهی خارج ميشوند (1990)
هزینه: 75 میلیون تماس بيپاسخ، 200 هزار رزرو گم شده هواپیما
پانزدهم ژانویه 1990 تنها چند روز پس از آغاز سال نو، هزاران مشتری AT&T در برقراری ارتباط راه دور ناکام ماندند. مشکل اینجا بود که تمام 114 سوییچ ارتباط راه دور شركت به ترتیب در حال Reboot شدن بودند. نخستين فکری که به ذهن مسئولان AT&T رسید این بود که سیستم آنها هک شده است. در نتیجه مأموران اعمال قانون جستوجوی گستردهاي را برای یافتن مجرم یا مجرمان آغاز کردند. اما در نهایت مشخص شد که مشکل باگی در سیستم نرمافزاری جدید این شرکت بود.
نحوه کار این سوییچها به این ترتیب بود که اگر یکی از سوییچها بیش از اندازه دچار ازدحام ميشد پیغامی با مفهوم «مزاحم نشوید» به سوییچ بعدی خود ميفرستاد. بعد از راهاندازی دوباره، سوییچ اول باید به شیوهاي اعلام ميكرد، دوباره آماده انجام کار است. شیوه کار در سیستم قدیمی شرکت AT&T به این حالت بود که این سوییچ به سوییچ بعدی اعلام ميکرد، دوباره آماده فعالیت است و به این ترتیب نقل وانتقال بین آن دو دوباره شروع ميشد.یک ماه پیش از این اتفاق، AT&T با تغییر کد سعی کرد تا آن را سریعتر سازد. مشکل اصلی نیز همینجا آغاز شد، زیرا این سیستم نرمافزاری بیش از حد سرعت بخشیده شد. یکی از تغییرات انجام شده این بود که سوییچ اول دیگر به سوییچ دوم اعلام نمیكرد، آماده انجام کار است، بلکه کار خود را به صورت عادی از سر ميگرفت و تماسها را به سوییچ دوم ميفرستاد. سوییچ دوم با دریافت نخستين تماس از سوییچ اول متوجه ميشد که این سیستم کار خود را از سر گرفته است و همه چیز به خوبی و خوشی پایان ميپذیرفت. اما چیزی که نباید، اتفاق افتاد. سوییچی در شهر نیویورک دچار ازدحام شد و پیغام ازدحام را به سوییچ بعدی فرستاد. پس از راهاندازی دوباره سوییچ نیویورک مانند معمول پیغامها را به سوییچ بعدی ارسال كرد و سوییچ بعدی نیز بنا به تنظیمات گفتهشده در بالا دریافت این پیغام را به نشانه راهاندازی دوباره سوییچ نیویورک پنداشته و سعی ميکرد تا منطق درونیاش را با اعلام این حقیقت که سوییچ نیویورک دوباره آماده کار است Reset كند. اما درست در همین حین، سوییچ نیویورک درخواست تماس دیگری را نیز به این سوییچ ارسال ميکرد و این باعث ميشد تا سیستم نرمافزاری گيج شود و خود را Reset كند. این زنجیره به همین صورت دوباره از سوییچ دوم شروع شده و به سمت سوییچ سوم ميرفت. به این ترتیب، پس از اندکی تمام سوییچها به طور مرتب خود را Reset ميکردند. مشکل به مدت نه ساعت ادامه پیدا کرد و در تمام این مدت مشتریان در برقراری تماسهاي بلندمدت ناکام ماندند. این مشکل به همراه اتفاقات دیگری باعث شد تا ساختار مدیریتی شرکت AT&T دچار تغییراتی عظیم شود.
7- سیستم موشکی Patriot (1991)
هزینه : مرگ 28 سرباز و زخمی شدن 100 تن دیگر
همانطور که تا این جای کار نیز مشاهده کردهاید، برخی از باگها نه تنها اصلاً خنده دار نبوده، بلکه به قیمت جان انسانها تمام شده است. موردی که ارتش امریکا در جنگ اول خلیج فارس تجربه کرد، یکی از این اتفاقات تلخ است. موشک زمین به هوای پاتريوت که از آن به عنوان موشک ضدبالیستیک استفاده ميشود، از جمله ابزارهایی بود که ارتش امریکا از آن برای مهار موشکهای اسکاد عراقیها استفاده ميكرد. مسئله مهم در کارکرد پاتريوت این بود که باید در مدت زمانی بسیار کوتاه پس از به پرواز درآمدن اسکاد، مسیر پرتاب خود را مشخص کرده تا بتواند به موقع اسکاد را منفجر كند. این کاری بود که برعهده یک سیستم کامپیوتری گذاشته شده بود.پاتريوت تقریباً از تمام مأموریتهایش در انهدام اسکاد با سربلندی بیرون آمد، اما 25 فوریه 1991 در پایگاه ارتش ایالاتمتحده در الظهران عربستان سعودی شكستي با هزینهاي سنگین رقم خورد. همانطور که عنوان شد محاسبه مسیر انجام شده توسط پاتريوت وابستگی شدیدی به زمان داشت و به همین دلیل، سابروتینی به سیستم اضافه شد که ميتوانست تبدیل زمان به عددی اعشاری برای انجام محاسبه روی آن را با سرعت بیشتری انجام دهد. اما برنامه نویسان این سیستم فراموش کردند، برای تمام تبدیلهاي لازم زمان به عدد اعشاری از این سابروتین استفاده كنند به همین دلیل، این تبدیل در نقاط مختلف سیستم با تقریبهای متفاوتی انجام ميشد. البته، این موضوع در سیستم کشف شد و به عنوان یک راهحل برای آن تصمیم گرفته شد تا سیستم هر از چندگاهی راهاندازی دوباره شده تا کلاک آن Reset شود. اما متأسفانه معیار دقیقی برای این «هر از چندگاه» وضع نشد. در روز وقوع حادثه، سیستم بیش از 100 ساعت بود که مداوم در حال کار بود و این خطایی یک سوم ثانیهاي را برای آن به وجود ميآورد. در نتیجه، در هنگام حمله وقتی سیستم توانست مسیر درست را برای شلیک تشخیص دهد که اسکاد عراقیها بیش از نیم کیلومتر را طی کرده بود و دیگر توقف آن ممکن نبود. این حادثه باعث شد تا بسیاری از خبرگان این حوزه اشاره كنند که ممکن است ارتش امریکا چندین حادثه از این نوع را در الظهران تجربه کرده باشد، اما فقط یکی از آنها علنی شده باشد. به هر حال، اين خطا باعث شد تا جان 28 سرباز ارتش ایالاتمتحده گرفته شده و مشخص شود نرمافزارها نیز ميتوانند در نقش قاتل ظاهر شوند.
8- پرواز 40 ثانیهاي آریان-5 (1996)
هزینه: 500 میلیون دلار
سفینه آریان5 معادل سازمان فضایی اروپا، برای مارینر1 ناسا بود که از جمله پیشرفتهترین فضاپیماهای بدون سرنشین محسوب ميشد. اما در چهارم ژوئن 1996 مراسم باشکوه پرواز این فضاپیما با مشکل مواجه شد و دوربینها به جای ثبت شروع سفر این اثر پرخرج، متلاشی شدن آن را ثبت كردند. کد به کار رفته در آریان5 در واقع همان کدی بود که در سری قبلی این فضاپیما، یعنی آریان4 به کار رفته بود. مشکل از همین جا آغاز شد. در بخشی از این کد باید یک عدد 64 بیتی اعشاری به یک عدد 16 بیتی صحیح علامتدار تبدیل ميشد. عدد 64 بیتی تولید شده در آریان5 به دلیل استفاده از موتوری سریعتر بزرگ از عددی بود که در آریان4 تولیدميشد. عدم پيشبيني روالي که بتواند سیستم را با این شرایط وفق دهد باعث شد تا یک overflow ساده همه چیز را نابود سازد. البته، پس از خاموش شدن سیستم اول، سیستم ذخیره و اضافی تعبیه شده در فضاپیما شروع به فعالیت کرد، اما مشکل اصلي اين بود که این سیستم نیز از همان الگوریتم استفاده ميکرد و به این ترتیب، سیستم دوم نیز 05/0ثانیه پس از خرابی کامپیوتر اول از کار افتاد.
9- برخورد با مریخ (1998)
هزینه : 125 میلیون دلار
Mars Climate Orbiter کاوشگر فضایی 338 کیلوگرمیاي بود که ناسا برای مطالعه مریخ به فضا فرستاده بود. این فضاپیما از جهات مختلفی با مشکل روبهرو بود. نخست اینکه نامیزان بودن بار مفید آن باعث ميشد تا به هنگام پرواز با مشکلاتی مواجه شود. در ضمن مدیران پروژه در مراحل مختلف ساخت آن جزئیاتی مهم را نادیده گرفته بودند. اما بزرگترین مشکل چیزی بود که شاید کمی به نظر خنده دار آید، اما ضرری 125 میلیون دلاری روی دست ناسا گذاشت. واقعیت اینجا بود که بخشهاي مختلف تیم مهندسی ساخت Mars Climate Orbiter از واحدهای مختلفی برای اندازهگیری استفاده ميکردند. یک گروه از استاندارد انگلیسی پوند نیرو ثانیه استفاده کرده و دیگری از استاندارد اصلی خود ناسا، یعنی نیوتن ثانیه در محاسباتش سود ميبرد. نكته جالب تر این که هیچکس در مدت زمان ساخت این پروژه متوجه این امر نشد. در نتیجه، نرمافزاری که Thruster کاوشگر را کنترل ميکرد، در حالی از واحد انگلیسی استفاده ميکرد که تیمهاي دیگر محاسباتشان را بر حسب واحد متریک انجام داده بودند. در نتیجه بعد از طی سفری 286 روزه، کاوشگر در حال آماده سازی برای چرخش به دور ماه بود، موتور شروع به کار کرد، اما به دلیل بالا بودن نیروی فشار 4,45 برابر اندازه صحيح، خود فضاپیما به درون جو سیاره رفت و نابود شد.
10- درمان مرگ آور سرطان (2000)
هزینه : هشت کشته 20 جراحت شدید
تقریباً پانزده سال پس از حادثه دستگاه ثراک 25 یک ماشین کوبالت60 به کار رفته در انستیتو ملی سرطان پاناما با تشعشع بیش از حد پرتو گاما به بیماران، حادثه مرگبار دیگری را رقم زد. اما تفاوتهايي کلیدی در نحوه رخداد این فاجعه با حادثه سال 1985 وجود داشت.
ماشینهاي کوبالت60 برخلاف ثراک25 که در زمان خود ماشین جدید و پیشرفتهاي محسوب ميشد، کاملاً از رده خارج بودند. همچنین دو تن از تکنیسینهاي انستیتو از کار خود استعفا داده بودند و این باعث ميشد بقیه مجبور باشند تا روزی شانزده ساعت کار كنند تا جوابگوی نیاز بیماران باشند. به این ترتیب، نه تنها سختافزار قدیمی و مستهلک بود، بلکه نیروی فنی مورد نیاز آن نیز وجود نداشت. با اینکه تکنیسینها چندینبار درخواست كردند سخت افزار را بازبيني و بررسي كنند، اما این موضوع از طرف مدیریت انستیتو رد شد. در نهايت در نقطهاي تکنیسینها تصمیم گرفتند تا خود با استفاده از روشی جدید فشار کاری را پایین آورند. روشی که در دفترچه راهنمای دستگاه وجود نداشت. دستگاه کوبالت60 به درمانگر این امکان را ميداد که شکل بلوکهاي حفاظتی را روی صفحهاي بکشد. تکنیسینها مشاهده کردند، ميتوان با کشیدن یک بلوک کلی روی صفحه و سپس ایجاد حفره در درون آن کار رسم بلوکهاي مختلف حفاظتی را سادهتر كنند، اما مسئله اینجا بود که سیستم کوبالت60 دارای باگی بود که باعث ميشد وقتی ترتیب رسم بلوکها متفاوت شود، میزان دوز استفاده شده در تشعشع نیز تغییر کند. این باگی بود که برای مدتها ناشناخته باقی مانده بود، اما این تغییر در شیوه رسم، همه چیز را آشکار ساخت.زمانی که در اواسط سال 2001 ميلادي، Multidata Systems سازنده کوبالت60 توصیه نامهاي را درباره اهمیت ترتیب رسم شکلها روی دستگاه منتشر كرد، دیگر برای بازبینی خیلی دیر شده بود. پزشکانی که از نظر قانونی وظیفه داشتند محاسبات دستگاه را خود بررسي كنند، متهم به قتل شدند.
شبكه
-
3 کاربر روبرو از شما H A D I برای این مطلب مفید تشکر کرده اند:
A L I R E Z A (09-04-2011), Alfi_Sasan (09-05-2011), neo8665 (09-04-2011)
قوانین ارسال
- شما نمیتوانید تاپیک جدید ارسال کنید.
- شما نمیتوانید جوابی ارسال کنید.
- شما نمیتوانید فایل ضمیمه کنید.
- شما نمیتوانید پست ها را ویرایش کنید.
-
قوانین انجمن ها
Bookmarks