🥇 پلن های جذاب برای سال ۱۴۰۳
برای ایونت های رایگان، هر فردی که ثبت نام میکنه و توی ایونت شرکت میکنه، برای ایونت بعدی میره تو گروه VIP که ایونت بعدیش درواقع در اولویت قرار میگیره ( و ایونت های هزینه دار هم رایگان میشن براشون و یا کد تخفیف خیلی خووبی رو ارائه میدیم ) و ایمیل دعوت نامه از سمت ما اول برای این گروه ارسال میشه و بعد به صورت عمومی اعلام میکنیم.
برای اینکه بتونیم این گروه رو بسازیم، میتونید با نام و نام خانوادگی کامل، پیج مارو در lu.ma فالو کنید. و بعد از هر ایونت ما افراد شرکت کننده رو توی لیست VIP قرار میدیم. (لیست بعد از هر ایونت ریست میشه)
البته که داریم یه کارایی برای استریم، و میت داریم انجام میدیم که بیشتر از ۱۰۰ نفر و بیشتر از ۱.۳۰ ساعت در خدمت دوستان باشیم.
دمتون گرم. 🙏❤️
https://lu.ma/iCodeNext
برای ایونت های رایگان، هر فردی که ثبت نام میکنه و توی ایونت شرکت میکنه، برای ایونت بعدی میره تو گروه VIP که ایونت بعدیش درواقع در اولویت قرار میگیره ( و ایونت های هزینه دار هم رایگان میشن براشون و یا کد تخفیف خیلی خووبی رو ارائه میدیم ) و ایمیل دعوت نامه از سمت ما اول برای این گروه ارسال میشه و بعد به صورت عمومی اعلام میکنیم.
برای اینکه بتونیم این گروه رو بسازیم، میتونید با نام و نام خانوادگی کامل، پیج مارو در lu.ma فالو کنید. و بعد از هر ایونت ما افراد شرکت کننده رو توی لیست VIP قرار میدیم. (لیست بعد از هر ایونت ریست میشه)
البته که داریم یه کارایی برای استریم، و میت داریم انجام میدیم که بیشتر از ۱۰۰ نفر و بیشتر از ۱.۳۰ ساعت در خدمت دوستان باشیم.
دمتون گرم. 🙏❤️
https://lu.ma/iCodeNext
❤32🔥7👍4🙏2
iCodeNext
🔥 به دنیای جذاب الگوهای معماری و همچنین ایونت "جنگل معماری" خوش آمدید! 🌀 تو تاریخ 4 فروردین ساعت 8.30 شب تا 10.30 با هم قراره روی الگوهای معماری صبحبت کنیم، حالا کدوم الگو ها : N-Layer، Hexagonal، Onion, Clean 🌱 خوب اما ایونت به همینجا…
❤️❤️ دمتون گرم، اینقدر استقبال خوب بود که مجدد برای ۵ فروردین دوباره ایونت ساختیم، برای دوستانی که نرسیدن به ثبت نام قبلی. (فردای ایونت قبلی)
🔥 به دنیای جذاب الگوهای معماری و همچنین ایونت "جنگل معماری" خوش آمدید!
🌀 تو تاریخ 5 فروردین ساعت 8.30 شب تا 10.30 با هم قراره روی الگوهای معماری صبحبت کنیم،
حالا کدوم الگو ها :
N-Layer،
Hexagonal،
Onion,
Clean
🌱 خوب اما ایونت به همینجا ختم نمیشه ، بعد از اینکه این الگو هارو باهم صحبت کردیم و درک درستی ازشون پیدا کردیم حالا نوبت به این میرسه که توی کد هم بریم و بتونیم همه رو پیاده سازی بکنیم.
🚢 در انتها هم ابزاری رو معرفی میکنیم که بتونید این قوانین رو باهاش کنترل کنید.
🌗 هزینه ایونت : 100 هزار تومان
🌐 راه پرداخت: https://zarinp.al/576021
لطفا نام و نام خانوادگی خود را در زمان پرداخت و زمان ثبت نام یکی وارد نمایید.
لینک ثبت نام :
https://lu.ma/ArchitecturalJungle-S2
دوستان حتما، بعد از پرداخت ثبت نام هم بکنید، تا تایید بشه کامل.
🔥 به دنیای جذاب الگوهای معماری و همچنین ایونت "جنگل معماری" خوش آمدید!
🌀 تو تاریخ 5 فروردین ساعت 8.30 شب تا 10.30 با هم قراره روی الگوهای معماری صبحبت کنیم،
حالا کدوم الگو ها :
N-Layer،
Hexagonal،
Onion,
Clean
🌱 خوب اما ایونت به همینجا ختم نمیشه ، بعد از اینکه این الگو هارو باهم صحبت کردیم و درک درستی ازشون پیدا کردیم حالا نوبت به این میرسه که توی کد هم بریم و بتونیم همه رو پیاده سازی بکنیم.
🚢 در انتها هم ابزاری رو معرفی میکنیم که بتونید این قوانین رو باهاش کنترل کنید.
🌗 هزینه ایونت : 100 هزار تومان
🌐 راه پرداخت: https://zarinp.al/576021
لطفا نام و نام خانوادگی خود را در زمان پرداخت و زمان ثبت نام یکی وارد نمایید.
لینک ثبت نام :
https://lu.ma/ArchitecturalJungle-S2
دوستان حتما، بعد از پرداخت ثبت نام هم بکنید، تا تایید بشه کامل.
👍15❤3
💎 DIP, IOC, IOC Containers, Dependency Injection - Part 1
🌀 اینهمه اسامی، چطور اینها بهم مرتبط میشن؟ 2 تا ایونت گذاشتیم با نبی کرمپور و کامل توضیح دادیم این هارو، اما دوست داشتم برای کسایی که شاید جدید تر به چنل جوین میشن هم بتونن اینهارو داشته باشند.
هر چند یکمی تایمش رو کمتر کردم که قابل دیدن باشه.
00:00 events
02:00 Principles , Pattern, Framework
04:00 DIP
08:00 IOC
12:00 IOC Containers and Frameworks
18:00 Dependency Injection
*منتظر پارت دوم هم باشید امروز پابلیش میشه*
🚢 پلی لیست : Principles
🕶 مدت ویدیو : 25 دقیقه
📺 لینک ویدیو :
https://youtu.be/URZMxAdL1jw
🌀 اینهمه اسامی، چطور اینها بهم مرتبط میشن؟ 2 تا ایونت گذاشتیم با نبی کرمپور و کامل توضیح دادیم این هارو، اما دوست داشتم برای کسایی که شاید جدید تر به چنل جوین میشن هم بتونن اینهارو داشته باشند.
هر چند یکمی تایمش رو کمتر کردم که قابل دیدن باشه.
00:00 events
02:00 Principles , Pattern, Framework
04:00 DIP
08:00 IOC
12:00 IOC Containers and Frameworks
18:00 Dependency Injection
*منتظر پارت دوم هم باشید امروز پابلیش میشه*
🚢 پلی لیست : Principles
🕶 مدت ویدیو : 25 دقیقه
📺 لینک ویدیو :
https://youtu.be/URZMxAdL1jw
❤41👍8🙏2
💎 Lifetime of Dependency injection - Part 2
🌀 توی ایونت دوم هم رفتیم توی مدیریت لایف تایم هر نمونه، و هر کدومش رو جدا جدا توضیح دادیم.
00:00 Previous Session
04:00 Application Lifetime
08:00 Singleton, Scoped, Transient
14:00 Demo
🚢 پلی لیست : Principles
🕶 مدت ویدیو : 30 دقیقه
📺 لینک ویدیو :
https://youtu.be/2StBoVPDRVg
🌀 توی ایونت دوم هم رفتیم توی مدیریت لایف تایم هر نمونه، و هر کدومش رو جدا جدا توضیح دادیم.
00:00 Previous Session
04:00 Application Lifetime
08:00 Singleton, Scoped, Transient
14:00 Demo
🚢 پلی لیست : Principles
🕶 مدت ویدیو : 30 دقیقه
📺 لینک ویدیو :
https://youtu.be/2StBoVPDRVg
❤32👍10🔥2
iCodeNext
🤖 یکی از ابزار های اپن سورسی که واقعا باهاش کلی کیف میکنم n8n هست، برای ایجاد ورک فلو، کارای اتومیشن، و هرچیزی که فکرش رو بکنید. خیلی خیلی خفنه، همین. 🌗 شاید نفسی باشه، یه ویدیو آموزش ازش بسازم( البته اگه شماهم حال میکنید) که چه کارایی میکنه این هیولا.…
💎 Build complex automations 10x faster - n8n
🌀 تولید جرنی ها و ورک فلوهای داینامیک همیشه سخته، خوب چه بهتر که بشه این فلو هارو با یه ابزاری جایگزین کرد و برامون این ورک فلو هارو اتومات کنه. ابزار n8n بنظرم قدرتش اینقدری هست که بشه بهش اکتفا کرد تو این فضاها. و هم اینکه بسیار بسیار سادست، و خیلی راحت میشه ازش تو فضای اتومیشن استفاده بهینه کنیم.
00:00 How to Install
05:00 WorkFlow
07:00 Nodes - If, Switch, merge, sort
09:00 JavaScript code inside a workflow
12:00 WebHook workflow
15:00 Integrations
🚢 پلی لیست : Code Jungle
🕶 مدت ویدیو : 30 دقیقه
📺 لینک ویدیو :
https://youtu.be/y_y3VvFiQ54
🌀 تولید جرنی ها و ورک فلوهای داینامیک همیشه سخته، خوب چه بهتر که بشه این فلو هارو با یه ابزاری جایگزین کرد و برامون این ورک فلو هارو اتومات کنه. ابزار n8n بنظرم قدرتش اینقدری هست که بشه بهش اکتفا کرد تو این فضاها. و هم اینکه بسیار بسیار سادست، و خیلی راحت میشه ازش تو فضای اتومیشن استفاده بهینه کنیم.
00:00 How to Install
05:00 WorkFlow
07:00 Nodes - If, Switch, merge, sort
09:00 JavaScript code inside a workflow
12:00 WebHook workflow
15:00 Integrations
🚢 پلی لیست : Code Jungle
🕶 مدت ویدیو : 30 دقیقه
📺 لینک ویدیو :
https://youtu.be/y_y3VvFiQ54
❤31👍8👎2
❤️ هستیم در خدمتتون با یه ایونت آنلاین دیگه، اما این سری توی عید و صبح.
تاریخ ایونت : 8 فروردین ساعت 10:30 صبح
هزینه ایونت : رایگان
⭕️ لینک ثبت نام :
https://lu.ma/PipelineOrientedProgramming
اما چند نکته که حتما قبل از حضور توی ایونت باید دقت کنید تا اثر بخشیه بهتری داشته باشه براتون، توی توضیحات ایونت نوشتم، اگه اوکی هستید توی ایونت شرکت کنید.
⛺️ محدودیت شرکت کننده : ۹۸ نفر ( لطفا اگر شرکت میکنید، ثبت نام کنید. شرکت کننده ها توی لیست وی ای پی قرار میگیرند)
❤️❤️ ثبت نام رو بدون لیمیت کردم، هرکسی تونست تو روز ایونت جوین بشه تا سقف ۱۰۰ نفر.
تاریخ ایونت : 8 فروردین ساعت 10:30 صبح
هزینه ایونت : رایگان
⭕️ لینک ثبت نام :
https://lu.ma/PipelineOrientedProgramming
اما چند نکته که حتما قبل از حضور توی ایونت باید دقت کنید تا اثر بخشیه بهتری داشته باشه براتون، توی توضیحات ایونت نوشتم، اگه اوکی هستید توی ایونت شرکت کنید.
⛺️ محدودیت شرکت کننده : ۹۸ نفر ( لطفا اگر شرکت میکنید، ثبت نام کنید. شرکت کننده ها توی لیست وی ای پی قرار میگیرند)
❤️❤️ ثبت نام رو بدون لیمیت کردم، هرکسی تونست تو روز ایونت جوین بشه تا سقف ۱۰۰ نفر.
👍23❤3🔥2
💎 Handling Concurrency in EF Core - Part 52
🌀 یکی از مهم ترین موضوعاتی که باید بهش توجه خاصی بشه، بحث همزمانی و اتفاقاتی هست که در این موضوع اتفاق میوفته، و باید اول بدونیم چی هست، و بعد اینکه چطور دیتابیس ها میتونن کمکمون کنند و در نهایت اینکه انتیتی فریمورک برای ما چه امکاناتی رو بوجود آورده.
00:00 Concurrency
01:00 Problem of Concurrency
05:00 Pessimistic vs Optimistic
06:00 Demo
🚢 پلی لیست : Entity Framework
🕶 مدت ویدیو : 11 دقیقه
📺 لینک ویدیو :
https://youtu.be/KVNhQMDY6ek
🌀 یکی از مهم ترین موضوعاتی که باید بهش توجه خاصی بشه، بحث همزمانی و اتفاقاتی هست که در این موضوع اتفاق میوفته، و باید اول بدونیم چی هست، و بعد اینکه چطور دیتابیس ها میتونن کمکمون کنند و در نهایت اینکه انتیتی فریمورک برای ما چه امکاناتی رو بوجود آورده.
00:00 Concurrency
01:00 Problem of Concurrency
05:00 Pessimistic vs Optimistic
06:00 Demo
🚢 پلی لیست : Entity Framework
🕶 مدت ویدیو : 11 دقیقه
📺 لینک ویدیو :
https://youtu.be/KVNhQMDY6ek
❤30👍5🔥2
💎 Isolation Level and Concurrency - Part 53
🌀 خوب بلافاصله بعد از قسمت 52، بریم سراغ اینکه Isolation Level ها چیا هستند و چطور کنترل میشن و در نهایت همه رو یه دمویی ازش دیدیم.
00:00 Previous Session
04:00 Isolation Level
06:00 Dirty Data
08:00 UnCommited Read, Commited Read
09:00 Repeatable read, Phantom
18:00 Serializable
19:00 Demo
🚢 پلی لیست : Entity Framework
🕶 مدت ویدیو : 30 دقیقه
📺 لینک ویدیو :
https://youtu.be/ItIcBexjiiE
🌀 خوب بلافاصله بعد از قسمت 52، بریم سراغ اینکه Isolation Level ها چیا هستند و چطور کنترل میشن و در نهایت همه رو یه دمویی ازش دیدیم.
00:00 Previous Session
04:00 Isolation Level
06:00 Dirty Data
08:00 UnCommited Read, Commited Read
09:00 Repeatable read, Phantom
18:00 Serializable
19:00 Demo
🚢 پلی لیست : Entity Framework
🕶 مدت ویدیو : 30 دقیقه
📺 لینک ویدیو :
https://youtu.be/ItIcBexjiiE
❤29👍4🔥1
🌗 چالش جالبیه که میتونید توش شرکت کنید!
🌐 لینک ثبت نام به صورت رایگان :
https://bit.ly/3wXUeIj
#MicrosoftLearn
🌐 لینک ثبت نام به صورت رایگان :
https://bit.ly/3wXUeIj
#MicrosoftLearn
👍9❤3🙏3
🌀 پاک کنید بره. همین.
اگر کدی هرگز اجرا نمیشود، فقط پاکش کنید.
پاک کردن کدهای مرده ممکنه خیلی عجیب به نظر بیاد. خلاصه، یه کسی یه زمان و تلاشی برای نوشتن آن صرف کرده است. سازمان بابتش هزینه کرده.
🧨 تنها کافیه کسی آن را دوباره کال کند تا ارزشمند شود. اگر دوباره به آن نیاز داشته باشیم، احتمالاً ناراحت خواهیم شد که آن را زمانی حذف کردهایم.
اگر کدی هرگز اجرا نمیشود، فقط پاکش کنید.
پاک کردن کدهای مرده ممکنه خیلی عجیب به نظر بیاد. خلاصه، یه کسی یه زمان و تلاشی برای نوشتن آن صرف کرده است. سازمان بابتش هزینه کرده.
🧨 تنها کافیه کسی آن را دوباره کال کند تا ارزشمند شود. اگر دوباره به آن نیاز داشته باشیم، احتمالاً ناراحت خواهیم شد که آن را زمانی حذف کردهایم.
👍46👎1😁1
🔥 Optimistic Concurrency in EF Core - Part 54
🌀 تو این ویدیو مدل دیگه ای از سیستم لاکینگ Optimistic Locking رو بررسی کردیم و توی انتیتی فریمورک فرق بین Timestamp و ConcurrencyCheck با هم دیدیم که کجا باید از کدوم استفاده کنیم.
00:00 Previous Session
02:00 Versioning and Optimistic Locking
06:00 Timestamp
10:30 ConcurrencyCheck
🚢 پلی لیست : Entity Framework
🕶 مدت ویدیو : 19 دقیقه
📺 لینک ویدیو :
https://youtu.be/Yj8ZStHY7Fk
🌀 تو این ویدیو مدل دیگه ای از سیستم لاکینگ Optimistic Locking رو بررسی کردیم و توی انتیتی فریمورک فرق بین Timestamp و ConcurrencyCheck با هم دیدیم که کجا باید از کدوم استفاده کنیم.
00:00 Previous Session
02:00 Versioning and Optimistic Locking
06:00 Timestamp
10:30 ConcurrencyCheck
🚢 پلی لیست : Entity Framework
🕶 مدت ویدیو : 19 دقیقه
📺 لینک ویدیو :
https://youtu.be/Yj8ZStHY7Fk
👍25❤12🙏1
🔥 اینم از ایونت "جنگل معماری" و ۳ ساعتی که خیلی کیف داد.
❤️ دمت گرم نبی که همیشه همراه هستی.
امیدوارم مفید بوده باشه. اگه مفید بوده یه ری اکشن بدید که ماهم از ری اکشن شما کیف کنیم.
#ArchitecturalJungle
❤️ دمت گرم نبی که همیشه همراه هستی.
امیدوارم مفید بوده باشه. اگه مفید بوده یه ری اکشن بدید که ماهم از ری اکشن شما کیف کنیم.
#ArchitecturalJungle
❤85👍9🔥4👏2⚡1
🔥 سوال مهمی که چه زمانی اصلا باید کدمون رو تمیز کنیم؟ مخصوصا در زمان تغییرات و ایجاد یه فیچر در نرم افزارمون.
🌀 اول کدهای قبلی رو تمیز کنیم بعد تغییرات رو اعمال کنیم؟
🌀 یا کد بنویسیم و بعد از برآورده کردن نیازمندی ها بلافاصله کد هارو تمیز کنیم؟
🌀 یا بزاریم اصلا بعدا در یه زمان دیگه ای، کد هارو تر تمیز کنیم؟
🌀 و یا در نهایت اصلا تمیز نکنیم.
شاید یکمی گیج کننده باشه، اما دوست دارم باز مثل قبل، نظراتتون رو با ما در میون بزارید.
🌀 اول کدهای قبلی رو تمیز کنیم بعد تغییرات رو اعمال کنیم؟
🌀 یا کد بنویسیم و بعد از برآورده کردن نیازمندی ها بلافاصله کد هارو تمیز کنیم؟
🌀 یا بزاریم اصلا بعدا در یه زمان دیگه ای، کد هارو تر تمیز کنیم؟
🌀 و یا در نهایت اصلا تمیز نکنیم.
شاید یکمی گیج کننده باشه، اما دوست دارم باز مثل قبل، نظراتتون رو با ما در میون بزارید.
❤22👍7
ReferenceType.pdf
918 KB
🌗 تفاوت Value Type و Reference Type با تصویر که درکش رو یکمی بهتر میکنه.
🚢 امیدوارم مفید باشه براتون.
اگه ویدیوی کاملش رو خواستید که خیلی دقیقتر بررسیش کردم توی پلی لیست c# in a nutshell هست.
لینک ویدیو :
https://youtu.be/t2DV46gcnQ0
🚢 امیدوارم مفید باشه براتون.
اگه ویدیوی کاملش رو خواستید که خیلی دقیقتر بررسیش کردم توی پلی لیست c# in a nutshell هست.
لینک ویدیو :
https://youtu.be/t2DV46gcnQ0
❤50👍9🔥1
تقریبا بزرگترین مشکل در علم کامپیوتر، تجزیه مسأله است ( Problem Decomposition )
یعنی چگونه یک مسأله پیچیده را به قطعات کوچک تقسیم کنیم که هر کدام از این قطعات کوچک قابل حل باشند.
تجزیه و تحلیل مسأله وظیفه اصلی هست که برنامهنویسان هر روز با آن روبرو میشوند، حداقل من نتونستم یک واحد در دانشگاهی پیدا کنم که تجزیه و تحلیل مسائل را به عنوان یک موضوع اصلی آموزش دهد.
🔥 کامران در کامنت ها: بهتره بگیم در کنار دروسی که همین الان هم هست همچین مباحثی هم باید باشه بچه ها اگه تو دانشگاه نمیخونید خودتون به فکر باشید و برید دنبالش که یه قدم از بقیه جلوتر باشید.
بله، ما حلقههای تکرار و برنامهنویسی شیءگرا را آموزش میدیم، اما به طراحی نرمافزار اصلا نمیپردازیم.
یعنی چگونه یک مسأله پیچیده را به قطعات کوچک تقسیم کنیم که هر کدام از این قطعات کوچک قابل حل باشند.
تجزیه و تحلیل مسأله وظیفه اصلی هست که برنامهنویسان هر روز با آن روبرو میشوند، حداقل من نتونستم یک واحد در دانشگاهی پیدا کنم که تجزیه و تحلیل مسائل را به عنوان یک موضوع اصلی آموزش دهد.
🔥 کامران در کامنت ها: بهتره بگیم در کنار دروسی که همین الان هم هست همچین مباحثی هم باید باشه بچه ها اگه تو دانشگاه نمیخونید خودتون به فکر باشید و برید دنبالش که یه قدم از بقیه جلوتر باشید.
بله، ما حلقههای تکرار و برنامهنویسی شیءگرا را آموزش میدیم، اما به طراحی نرمافزار اصلا نمیپردازیم.
👍58❤3👏3🔥2👎1👌1
🔥 Retrieval Augmented Generation (RAG)
⭕️ مدل های زبانی بزرگ مثل OpenAI همه از داده های عمومی استفاده میکنند تا بتونن بهترین جواب رو برای شما بسازن. اما مشکل کجاست؟ اینه که ما خیلی از داده هامون به صورت عمومی نیست ولی میخوایم روش یه مدل زبانی رو سوار کنیم و بتونیم از اون هوش مصنوعی استفاده کنیم، تو این حالت شما میتونید از مفهومی به نام RAG استفاده کنید، که فرایند بهینه سازی جواب های یه مدل زبانی روی دیتااهای خصوصی شماست.
حالا میتونه هر چیزی باشه، یه کتاب، فایل ها و داکیومنت های شرکت، و یا مثل ایده ی من یه اکسپرت روی سورس کد پروژتون باشه که بتونه فرایند آنبردینگ یه نفر رو کم کنه و مدام با این اکسپرت شروع کنی به حرف زدن. (که یه نمونه ام ساختیم ازش)
🌗 حالا این فریمورک ها میتونه مثل LangChain که خیلی خفنه باشه و یا Semantic Kernel توی دات نت که یه مقدار ساده تر و ضعیف تر از نمونه ی پایتونیش هست.
📺 اگرم خواستید توضیح این عکس رو ببینید، ویدیوی زیر رو ببینید
https://youtu.be/6MOrYSyylCg
اگه دوست دارید بیشتر در مورد AI صحبت کنیم، یه ری اکشن بریم. ❤️
⭕️ مدل های زبانی بزرگ مثل OpenAI همه از داده های عمومی استفاده میکنند تا بتونن بهترین جواب رو برای شما بسازن. اما مشکل کجاست؟ اینه که ما خیلی از داده هامون به صورت عمومی نیست ولی میخوایم روش یه مدل زبانی رو سوار کنیم و بتونیم از اون هوش مصنوعی استفاده کنیم، تو این حالت شما میتونید از مفهومی به نام RAG استفاده کنید، که فرایند بهینه سازی جواب های یه مدل زبانی روی دیتااهای خصوصی شماست.
حالا میتونه هر چیزی باشه، یه کتاب، فایل ها و داکیومنت های شرکت، و یا مثل ایده ی من یه اکسپرت روی سورس کد پروژتون باشه که بتونه فرایند آنبردینگ یه نفر رو کم کنه و مدام با این اکسپرت شروع کنی به حرف زدن. (که یه نمونه ام ساختیم ازش)
🌗 حالا این فریمورک ها میتونه مثل LangChain که خیلی خفنه باشه و یا Semantic Kernel توی دات نت که یه مقدار ساده تر و ضعیف تر از نمونه ی پایتونیش هست.
📺 اگرم خواستید توضیح این عکس رو ببینید، ویدیوی زیر رو ببینید
https://youtu.be/6MOrYSyylCg
اگه دوست دارید بیشتر در مورد AI صحبت کنیم، یه ری اکشن بریم. ❤️
👍43❤10🔥5🙏1