தரவுத்தளம் பயன்படுத்தும் குறிப்பைச் சோதிப்பது சவாலாக இருக்கிறது — நீங்கள் தெளிவற்ற அல்லது மெதுவான தன்மையை இல்லாமல் யথার்த்தமான தரவு நடத்தை தேவை. முறைகளில் சோதனை தரவுத்தளங்கள், உள் நினைவு தரவுத்தளங்கள், பரிமாற்றங்கள்/திரும்பப் பெறுதல், மற்றும் தரவு স்তரத்தை உருவகப்படுத்துதல் அন்தர்ভুக்தமாக இருக்கிறது — ஒவ்வொன்றுக்கும் நியாயங்கள் மற்றும் குறைபாடுகள் உள்ளன.\n\n## சவாலம்\n\ntext Database-interacting code needs testing, but databases bring challenges: → real DB → realistic but SLOWER; needs SETUP and CLEANUP (state between tests) → shared state → tests can interfere (order dependence, flakiness) → mocking the DB → fast but may not catch real query/integration bugs → Choose an approach balancing realism, speed, and isolation. \n\n## முறைகள்\n\n```text
- REAL TEST DATABASE → a dedicated DB for tests (same engine as production): ✓ realistic (catches real query/schema issues) ✗ slower; needs cleanup/isolation → often run in a CONTAINER (Docker) for a clean, consistent DB per test run
- TRANSACTION ROLLBACK → wrap each test in a transaction, ROLL BACK after → clean state, no leftover data, faster than recreating data (a common pattern)
- IN-MEMORY DATABASE (e.g. SQLite in memory) → fast, easy setup ✗ may differ from the production DB (different SQL/features → can miss prod-specific issues)
- MOCK the data layer → fast, isolated UNIT tests ✗ doesn't test real DB behavior
(use for unit tests; use a real DB for integration tests)
\n\n## சிறந்த பயிற்சிகள்\n\ntext ✓ ISOLATE tests — each starts from a known clean state (transactions, truncate, fresh DB) ✓ Use realistic test DATA (fixtures/factories/seeds) ✓ Test real DB behavior for the DATA LAYER (integration); mock the DB when unit-testing business logic above it ✓ Keep DB tests reasonably fast; run a clean DB in CI (containers) ```\n\n## ஏன் இது முக்கியமாக இருக்கிறது\n\nதரவுத்தளத்துடன் தொடர்பு கொள்ளும் குறிப்பைச் சோதிப்பது எப்படி என்பதைப் புரிந்துகொள்வது மூல்யவத்தாகும் ஏனெனில் பெரும்பாலான பயன்பாடுகள் தரவுத்தளங்களைப் பயன்படுத்துகின்றன, மற்றும் தரவு அணுக்க சோதனை சரியாகச் செய்வது முக்கியமானது ஆனால் சவாலாக உள்ளது, எனவே இது பயனுள்ள நடைமுறை அறிவாக இருக்கிறது.\n\nதரவுத்தளக் குறிப்பு (கேள்வி, தரவு அணுக்க, நிரந்தரத்வம்) சோதனை தேவை, ஆனால் தரவுத்தளங்கள் உண்மையான சவால்களைக் கொண்டுவருகின்றன — அவை மெதுவாக இருக்கின்றன, அமைப்பு மற்றும் ஆষ்ட்ரோஜனை தேவைப்படுகிறது, பகிரப்பட்ட நிலை சோதனை தலையீடு மற்றும் தெளிவற்ற தன்மையை ஏற்படுத்தலாம், மற்றும் அவற்றை உருவகப்படுத்துவது உண்மையான கேள்வி பிழைகளை தவறவிடலாம்.\n\nமுறைகள் மற்றும் அவற்றின் நியாயங்கள் புரிந்துகொள்வது முக்கிய அறிவு: உண்மையான சோதனை தரவுத்தளம் (யதার்த்தமான, உண்மையான கேள்வி மற்றும் திட்ட பிரச்சனைகளைப் பிடிப்பது, பெரும்பாலும் ஒத்திசைவுக்கு ஒரு கொள்கலனில் இயக்கப்பட்டாலும், ஆனால் மெதுவாக இருக்கிறது மற்றும் தனிமைப்படுத்தல் தேவைப்படுகிறது), பரிமாற்ற மீளீக்கல (ஒவ்வொரு சோதனையை ஒரு பரிமாற்றத்தில் சுற்றி மூழ்குதல் மற்றும் சுத்தமான நிலைக்கு மீளீக்கல் — சாதாரணமாக, प्रभावी முறை যা சோதனைகளை தனிமைப்படுத்தி மற்றும் ஒப்பீட்டு வேகமாக வைக்கிறது), உள் நினைவு தரவுத்தளங்கள் (வேகமாக மற்றும் எளிதாக ஆனால் সম்ভবত உৎপாதனத்திலிருந்து வேறுபட்ட, இடக்கோளாய় உৎபாத-குறிப்பிட்ட சிக்கல்களை தவறவிடுவதற்கான ঝுக్కி), மற்றும் தரவு স्तरतைட உருவகப்படுத்துதல் (வேகமான தனிமைப்படுத்தப்பட்ட அலகு சோதனைகள் ஆனால் உண்மையான தரவுத்தள நடத்தையைச் சோதிக்க இல்லை).\n\nஒவ்வொன்றை எப்போது பயன்படுத்த வேண்டும் என்பதைப் புரிந்துகொள்வது — தரவு నుండ் தரவுத்தளத்தில்integrationசோதனைக்கு உண்மையான தரவுত்தளம் (உண்மையான கேள்வி/திட்ட பிழைகளைப் பிடிக்க), தரவு நிலைக்கு மேல் வணிக தர்க்கத்தைட test-testing மூள்டிங் — ஆறுதல், வேகம், மற்றும் தனிமைப்படுத்தலைச் சந்தர్ప்నம் செய்வதைப் பற్றிய ஆழ்ந்த தீர್ப்பை பிரதिபादించ்తা है.\n\nசிறந்த பயிற்சிகளைப் புரிந்துகொள்வது — சோதனைகளை தனிமைப்படுத்துதல் (ஒவ்வொன்றும் பரிமாற்றங்கள், truncation, அல்லது ஒரு புதிய தரவுத்தளத்தின் மூலம் அறியப்பட்ட சுத்தமான நிலைக்கு தொடங்குவது, தலையீடு மற்றும் தெளிவற்ற தன்மையை தவிர்க்க), யதার்த்தமான சோதனை தரவைப் பயன்படுத்துதல் (fixtures/factories), தரவு தளம்க்கு உண்மையான தரவுத்தள நடத்தையைச் சோதிப்பது, மற்றும் CI இல் சுத்தமான தரவுத்தளங்களைத் தயாரிப்பது — प्रभावी தரவுத்தள சோதனையை பிரதিபादித्தা है.\n\nபெரும்பாலான பயன்பாடுகள் தரவுத்தளங்களைப் பயன்படுத்துவதால் மற்றும் தரவு அணுக்கம் சோதனை சரியாகச் செய்வது (கேள்வி பிழைகளைப் பிடிப்பது சோதனைகளை தனிமைப்படுத்து, வேகமாக, மற்றும் நம்பகமை வை) முக்கியமானது ஆனால் சவாலாக உள்ளது, மற்றும் முறைகளைப் புரிந்துகொள்வதால் (உண்மையான DB, பரிமாற్రங்கள், உள் நினைவு, mocking), அவற்றின் நியாயங்கள், மற்றும் சிறந்த பயிற்சிகள் (தனिमைप्படுத்தல், யதार்த्यமான தரவு) प्রभावी தரவुत्தளम் சோதनைіய செய்ய সक्षм बनात्तಾ है, தarவుត్తుละ්م்तුดંग କোడॅთेசीзთುत्ति०००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००့०००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००့९ का्व்য्য मक्या्तு्न् ००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००;;;;।००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००።००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००့००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००့०००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००००።
