আপনার প্রথম Kotlin প্রোগ্রাম লিখুন

এই কোডল্যাবে, আপনি একটি ইন্টারেক্টিভ এডিটর ব্যবহার করে কোটলিন ভাষায় আপনার প্রথম প্রোগ্রাম লিখতে যাচ্ছেন যা আপনি আপনার ব্রাউজার থেকে চালাতে পারেন।

আপনি একটি প্রোগ্রাম [LINK] কে সিস্টেমের কিছু ক্রিয়া সম্পাদনের জন্য নির্দেশাবলীর একটি সিরিজ হিসাবে ভাবতে পারেন। উদাহরণস্বরূপ, আপনি একটি প্রোগ্রাম লিখতে পারেন যা একটি জন্মদিনের কার্ড তৈরি করে। সেই প্রোগ্রামে, আপনি অভিনন্দনমূলক পাঠ্য মুদ্রণের জন্য একটি নির্দেশনা লিখতে পারেন বা কারো জন্ম সাল থেকে তার বয়স গণনা করতে পারেন।

আপনি যেমন অন্য ব্যক্তির সাথে যোগাযোগের জন্য মানুষের ভাষা ব্যবহার করেন, তেমনি আপনি আপনার কম্পিউটারের অপারেটিং সিস্টেমের সাথে যোগাযোগের জন্য একটি প্রোগ্রামিং ভাষা ব্যবহার করেন। সৌভাগ্যবশত, প্রোগ্রামিং ভাষা মানুষের ভাষার তুলনায় কম জটিল এবং বেশ যৌক্তিক!

অ্যান্ড্রয়েড অ্যাপগুলি কোটলিন প্রোগ্রামিং ভাষায় লেখা হয়। Kotlin হল একটি আধুনিক ভাষা যা ডেভেলপারদের দক্ষতার সাথে এবং যতটা সম্ভব কম ত্রুটি সহ কোড লিখতে সাহায্য করার জন্য তৈরি করা হয়েছে৷

একটি অ্যাপ তৈরি করা শেখা এবং একই সাথে প্রোগ্রামিং এর মূল বিষয়গুলো শেখা চ্যালেঞ্জিং হবে, তাই আমরা অ্যাপ তৈরি করার আগে আপনাকে কিছুটা প্রোগ্রামিং দিয়ে শুরু করতে যাচ্ছি। প্রথমে কিছু প্রোগ্রামিং বেসিক নিয়ে স্বাচ্ছন্দ্য বোধ করা শুধুমাত্র অ্যাপ তৈরির দিকে একটি গুরুত্বপূর্ণ পদক্ষেপ নয়, এটি এই কোর্সের পরে আপনার প্রথম অ্যাপ তৈরি করা আরও সহজ করে তুলবে।

কোড এডিটর হল এমন টুল যা আপনাকে কোড লিখতে সাহায্য করে, একইভাবে একটি ওয়ার্ড প্রসেসর (যেমন Google ডক্স) আপনাকে টেক্সট ডকুমেন্ট তৈরি করতে সাহায্য করে। এই কোডল্যাবে, আপনি আপনার ব্রাউজারের মধ্যে একটি ইন্টারেক্টিভ কোটলিন সম্পাদক ব্যবহার করছেন। এর মানে হল অ্যাপ ডেভেলপমেন্টের দিকে আপনার প্রথম পদক্ষেপ নিতে আপনাকে কোনো সফটওয়্যার ইনস্টল করতে হবে না।

পূর্বশর্ত

  • আপনার ওয়েব ব্রাউজারে ইন্টারেক্টিভ ওয়েবসাইট ব্যবহার করুন।

আপনি কি শিখবেন

  • কিভাবে একটি বার্তা প্রদর্শন করে এমন একটি ন্যূনতম কোটলিন প্রোগ্রাম তৈরি, পরিবর্তন, বুঝতে এবং চালানো যায়।

আপনি কি নির্মাণ করবেন

  • কোটলিন প্রোগ্রামিং ভাষার একটি প্রোগ্রাম যা আপনি চালালে একটি বার্তা প্রদর্শন করে।

তুমি কি চাও

  • একটি আধুনিক ওয়েব ব্রাউজার সহ একটি কম্পিউটার, যেমন Chrome এর সর্বশেষ সংস্করণ৷
  • আপনার কম্পিউটারে ইন্টারনেট অ্যাক্সেস।

এই কাজটিতে, আপনি এখনই কোটলিন ভাষায় প্রোগ্রামিং শুরু করার জন্য একটি ওয়েবসাইটে একজন সম্পাদক ব্যবহার করবেন।

একটি ইন্টারেক্টিভ কোড এডিটর ব্যবহার করুন

আপনার কম্পিউটারে সফ্টওয়্যার ইনস্টল করার পরিবর্তে, আপনি আপনার প্রথম প্রোগ্রাম তৈরি করতে একটি ওয়েব-ভিত্তিক টুল ব্যবহার করতে পারেন।

  1. আপনার ব্রাউজারে, https://try.kotlinlang.org/ খুলুন। এটি একটি ব্রাউজার-ভিত্তিক প্রোগ্রামিং টুল খোলে।
  2. আপনি নীচের স্ক্রিনশটের মতো একটি পৃষ্ঠা দেখতে পাবেন, বামদিকে ফাইলগুলির একটি তালিকা এবং ডানদিকে একটি সম্পাদক। আপনি কুকি নীতি তথ্য সহ নীচের ডানদিকে একটি কালো বাক্স দেখতে পারেন।

সতর্কতা: আপনি যদি এই সাইটের কুকি নীতির সাথে ঠিক না থাকেন, তাহলে এগিয়ে যাবেন না।

  1. এটি বন্ধ করতে কালো পপআপ বক্সের উপরের বাম কোণে X এ ক্লিক করুন।
  1. এই সম্পাদকের সাথে নিজেকে অভিমুখী করার জন্য একটি রেফারেন্স হিসাবে নীচের টীকাযুক্ত স্ক্রিনশটটি অনুসরণ করুন৷

  • (1) শিখুন , সম্প্রদায় , এবং শীর্ষে অনলাইন ট্যাব ব্যবহার করে দেখুন৷ অনলাইনে চেষ্টা করুন ট্যাবে ক্লিক করুন, যদি এটি ইতিমধ্যে নির্বাচিত না থাকে।
  • (2) বাম দিকের ফলকে ফাইল এক্সপ্লোরার ৷ এই তালিকার প্রতিটি ফোল্ডারে কোটলিন শেখার জন্য একটি ছোট, স্বতন্ত্র উদাহরণ রয়েছে।
  • (3) ডান ফলকে সম্পাদক হল যেখানে আপনি কোড লেখার বেশিরভাগ কাজ করবেন।

এই ওয়েব-ভিত্তিক কোড এডিটরটিতে আরও অনেক বৈশিষ্ট্য রয়েছে, তবে শুরু করার জন্য এইগুলি আপনাকে জানতে হবে।

নমুনা কোড খুলুন

  1. ফাইল এক্সপ্লোরারে, যদি এটি ইতিমধ্যে নির্বাচিত না থাকে, তাহলে উদাহরণ > হ্যালো, ওয়ার্ল্ড! > সহজতম সংস্করণ > SimplestVersion.kt (নীচের স্ক্রিনশটে 1টি)।
  2. SimplestVersion.kt ফাইলের নামটিতে , .kt ফাইল এক্সটেনশনটি লক্ষ্য করুন (নীচের স্ক্রিনশটে 1 দেখুন)। ছবির যেমন একটি .jpg বা .png এক্সটেনশন থাকে এবং PDF-এর একটি .pdf এক্সটেনশন থাকে, সমস্ত Kotlin ফাইলের .kt এক্সটেনশন থাকতে হবে।
  3. সম্পাদকের কোডটি লক্ষ্য করুন (নীচের স্ক্রিনশটে 2)। কিছু কোড হাইলাইট করা হয়. এই কোড আপনি কাজ করা হবে.

এটি সম্পাদকে হাইলাইট করা প্রোগ্রাম কোড:

fun main(args: Array<String>) {
    println("Hello, world!")
}

প্রোগ্রাম কোড চালান

আপনার তৈরি করা একটি প্রোগ্রাম চালানো আপনার কম্পিউটারে একটি ওয়ার্ড প্রসেসরের মতো একটি প্রোগ্রাম চালানোর চেয়ে আলাদা নয়। পার্থক্য হল যে আপনি যখন একটি কাজ সম্পন্ন করার জন্য একটি প্রোগ্রাম চালান, বা একটি গেম খেলবেন, তখন আপনি প্রাথমিকভাবে সেই প্রোগ্রামটি আপনার জন্য কী করতে পারে তা নিয়ে চিন্তা করেন এবং এটিকে কাজ করে এমন কোড নিয়ে আপনি নিজেকে উদ্বিগ্ন করেন না৷ আপনি যখন প্রোগ্রামিং করছেন, তখন আপনি আসল কোড দেখতে পাবেন এবং কাজ করতে পারবেন যা জাদু ঘটায়।

এই প্রোগ্রাম কি করে দেখা যাক!

  1. সম্পাদকে, উপরের-ডান কোণায়, সবুজ ত্রিভুজটি খুঁজুন এবং প্রোগ্রাম চালানোর জন্য এটি ক্লিক করুন.

  1. যদি প্রয়োজন হয়, পৃষ্ঠায় নীচে স্ক্রোল করুন যতক্ষণ না আপনি সম্পাদকের নীচের অংশটি দেখতে পান (নীচের স্ক্রিনশটে 1টি)।

  1. কনসোল ট্যাবে ক্লিক করুন। কনসোল এমন একটি জায়গা যেখানে প্রোগ্রামগুলি পাঠ্য আউটপুট মুদ্রণ করতে পারে।

  1. লক্ষ্য করুন Hello, world! উপরের স্ক্রিনশটের মতো কনসোল প্যানে মুদ্রিত। সুতরাং এখন আপনি জানেন যে এই প্রোগ্রামটি কী করে: এটি কনসোল উইন্ডোতে একটি হ্যালো ওয়ার্ল্ড মেসেজ প্রিন্ট করে বা আউটপুট দেয়।
  2. যে উপরে মুদ্রিত লক্ষ্য করুন Hello, world! একটি বার্তা Compilation complete successfullyসংকলন এমন একটি প্রক্রিয়া যা কোটলিন প্রোগ্রাম কোডকে একটি ফর্মে অনুবাদ করে যা সিস্টেমটি চালাতে পারে। যদি কম্পাইলেশন সফলভাবে সম্পন্ন হয়, তাহলে প্রোগ্রামে এমন কোন ত্রুটি থাকবে না যা এটিকে চলা থেকে বিরত রাখবে।

একটি প্রোগ্রামের অংশ

এখন আপনি এই প্রোগ্রামটি কী করে তা দেখেছেন, এটি কীভাবে করে তা আপনার প্রথম নজর দিন।

  1. সম্পাদকের প্রোগ্রামটি দেখুন।
  2. কিভাবে এই কোড দুটি স্বতন্ত্র বিভাগ আছে লক্ষ্য করুন.

প্রোগ্রামের শীর্ষ অংশ:

/**
 * We declare a package-level function main which returns Unit and takes
 * an Array of strings as a parameter. Note that semicolons are optional.
 */

উপরের কোড স্নিপেটে, আপনি এই চিহ্নগুলির ভিতরে পাঠ্য দেখতে পারেন: /* এবং */.

এর মানে এটি একটি মন্তব্য, অর্থাৎ, অন্যান্য বিকাশকারীদের জন্য তথ্য সহ একটি বার্তা৷ আপনি যখন প্রোগ্রামটি চালান, এই মন্তব্যটি সিস্টেম দ্বারা উপেক্ষা করা হয়। আপাতত, আপনি এই মন্তব্যটিকেও উপেক্ষা করতে পারেন! আপনি পরবর্তী কোডল্যাবে মন্তব্য সম্পর্কে আরও শিখবেন।

প্রোগ্রামের নীচের অংশ:

fun main(args: Array<String>) {
    println("Hello, world!")
}

কোডের এই তিনটি লাইন হল আসল প্রোগ্রাম যা মেসেজ চালায় এবং প্রিন্ট করে।

হ্যালো ওয়ার্ল্ড কোড পরিবর্তন করুন

এর প্রোগ্রাম পরিবর্তন করা যাক এটা একটু ভিন্ন কিছু করতে.

  1. পরিবর্তন করুন "Hello, world!" টেক্সট বলতে "Happy Birthday!" .
  2. সবুজ রান বোতামে ক্লিক করে আপনার প্রোগ্রাম চালান উপরের ডানদিকে।
  3. কনসোলে , আপনার এখন Happy Birthday! মুদ্রিত, নীচের স্ক্রিনশট হিসাবে দেখানো হয়েছে.

এটা কিভাবে কাজ করে?

এটা কিভাবে করা হয়? এটা শুধু কিছু প্রিন্ট করার জন্য অনেক কোড মত মনে হচ্ছে!

ওয়েল, যদি আপনি একটি বন্ধু লিখতে চান "হ্যালো, বিশ্ব!" কাগজের টুকরোতে, অনেক উহ্য তথ্য রয়েছে। আপনি যদি শুধু তাদের বলেন, "লিখুন 'হ্যালো ওয়ার্ল্ড!' এই কাগজের টুকরোতে", তারা আপনার ছেড়ে দেওয়া তথ্য সম্পর্কে অনুমান করতে যাচ্ছে। উদাহরণস্বরূপ, তারা অনুমান করতে যাচ্ছে যে তাদের একটি কলম ব্যবহার করতে হবে এবং আপনি চান যে তারা অক্ষর ব্যবহার করে এটি লিখুক! কম্পিউটার এই অনুমানগুলি করে না, তাই আপনাকে সুনির্দিষ্ট নির্দেশনা দিতে হবে যাতে প্রতিটি পদক্ষেপ অন্তর্ভুক্ত থাকে।

ইংরেজি ভাষার যেমন কাঠামো আছে, তেমনি একটি প্রোগ্রামিং ভাষাও আছে। আপনি যদি কখনও অন্য ভাষা শিখে থাকেন তবে আপনি ব্যাকরণ, বানান, সম্ভবত একটি নতুন বর্ণমালা এবং শব্দভাণ্ডার শেখার চ্যালেঞ্জ জানেন। প্রোগ্রাম শেখার একই রকম চ্যালেঞ্জ রয়েছে, কিন্তু সৌভাগ্যবশত, এটি শেখার চেয়ে কম জটিল এবং অনেক বেশি যৌক্তিক, উদাহরণস্বরূপ ইংরেজি।

প্রোগ্রামের অংশগুলি বুঝুন

এখন, কোডটি একবার দেখুন। এই প্রোগ্রামের প্রতিটি অংশ একটি নির্দিষ্ট উদ্দেশ্য পরিবেশন করে, এবং প্রোগ্রামটি চালানোর জন্য আপনার সমস্ত টুকরা প্রয়োজন। প্রথম শব্দ দিয়ে শুরু করা যাক।

fun
  • fun কোটলিন প্রোগ্রামিং ভাষার একটি শব্দ। fun ফাংশন জন্য দাঁড়িয়েছে. একটি ফাংশন একটি প্রোগ্রামের একটি বিভাগ যা একটি নির্দিষ্ট কাজ সম্পাদন করে।
fun main
  • main এই ফাংশনের নাম। ফাংশনের নাম আছে, তাই তাদের একে অপরের থেকে আলাদা করা যায়। এই ফাংশনটিকে main বলা হয়, কারণ এটি প্রথম বা প্রধান ফাংশন যা আপনি যখন প্রোগ্রাম চালান তখন বলা হয়। প্রতিটি কোটলিন প্রোগ্রামের main নামে একটি ফাংশন প্রয়োজন।
fun main()
  • ফাংশনের নাম সর্বদা () দুটি বন্ধনী দ্বারা অনুসরণ করা হয়।
fun main(args: Array<String>)
  • বন্ধনীর ভিতরে, আপনি ফাংশনটি ব্যবহারের জন্য তথ্য রাখতে পারেন। ফাংশনের এই args "আর্গুমেন্টস" বা সংক্ষেপে আর্গস বলা হয়। আপনি পরে আর্গুমেন্ট সম্পর্কে আরও শিখবেন। আপনাকে কেবল জানতে হবে যে main ফাংশনে সর্বদা এই একই যুক্তি থাকে।
fun main(args: Array<String>) {}
  • আর্গুমেন্টের পরে কোঁকড়া ধনুর্বন্ধনী জোড়া লক্ষ্য করুন। একটি ফাংশনের ভিতরে কোড থাকে যা একটি কাজ সম্পন্ন করে। এই কোঁকড়া ধনুর্বন্ধনী কোডের সেই লাইনগুলিকে ঘিরে।

কোঁকড়া ধনুর্বন্ধনীর মধ্যে কোডের লাইনটি দেখুন:

println("Happy Birthday!")

কোডের এই লাইন Happy Birthday! পাঠ্য

  • println সিস্টেমকে পাঠ্যের একটি লাইন মুদ্রণ করতে বলে।
  • বন্ধনীর ভিতরে আপনি প্রিন্ট করার জন্য টেক্সট রাখুন।
  • লক্ষ্য করুন যে টেক্সট প্রিন্ট করা হবে উদ্ধৃতি দ্বারা বেষ্টিত হয়. এটি সিস্টেমকে বলে যে উদ্ধৃতি চিহ্নের ভিতরে যা দেওয়া হয়েছে ঠিক সেভাবে মুদ্রণ করা উচিত।

প্রকৃতপক্ষে টেক্সট প্রিন্ট করার জন্য, এই সম্পূর্ণ println নির্দেশটি main ফাংশনের ভিতরে থাকতে হবে।

সুতরাং, এটা আছে. ক্ষুদ্রতম কোটলিন প্রোগ্রাম।

fun main(args: Array<String>) {
    println("Happy Birthday!")
}

দারূন কাজ! আপনি println() function ব্যবহার করে পাঠ্যের একটি লাইন মুদ্রণ করেছেন। যাইহোক, আপনি একটি ফাংশনের ভিতরে নির্দেশাবলীর যতগুলি লাইন রাখতে চান বা একটি কাজ সম্পন্ন করতে চান।

  1. লাইন println("Happy Birthday!") অনুলিপি করুন এবং এটির নীচে আরও দুইবার পেস্ট করুন। নিশ্চিত করুন যে আপনার পেস্ট করা লাইনগুলি main ফাংশনের কোঁকড়া ধনুর্বন্ধনীর ভিতরে রয়েছে।
  2. একটি টেক্সট পরিবর্তন করে কারো নামে ছাপা হবে, বলুন "ঝাঁসি"।
  3. প্রিন্ট করার জন্য অন্য টেক্সট পরিবর্তন করুন "You are 25!"

আপনার কোড নিচের কোডের মত দেখতে হবে।

fun main(args: Array<String>) {
    println("Happy Birthday!")
    println("Jhansi")
    println("You are 25!")
}

আপনি কি আশা করবেন এই কোড যখন এটি চলে?

  1. এটি কি করে তা দেখতে আপনার প্রোগ্রামটি চালান।
  2. কনসোল উইন্ডোতে যান, এবং নীচের স্ক্রিনশটে দেখানো হিসাবে আপনি কনসোল উইন্ডোতে 3টি লাইন মুদ্রিত দেখতে পাবেন।

চমৎকার কাজ!

ত্রুটি মোকাবেলা

প্রোগ্রামিং করার সময় ভুল করা স্বাভাবিক, এবং বেশিরভাগ টুল আপনাকে ভুল ঠিক করতে সাহায্য করার জন্য মতামত দেবে। এই ধাপে, কি ঘটে তা দেখতে একটি ভুল তৈরি করুন।

  1. আপনার প্রোগ্রামে, Jhansi পাঠ্যের চারপাশের উদ্ধৃতিগুলি সরিয়ে ফেলুন, যাতে সেই লাইনটি নীচের মতো দেখায়।
println(Jhansi)
  1. আপনার প্রোগ্রাম চালান. আপনি লাল রঙে মুদ্রিত Jhansi দেখতে পাবেন এবং কোডের 8 নম্বর লাইনের পাশে একটি বিস্ময় চিহ্ন দেখতে পাবেন, যেখানে একটি ত্রুটি রয়েছে তা দেখাতে।

  1. কনসোল দেখতে নিচে স্ক্রোল করুন।
  2. সমস্যা ভিউ ট্যাবটি নির্বাচন করুন, যদি এটি নির্বাচিত না হয়।
  3. সমস্যা ভিউ ট্যাবে দেখুন। এটি একই বিস্ময়বোধক চিহ্ন আইকন এবং Error শব্দের সাথে একটি বার্তা দেখায়। নিম্নলিখিতটি হল আপনার কোডের ত্রুটির বর্ণনা।

  1. সংখ্যার জন্য দেখুন (8, 12). এই সংখ্যাগুলি কোডের লাইন নির্দেশ করে যেখানে ত্রুটি ঘটে, লাইন 8, এবং সেই লাইনে অক্ষরের অবস্থান যেখানে ত্রুটি শুরু হয়, যা 12
  2. পরবর্তী, আপনি একটি বার্তা দেখতে পারেন, Unresolved reference: Jhansi । এই বার্তাটি আপনাকে বলে যে সিস্টেম কী মনে করে কোডের ত্রুটি৷ এমনকি যদি আপনি না জানেন যে ত্রুটি বার্তাটির অর্থ কী, আপনি কি ভুল তা বের করতে সক্ষম হতে পারেন৷ এই ক্ষেত্রে, আপনি জানেন যে println() নির্দেশ টেক্সট প্রিন্ট করে। আপনি আগে শিখেছেন যে পাঠ্যটি উদ্ধৃতির মধ্যে হতে হবে। যদি পাঠ্যটি উদ্ধৃত না হয় তবে এটি একটি ত্রুটি।
  3. এগিয়ে যান এবং আবার উদ্ধৃতি যোগ করুন.
  4. এটি আবার কাজ করে তা নিশ্চিত করতে আপনার প্রোগ্রাম চালান।

অভিনন্দন, আপনি আপনার প্রথম কোটলিন প্রোগ্রামটি চালিয়েছেন এবং পরিবর্তন করেছেন!

এই কোডল্যাবে আপনি যে প্রোগ্রামে কাজ করেছেন তার সম্পূর্ণ কোড এটি।

  • https://try.kotlinlang.org/ ওয়েবে একটি ইন্টারেক্টিভ কোড এডিটর যেখানে আপনি কোটলিন প্রোগ্রাম লেখার অনুশীলন করতে পারেন।
  • সমস্ত কোটলিন প্রোগ্রামের একটি main() ফাংশন থাকতে হবে: fun main(args: Array<String>) {}
  • টেক্সটের একটি লাইন প্রিন্ট করতে println() ফাংশন ব্যবহার করুন।
  • আপনি ডবল উদ্ধৃতি মধ্যে মুদ্রণ করতে চান পাঠ্য রাখুন. উদাহরণস্বরূপ "Hello"
  • টেক্সটের একাধিক লাইন প্রিন্ট করতে println() নির্দেশের পুনরাবৃত্তি করুন।
  • প্রোগ্রামে ত্রুটিগুলি লাল চিহ্নিত করা হয়েছে। সমস্যা ভিউ ট্যাবে একটি ত্রুটি বার্তা রয়েছে যেখানে ত্রুটিটি কোথায় এবং এটির কারণ কী হতে পারে তা নির্ধারণ করতে আপনাকে সহায়তা করতে।

এই কোডল্যাবটি অ্যান্ড্রয়েড বেসিক ইন কোটলিন কোর্সের অংশ।

নিম্নলিখিতগুলি করুন:

  1. println() নির্দেশাবলী print() করতে পরিবর্তন করুন।
  2. আপনার প্রোগ্রাম চালান. কি ঘটেছে?

ইঙ্গিত: print() নির্দেশ প্রতিটি স্ট্রিংয়ের শেষে একটি লাইন বিরতি যোগ না করে পাঠ্যটি প্রিন্ট করে।

  1. পাঠ্যটি ঠিক করুন যাতে বার্তাটির প্রতিটি অংশ তার নিজস্ব লাইনে থাকে।

ইঙ্গিত: একটি লাইন বিরতি যোগ করতে পাঠ্যের ভিতরে \n ব্যবহার করুন। উদাহরণস্বরূপ, "line \n break" । একটি লাইন বিরতি যোগ করা আউটপুট পরিবর্তন করে যেমন নীচে দেখানো হয়েছে।

ইঙ্গিত: আপনি কোন পাঠ্য সরবরাহ করে একটি খালি লাইন মুদ্রণ করতে পারেন: println("")

কোড:

fun main(args: Array<String>) {
    println("no line break")
    println("")
    println("with line \n break")
}

আউটপুট:

নিজের কাজের খোজ নাও:

এখানে একটি সম্ভাব্য সমাধান:

fun main(args: Array<String>) {
    print("Happy Birthday!\n")
    print("Jhansi\n")
    print("You are 25!")
}