Skip to main content
0

āđƒāļ™āļ›āļąāļˆāļˆāļļāļšāļąāļ™āļĄāļĩ Framework āļŦāļĨāļēāļĒāļ•āļąāļ§āļ–āļđāļāļŠāļĢāđ‰āļēāļ‡āļ‚āļķāđ‰āļ™āļĄāļēāđ€āļžāļ·āđˆāļ­āļŠāđˆāļ§āļĒāđƒāļ™āļāļēāļĢāļžāļąāļ’āļ™āļēāļ‹āļ­āļŸāļ•āđŒāđāļ§āļĢāđŒ āļŦāļ™āļķāđˆāļ‡āđƒāļ™ Framework āļ—āļĩāđˆāļāļģāļĨāļąāļ‡āļĄāļēāđāļĢāļ‡āđƒāļ™āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡ API āļāđ‡āļ„āļ·āļ­ “ElysiaJS” āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™ Opensource āļžāļąāļ’āļ™āļēāđ‚āļ”āļĒāļ„āļļāļ“āļ­āļ­āļĄ SaltyAom āļ™āļąāđˆāļ™āđ€āļ­āļ‡āļ„āļĢāļąāļš

ElysiaJS āļ„āļ·āļ­āļ­āļ°āđ„āļĢ

āļ‚āļ­āļšāļ„āļļāļ“ āļ āļēāļžāļˆāļēāļ ElysiaJS

ElysiaJS āļ„āļ·āļ­ Framework āđƒāļ™āļāļēāļĢāļžāļąāļ’āļ™āļē API āļ”āđ‰āļ§āļĒāļ āļēāļĐāļē Typescript āđ‚āļ”āļĒāļĄāļĩāļˆāļļāļ”āđ€āļ”āđˆāļ™āļ„āļ·āļ­ āļ„āļ§āļēāļĄāđ€āļĢāđ‡āļ§āļ—āļĩāđˆāđ€āļĢāđ‡āļ§āļāļ§āđˆāļē Express āļ–āļķāļ‡ 21 āđ€āļ—āđˆāļē (āđ€āļžāļĢāļēāļ° ElysiaJS āļĄāļĩāļāļēāļĢāđƒāļŠāđ‰ Bun āđ€āļ›āđ‡āļ™ Runtime) āđāļĨāļ°āļ­āļĩāļāļˆāļļāļ”āđ€āļ”āđˆāļ™āļ„āļ·āļ­ End-to-end Type Safety āļŦāļĢāļ·āļ­āļŠāļ™āļīāļ”āļ‚āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļŠāļąāļ”āđ€āļˆāļ™ āļ—āļģāđƒāļŦāđ‰āđ€āļ§āļĨāļēāđ€āļĢāļēāļ—āļģāļ‡āļēāļ™āļĢāđˆāļ§āļĄāļāļąāļšāļœāļđāđ‰āļ­āļ·āđˆāļ™āļŠāļēāļĄāļēāļĢāļ–āļ—āļģāđ„āļ”āđ‰āļŠāļ°āļ”āļ§āļāļĄāļēāļāļĒāļīāđˆāļ‡āļ‚āļķāđ‰āļ™ āđ€āļžāļĢāļēāļ°āđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āļĄāļēāļ—āļ°āđ€āļĨāļēāļ°āļāļąāļ™āđ€āļĢāļ·āđˆāļ­āļ‡āļŠāļ™āļīāļ”āļ‚āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļŠāđˆāļ‡āđƒāļŦāđ‰āļāļąāļ™ āļ­āļĩāļāļ—āļąāđ‰āļ‡āļĒāļąāļ‡āļĄāļĩ Community āļ—āļĩāđˆāđ€āļ•āļīāļšāđ‚āļ•āđ€āļĢāđ‡āļ§āļ—āļģāđƒāļŦāđ‰āļĄāļĩāļ„āļ™āļ„āļ­āļĒāļ‹āļąāļžāļžāļ­āļĢāđŒāļ•āđ€āļĒāļ­āļ°

āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļĨāļ‡āļĄāļ·āļ­āļŠāļĢāđ‰āļēāļ‡āđ‚āļ›āļĢāđ€āļˆāđ‡āļ„āļ”āđ‰āļ§āļĒ Elysia

āđƒāļ™āļšāļ—āļ„āļ§āļēāļĄāļ™āļĩāđ‰āđ€āļĢāļēāļˆāļ°āļĄāļēāļĨāļ­āļ‡āļ—āļģ API āđ€āļšāļ·āđ‰āļ­āļ‡āļ•āđ‰āļ™āļ”āđ‰āļ§āļĒ Elysia āļāļąāļ™āļ„āļĢāļąāļš āđ‚āļ”āļĒāļˆāļ°āļŠāļĢāđ‰āļēāļ‡āđ€āļ›āđ‡āļ™ API āļĢāđ‰āļēāļ™āļŦāļ™āļąāļ‡āļŠāļ·āļ­ āđ‚āļ”āļĒāļĄāļĩāļ‚āđ‰āļ­āļĄāļđāļĨāđāļšāļš JavaScript Object

1. āļ—āļģāļāļēāļĢāļ•āļīāļ”āļ•āļąāđ‰āļ‡ Bun āļĨāļ‡āļšāļ™āđ€āļ„āļĢāļ·āđˆāļ­āļ‡ (āđ‚āļ”āļĒāļ›āļąāļˆāļˆāļļāļšāļąāļ™ Bun āđ„āļ”āđ‰āļ­āļ­āļāđ€āļ§āļ­āļĢāđŒāļŠāļąāđˆāļ™ 1.1 āļ‹āļķāđˆāļ‡āļĢāļ­āļ‡āļĢāļąāļšāļĢāļ°āļšāļšāļ›āļāļīāļšāļąāļ•āļīāļāļēāļĢ Windows āđāļĨāđ‰āļ§) āđ‚āļ”āļĒāļ—āļļāļāļ—āđˆāļēāļ™āļŠāļēāļĄāļēāļĢāļ–āđ€āļ‚āđ‰āļēāđ„āļ›āļ­āđˆāļēāļ™ Docs āļ§āļīāļ˜āļĩāļāļēāļĢāļ•āļīāļ”āļ•āļąāđ‰āļ‡ Bun āđ„āļ”āđ‰āļ•āļēāļĄāļĨāļīāđ‰āļ‡āļ„āđŒāļ™āļĩāđ‰āđ€āļĨāļĒāļ„āļĢāļąāļš āđ‚āļ”āļĒāļŠāđˆāļ§āļ™āļ•āļąāļ§āļœāļĄāļˆāļ°āđƒāļŠāđ‰āđ€āļ›āđ‡āļ™āļ§āļīāļ™āđ‚āļ”āļ§āđŒāļ™āļ°āļ„āļĢāļąāļš āļāđ‡āļžāļīāļĄāļžāđŒāļ„āļģāļŠāļąāđˆāļ‡āđƒāļ™ Terminal āļ•āļąāļ§āđ€āļ­āļ‡āļ•āļēāļĄāļ™āļĩāđ‰

powershell -c "irm bun.sh/install.ps1 | iex"

2. āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļŠāļĢāđ‰āļēāļ‡āđ‚āļŸāļĨāđ€āļ”āļ­āļĢāđŒāļŠāļ·āđˆāļ­ app āđ‚āļ”āļĒāđƒāļŠāđ‰āļ„āļģāļŠāļąāđˆāļ‡āļšāļ™ Terminal āļ‚āļ­āļ‡āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āđ€āļĢāļē

bun create elysia demo-elysia

3. āđ€āļ›āļīāļ”āđ‚āļŸāļĨāđ€āļ”āļ­āļĢāđŒāļ‚āļ­āļ‡āđ€āļĢāļēāļ”āđ‰āļ§āļĒ VSCode āļŦāļĢāļ·āļ­ Text Editor āļ•āļąāļ§āļ­āļ·āđˆāļ™ āļˆāļ°āļŠāļąāļ‡āđ€āļāļ•āļ§āđˆāļēāđ„āļŸāļĨāđŒāļˆāļ°āđ€āļ›āđ‡āļ™āđāļšāļšāļ™āļĩāđ‰āļ„āļĢāļąāļš

4. āļ—āļ”āļĨāļ­āļ‡āļĢāļąāļ™āđ€āļ‹āļīāļŸāđ€āļ§āļ­āļĢāđŒ ElysiaJS āļ”āđ‰āļ§āļĒāļ„āļģāļŠāļąāđˆāļ‡

bun run dev

āļŦāļĄāļēāļĒāđ€āļŦāļ•āļļ : āđƒāļ™āļāļĢāļ“āļĩāļ—āļĩāđˆāđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āļĢāļąāļ™āđ„āļ”āđ‰ āđƒāļŦāđ‰āļ—āļģāļāļēāļĢāļžāļīāļĄāļžāđŒāļ„āļģāļŠāļąāđˆāļ‡ bun install elysia āļāđˆāļ­āļ™āļĢāļąāļ™āļ„āļĢāļąāļš

āđ€āļĄāļ·āđˆāļ­āļĨāļ­āļ‡āđ€āļ›āļīāļ”āđ€āļšāļĢāļēāļ§āđŒāđ€āļ‹āļ­āļĢāđŒāļŦāļĢāļ·āļ­āļĒāļīāļ‡ Postman āđ„āļ›āļ—āļĩāđˆ localhost:3000 āļˆāļ°āļ‚āļķāđ‰āļ™āđāļšāļšāļ™āļĩāđ‰āļ„āļĢāļąāļš

5. āđ€āļĢāļēāļĨāļ­āļ‡āļĄāļēāļ”āļđāđ„āļŸāļĨāđŒ index.ts āļ—āļĩāđˆāļ­āļĒāļđāđˆāđƒāļ™āđ‚āļŸāļĨāđ€āļ”āļ­āļĢāđŒ src āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™āđ„āļŸāļĨāđŒāļ—āļĩāđˆāļāļģāļŦāļ™āļ” Endpoints āļ‚āļ­āļ‡

āļˆāļēāļāđ‚āļ„āđ‰āļ”āļ”āđ‰āļēāļ™āļˆāļ°āđ€āļ›āđ‡āļ™ Template āļ‚āļ­āļ‡ Back-end Server āļˆāļēāļ ElysiaJS āđ‚āļ”āļĒāļšāļĢāļĢāļ—āļąāļ”āļ—āļĩāđˆ 4 āļĄāļĩāļāļēāļĢāļ›āļĢāļ°āļāļēāļĻ API Endpoint āđ€āļ›āđ‡āļ™ GET Method āļ—āļĩāđˆ Path āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™ āđāļĨāļ°āļšāļĢāļĢāļ—āļąāļ”āļ—āļĩāđˆ 5 āđ€āļ›āđ‡āļ™āļāļēāļĢāļāļģāļŦāļ™āļ” Port āļ‚āļ­āļ‡āđ€āļ‹āļīāļŸāđ€āļ§āļ­āļĢāđŒāđ€āļ›āđ‡āļ™ 3000

6. āđ€āļĢāļīāđˆāļĄāļŠāļĢāđ‰āļēāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ‚āļ­āļ‡ API āļĢāđ‰āļēāļ™āļŦāļ™āļąāļ‡āļŠāļ·āļ­āđ‚āļ”āļĒāļŠāļĢāđ‰āļēāļ‡ Object āļ‚āļ­āļ‡āļŦāļ™āļąāļ‡āļŠāļ·āļ­āļ›āļĢāļ°āļāļ­āļšāļ”āđ‰āļ§āļĒāļŠāļ·āđˆāļ­āļŦāļ™āļąāļ‡āļŠāļ·āļ­, āļĢāļēāļ„āļē āđāļĨāļ°āđ„āļ­āļ”āļĩāļ‚āļ­āļ‡āļŦāļ™āļąāļ‡āļŠāļ·āļ­ āļˆāļēāļāļ™āļąāđ‰āļ™āļ—āļģāļāļēāļĢāļˆāļģāļĨāļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ‚āļķāđ‰āļ™āļĄāļē (āđƒāļŦāđ‰āđ€āļ‚āļĩāļĒāļ™āđ‚āļ„āđ‰āļ”āļ™āļĩāđ‰āļ­āļĒāļđāđˆāđƒāļ™āļŠāđˆāļ§āļ™āļāđˆāļ­āļ™āļ—āļĩāđˆāļˆāļ°āļ–āļķāļ‡ āļšāļĢāļĢāļ—āļąāļ”āļ›āļĢāļ°āļāļēāļĻ app āļ™āļ°āļ„āļĢāļąāļš)

7. āļ—āļģāļāļēāļĢāđ€āļžāļīāđˆāļĄ Endpoint āļ—āļĩāđˆāđ€āļ›āđ‡āļ™ GET “/books” āđ€āļžāļ·āđˆāļ­āđāļŠāļ”āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļĢāļēāļĒāļāļēāļĢāļŦāļ™āļąāļ‡āļŠāļ·āļ­āļ—āļąāđ‰āļ‡āļŦāļĄāļ”

āļˆāļēāļāđ‚āļ„āđ‰āļ”āļ”āđ‰āļēāļ™āļšāļ™āđ€āļĢāļēāļˆāļ°āđ€āļžāļīāđˆāļĄāđƒāļ™āļŠāđˆāļ§āļ™āļ‚āļ­āļ‡ GET āđ„āļ›āļ—āļĩāđˆ Path /books āļ—āļĩāđˆāļšāļĢāļĢāļ—āļąāļ” 3 āđƒāļ™āļĢāļđāļ› āđāļĨāđ‰āļ§ Response āļāļĨāļąāļšāđ„āļ›āđ€āļ›āđ‡āļ™ List āļ‚āļ­āļ‡āļŦāļ™āļąāļ‡āļŠāļ·āļ­āļ—āļĩāđˆāđ€āļĢāļēāļ›āļĢāļ°āļāļēāļĻāļ‚āļķāđ‰āļ™āļĄāļē āđƒāļ™āļĢāļđāļ›āđāļšāļš JSON

āļ—āļ”āļĨāļ­āļ‡āļĒāļīāļ‡ API āļ”āđ‰āļ§āļĒ Postman āļāđ‡āļˆāļ°āđāļŠāļ”āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđāļšāļšāļ™āļĩāđ‰āļ­āļ­āļāļĄāļēāļ„āļĢāļąāļš

8. āđ€āļĢāļēāļˆāļ°āļĨāļ­āļ‡āđ€āļžāļīāđˆāļĄ POST Method āđ€āļžāļ·āđˆāļ­āļĨāļ­āļ‡āļŠāļĢāđ‰āļēāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļŦāļĄāđˆāđāļĨāđ‰āļ§āđƒāļŠāđˆāđ€āļ‚āđ‰āļēāđ„āļ›āđƒāļ™ List āļ‚āļ­āļ‡āļŦāļ™āļąāļ‡āļŠāļ·āļ­āđ‚āļ”āļĒāđ€āļ‚āļĩāļĒāļ™āđ‚āļ„āđ‰āļ”āļ•āđˆāļ­āļˆāļēāļāļ”āđ‰āļēāļ™āļšāļ™āđ€āļ›āđ‡āļ™āļ”āļąāļ‡āļ™āļĩāđ‰āļ„āļĢāļąāļš

āļˆāļēāļāđ‚āļ„āđ‰āļ”āļ”āđ‰āļēāļ™āļšāļ™āļšāļĢāļĢāļ—āļąāļ”āļ—āļĩāđˆ 4-9 āļˆāļ°āđ€āļ›āđ‡āļ™ Endpoint āļ‚āļ­āļ‡ POST Method āļ‹āļķāđˆāļ‡āđ€āļĢāļēāļˆāļ°āļĢāļąāļšāđ€āļ›āđ‡āļ™ Request Body āđāļĨāđ‰āļ§āļˆāļēāļāļ™āļąāđ‰āļ™āļˆāļķāļ‡āļāļģāļŦāļ™āļ”āļ„āđˆāļē ID āđƒāļŦāđ‰āļāļąāļšāļŦāļ™āļąāļ‡āļŠāļ·āļ­āđƒāļŦāļĄāđˆāđāļĨāđ‰āļ§āļˆāļķāļ‡ Push āļ„āđˆāļēāđ€āļ‚āđ‰āļēāđ„āļ›āđ€āļāđ‡āļšāđƒāļ™ List āļ‚āļ­āļ‡āļĢāļēāļĒāļāļēāļĢāļŦāļ™āļąāļ‡āļŠāļ·āļ­

āļĨāļ­āļ‡āļ—āļ”āļŠāļ­āļš POST Method āļ”āđ‰āļ§āļĒāļāļēāļĢāļĒāļīāļ‡ API āļ”āđ‰āļ§āļĒ Postman

āļŠāļļāļ”āļ—āđ‰āļēāļĒāđāļĨāđ‰āļ§āđ‚āļ„āđ‰āļ”āļ‚āļ­āļ‡āđ€āļĢāļēāļ—āļąāđ‰āļ‡āļŦāļĄāļ”āļāđ‡āļˆāļ°āļĄāļĩāļŦāļ™āđ‰āļēāļ•āļēāđ€āļ›āđ‡āļ™āđāļšāļšāļ™āļĩāđ‰āļ„āļĢāļąāļš

import { Elysia, t } from "elysia";

type Book = {
  id: number;
  title: string;
  price: number;
};

let bookList: Book[] = [
  { title: "Refactoring", price: 100, id: 1 },
  { title: "Clean Code", price: 200, id: 2 },
];

const app = new Elysia()
  .get("/", () => "Hello Elysia")
  .get("/books", () => bookList)
  .post("/books", ({ body }) => {
    const newBook = body as Book;
    newBook.id = bookList.length + 1;
    bookList.push(newBook);
    return newBook;
  })
  .listen(3000);

console.log(
  `ðŸĶŠ Elysia is running at ${app.server?.hostname}:${app.server?.port}`
);

āļŠāļĢāļļāļ›āļŠāđˆāļ‡āļ—āđ‰āļēāļĒ

ElysiaJS āļ–āļ·āļ­āđ€āļ›āđ‡āļ™āļ­āļĩāļ Framework āļ—āļĩāđˆāļ™āđˆāļēāļˆāļąāļšāļ•āļēāļĄāļ­āļ‡āđƒāļ™āļ•āļ­āļ™āļ™āļĩāđ‰ āđ‚āļ”āļĒāđƒāļ„āļĢāļ—āļĩāđˆāļŠāļ™āđƒāļˆāļŠāļēāļĄāļēāļĢāļ–āđ„āļ›āļ­āđˆāļēāļ™ Docs āļ‚āļ­āļ‡ Elysia āđ€āļžāļ·āđˆāļ­āļĻāļķāļāļĐāļēāđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄ āļŠāđˆāļ§āļ™āđƒāļ„āļĢāļ—āļĩāđˆāļ­āļĒāļēāļāļˆāļ°āļ›āļĢāļ°āļĒāļļāļāļ•āđŒāđ‚āļ„āđ‰āļ”āļˆāļēāļāļšāļ—āļ„āļ§āļēāļĄāļ™āļĩāđ‰āļ•āđˆāļ­āđƒāļŦāđ‰āļĄāļĩāļ„āļĢāļšāļ—āļąāđ‰āļ‡ CRUD āļŠāļēāļĄāļēāļĢāļ–āļ”āļđāđ‚āļ„āđ‰āļ”āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđ„āļ”āđ‰āļ—āļĩāđˆ GitHub Repository āļ‚āļ­āļ‡āļœāļĄāļ—āļĩāđˆāļ™āļĩāđˆāļ„āļĢāļąāļš āļœāļĄāļŦāļ§āļąāļ‡āđ€āļ›āđ‡āļ™āļ­āļĒāđˆāļēāļ‡āļĒāļīāđˆāļ‡āļ§āđˆāļē āļšāļ—āļ„āļ§āļēāļĄāļ™āļĩāđ‰āļˆāļ°āđ€āļ›āđ‡āļ™āļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāđāļāđˆāļœāļđāđ‰āļ­āđˆāļēāļ™āđ„āļĄāđˆāļĄāļēāļāļāđ‡āļ™āđ‰āļ­āļĒ āļžāļšāļāļąāļ™āđƒāļŦāļĄāđˆāđƒāļ™āļšāļ—āļ„āļ§āļēāļĄāļŦāļ™āđ‰āļē āļŠāļ§āļąāļŠāļ”āļĩāļ„āļĢāļąāļš

āļ­āđ‰āļēāļ‡āļ­āļīāļ‡

Elysia Docs : https://elysiajs.com/

Bun Docs : https://bun.sh/

Sawit Koseeyaumporn

Author Sawit Koseeyaumporn

Student @ CPE KMUTT

More posts by Sawit Koseeyaumporn
Close Menu

āđ€āļĢāļēāđƒāļŠāđ‰āļ„āļļāļāļāļĩāđ‰āđ€āļžāļ·āđˆāļ­āļžāļąāļ’āļ™āļēāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž āđāļĨāļ°āļ›āļĢāļ°āļŠāļšāļāļēāļĢāļ“āđŒāļ—āļĩāđˆāļ”āļĩāđƒāļ™āļāļēāļĢāđƒāļŠāđ‰āđ€āļ§āđ‡āļšāđ„āļ‹āļ•āđŒāļ‚āļ­āļ‡āļ„āļļāļ“ āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āļĻāļķāļāļĐāļēāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āđ„āļ”āđ‰āļ—āļĩāđˆ āļ™āđ‚āļĒāļšāļēāļĒāļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļ•āļąāļ§ āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āļˆāļąāļ”āļāļēāļĢāļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļ•āļąāļ§āđ€āļ­āļ‡āđ„āļ”āđ‰āļ‚āļ­āļ‡āļ„āļļāļ“āđ„āļ”āđ‰āđ€āļ­āļ‡āđ‚āļ”āļĒāļ„āļĨāļīāļāļ—āļĩāđˆ āļ•āļąāđ‰āļ‡āļ„āđˆāļē

āļ•āļąāđ‰āļ‡āļ„āđˆāļēāļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļ•āļąāļ§

āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āđ€āļĨāļ·āļ­āļāļāļēāļĢāļ•āļąāđ‰āļ‡āļ„āđˆāļēāļ„āļļāļāļāļĩāđ‰āđ‚āļ”āļĒāđ€āļ›āļīāļ”/āļ›āļīāļ” āļ„āļļāļāļāļĩāđ‰āđƒāļ™āđāļ•āđˆāļĨāļ°āļ›āļĢāļ°āđ€āļ āļ—āđ„āļ”āđ‰āļ•āļēāļĄāļ„āļ§āļēāļĄāļ•āđ‰āļ­āļ‡āļāļēāļĢ āļĒāļāđ€āļ§āđ‰āļ™ āļ„āļļāļāļāļĩāđ‰āļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™

āļĒāļ­āļĄāļĢāļąāļšāļ—āļąāđ‰āļ‡āļŦāļĄāļ”
āļˆāļąāļ”āļāļēāļĢāļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļ•āļąāļ§
  • āļ„āļļāļāļāļĩāđ‰āļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™
    āđ€āļ›āļīāļ”āđƒāļŠāđ‰āļ‡āļēāļ™āļ•āļĨāļ­āļ”

    āļ›āļĢāļ°āđ€āļ āļ—āļ‚āļ­āļ‡āļ„āļļāļāļāļĩāđ‰āļĄāļĩāļ„āļ§āļēāļĄāļˆāļģāđ€āļ›āđ‡āļ™āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āđ€āļ§āđ‡āļšāđ„āļ‹āļ•āđŒ āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāđ‰āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āđ€āļ›āđ‡āļ™āļ›āļāļ•āļī āđāļĨāļ°āđ€āļ‚āđ‰āļēāļŠāļĄāđ€āļ§āđ‡āļšāđ„āļ‹āļ•āđŒ āļ„āļļāļ“āđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āļ›āļīāļ”āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āļ„āļļāļāļāļĩāđ‰āļ™āļĩāđ‰āđƒāļ™āļĢāļ°āļšāļšāđ€āļ§āđ‡āļšāđ„āļ‹āļ•āđŒāļ‚āļ­āļ‡āđ€āļĢāļēāđ„āļ”āđ‰
    āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ„āļļāļāļāļĩāđ‰

  • āļ„āļļāļāļāļĩāđ‰āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ•āļīāļ”āļ•āļēāļĄāļ—āļēāļ‡āļāļēāļĢāļ•āļĨāļēāļ”

    āļ›āļĢāļ°āđ€āļ āļ—āļ‚āļ­āļ‡āļ„āļļāļāļāļĩāđ‰āļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāļˆāļģāđ€āļ›āđ‡āļ™āđƒāļ™āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āđ€āļžāļ·āđˆāļ­āļāļēāļĢāļ§āļīāđ€āļ„āļĢāļēāļ°āļŦāđŒ āđāļĨāļ° āļ™āļģāđ€āļŠāļ™āļ­āđ‚āļ›āļĢāđ‚āļĄāļŠāļąāļ™ āļŠāļīāļ™āļ„āđ‰āļē āļĢāļ§āļĄāļ–āļķāļ‡āļŦāļĨāļąāļāļŠāļđāļ•āļĢāļŸāļĢāļĩ āđāļĨāļ° āļŠāļīāļ—āļ˜āļīāļžāļīāđ€āļĻāļĐāļ•āđˆāļēāļ‡ āđ† āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āđ€āļĨāļ·āļ­āļāļ›āļīāļ”āļ„āļļāļāļāļĩāđ‰āļ›āļĢāļ°āđ€āļ āļ—āļ™āļĩāđ‰āđ„āļ”āđ‰āđ‚āļ”āļĒāđ„āļĄāđˆāļŠāđˆāļ‡āļœāļĨāļ•āđˆāļ­āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļŦāļĨāļąāļ āđ€āļ§āđ‰āļ™āđāļ•āđˆāļāļēāļĢāļ™āļģāđ€āļŠāļ™āļ­āđ‚āļ›āļĢāđ‚āļĄāļŠāļąāļ™āļ—āļĩāđˆāļ­āļēāļˆāđ„āļĄāđˆāļ•āļĢāļ‡āļāļąāļšāļ„āļ§āļēāļĄāļ•āđ‰āļ­āļ‡āļāļēāļĢ
    āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ„āļļāļāļāļĩāđ‰

āļšāļąāļ™āļ—āļķāļāļāļēāļĢāļ•āļąāđ‰āļ‡āļ„āđˆāļē