class AsmaUlHusna:
    name = ('Ar-Rahmaan', 'Ar-Raheem', 'Al-Malik', 'Al-Quddus', 'As-Salam',
            'Al-Mu’min', 'Al-Muhaymin', 'Al-Aziz', 'Al-Jabbar',
            'Al-Mutakabbir', 'Al-Khaaliq', 'Al-Baari', 'Al-Musawwir',
            'Al-Ghaffaar', 'Al-Qahhaar', 'Al-Wahhab', 'Ar-Razzaq', 'Al-Fattah',
            'Al-Alim', 'Al-Qaabid', 'Al-Baasit', 'Al-Khaafid', 'Ar-Rafi',
            'Al-Mu’izz', 'Al-Muzil', 'As-Sami’', 'Al-Baseer', 'Al-Hakam',
            'Al-Adl', 'Al-Lateef', 'Al-Khabeer', 'Al-Haleem', 'Al-Azeem',
            'Al-Ghafoor', 'Ash-Shakoor', 'Al-Aliyy', 'Al-Kabeer', 'Al-Hafiz',
            'Al-Muqeet', 'Al-Haseeb', 'Al-Jaleel', 'Al-Kareem', 'Ar-Raqeeb',
            'Al-Mujeeb', 'Al-Waasi’', 'Al-Hakeem', 'Al-Wadud', 'Al-Majeed',
            'Al-Ba’ith', 'Ash-Shaheed', 'Al-Haqq', 'Al-Wakeel', 'Al-Qawwiyy',
            'Al-Mateen', 'Al-Waliyy', 'Al-Hameed', 'Al-Muhsee', 'Al-Mubdi',
            'Al-Mueed', 'Al-Muhyi', 'Al-Mumeet', 'Al-Hayy', 'Al-Qayyoom',
            'Al-Waajid', 'Al-Maajid', 'Al-Waahid', 'Al-Ahad', 'As-Samad',
            'Al-Qaadir', 'Al-Muqtadir', 'Al-Muqaddim', 'Al-Mu’akhkhir',
            'Al-Awwal', 'Al-Akhir', 'Az-Zaahir', 'Al-Baatin', 'Al-Waali',
            'Al-Muta’ali', 'Al-Barr', 'At-Tawwaab', 'Al-Muntaqim', 'Al-Afuww',
            'Ar-Ra’oof', 'Maalik-ul-Mulk', 'Zul-Jalaali-wal-Ikram',
            'Al-Muqsit', 'Al-Jaami’', 'Al-Ghaniyy', 'Al-Mughni', 'Al-Maani’',
            'Ad-Daarr', 'An-Naafi’', 'An-Noor', 'Al-Haadi', 'Al-Badi’',
            'Al-Baaqi', 'Al-Waaris', 'Ar-Rasheed', 'As-Saboor',)
    meaning = ('The Beneficent', 'The Merciful', 'The Eternal Lord',
               'The Most Sacred', 'The Embodiment of Peace',
               'The Infuser of Faith', 'The Preserver of Safety',
               'The Mighty One', 'The Omnipotent One', 'The Dominant One',
               'The Creator', 'The Evolver', 'The Flawless Shaper',
               'The Great Forgiver', 'The All-Prevailing One',
               'The Supreme Bestower', 'The Total Provider', 'The Supreme Solver',
               'The All-Knowing One', 'The Restricting One', 'The Extender',
               'The Reducer', 'The Elevating One', 'The Honourer-Bestower',
               'The Abaser', 'The All-Hearer', 'The All-Seeing',
               'The Impartial Judge', 'The Embodiment of Justice',
               'The Knower of Subtleties', 'The All-Aware One', 'The Clement One',
               'The Magnificent One', 'The Great Forgiver',
               'The Acknowledging One', 'The Sublime One', 'The Great One',
               'The Guarding One', 'The Sustaining One', 'The Reckoning One',
               'The Majestic One', 'The Bountiful One', 'The Watchful One',
               'The Responding One', 'The All-Pervading One', 'The Wise One',
               'The Loving One', 'The Glorious One', 'The Infuser of New Life',
               'The All Observing Witness', 'The Embodiment of Truth',
               'The Universal Trustee', 'The Strong One', 'The Firm One',
               'The Protecting Associate', 'The Sole-Laudable One',
               'The All-Enumerating One', 'The Originator', 'The Restorer',
               'The Maintainer of life', 'The Inflictor of Death',
               'The Eternally Living One', 'The Self-Subsisting One',
               'The Pointing One', 'The All-Noble One', 'The Only One',
               'The Sole One', 'The Supreme Provider', 'The Omnipotent One',
               'The All Authoritative One', 'The Expediting One',
               'The Procrastinator', 'The Very First', 'The Infinite Last One',
               'The Perceptible', 'The Imperceptible',
               'The Holder of Supreme Authority', 'The Extremely Exalted One',
               'The Fountain-Head of Truth', 'The Ever-Acceptor of Repentance',
               'The Retaliator', 'The Supreme Pardoner', 'The Benign One',
               'The Eternal Possessor of Sovereignty',
               'The Possessor of Majesty and Honour', 'The Just One',
               'The Assembler of Scattered Creations', 'The Self-Sufficient One',
               'The Bestower of Sufficiency', 'The Preventer', 'The Distressor',
               'The Bestower of Benefits', 'The Prime Light',
               'The Provider of Guidance', 'The Unique One',
               'The Ever Surviving One', 'The Eternal Inheritor',
               'The Guide to Path of Rectitude', 'The Extensively Enduring One',)
    arabic = ('الرَّحْمَنُ', 'الرَّحِيمُ', 'الْمَلِكُ', 'الْقُدُّوسُ', 'السَّلاَمُ', 'الْمُؤْمِنُ', 'الْمُهَيْمِنُ', 'الْعَزِيزُ', 'الْجَبَّارُ', 'الْمُتَكَبِّرُ', 'الْخَالِقُ', 'الْبَارِئُ', 'الْمُصَوِّرُ', 'الْغَفَّارُ', 'الْقَهَّارُ', 'الْوَهَّابُ', 'الرَّزَّاقُ', 'الْفَتَّاحُ', 'اَلْعَلِيْمُ', 'الْقَابِضُ', 'الْبَاسِطُ', 'الْخَافِضُ', 'الرَّافِعُ', 'الْمُعِزُّ', 'المُذِلُّ', 'السَّمِيعُ', 'الْبَصِيرُ', 'الْحَكَمُ', 'الْعَدْلُ', 'اللَّطِيفُ', 'الْخَبِيرُ', 'الْحَلِيمُ', 'الْعَظِيمُ', 'الْغَفُورُ', 'الشَّكُورُ', 'الْعَلِيُّ', 'الْكَبِيرُ', 'الْحَفِيظُ', 'المُقيِت', 'الْحسِيبُ', 'الْجَلِيلُ', 'الْكَرِيمُ', 'الرَّقِيبُ', 'الْمُجِيبُ', 'الْوَاسِعُ', 'الْحَكِيمُ', 'الْوَدُودُ', 'الْمَجِيدُ', 'الْبَاعِثُ',
              'الشَّهِيدُ', 'الْحَقُّ', 'الْوَكِيلُ', 'الْقَوِيُّ', 'الْمَتِينُ', 'الْوَلِيُّ', 'الْحَمِيدُ', 'الْمُحْصِي', 'الْمُبْدِئُ', 'الْمُعِيدُ', 'الْمُحْيِي', 'اَلْمُمِيتُ', 'الْحَيُّ', 'الْقَيُّومُ', 'الْوَاجِدُ', 'الْمَاجِدُ', 'الْواحِدُ', 'اَلاَحَدُ', 'الصَّمَدُ', 'الْقَادِرُ', 'الْمُقْتَدِرُ', 'الْمُقَدِّمُ', 'الْمُؤَخِّرُ', 'الأوَّلُ', 'الآخِرُ', 'الظَّاهِرُ', 'الْبَاطِنُ', 'الْوَالِي', 'الْمُتَعَالِي', 'الْبَرُّ', 'التَّوَابُ', 'الْمُنْتَقِمُ', 'العَفُوُّ', 'الرَّؤُوفُ', 'مَالِكُ الْمُلْكِ', 'ذُوالْجَلاَلِ وَالإكْرَامِ', 'الْمُقْسِطُ', 'الْجَامِعُ', 'الْغَنِيُّ', 'الْمُغْنِي', 'اَلْمَانِعُ', 'الضَّارَّ', 'النَّافِعُ', 'النُّورُ', 'الْهَادِي', 'الْبَدِيعُ', 'اَلْبَاقِي', 'الْوَارِثُ', 'الرَّشِيدُ', 'الصَّبُورُ',)

    @classmethod
    def display_nth_name(cls, n):
        assert n in range(1, 100), "Index range is from 1 to 99"
        try:
            print(f'''
            Name: {cls.name[n-1]},
            Meaning: {cls.meaning[n-1]},
            Arabic: {cls.arabic[n-1]}
            ''')
        except Exception as e:
            print(e)

    @classmethod
    def get_nth_name(cls, n):
        assert n in range(1, 100), "Index range is from 1 to 99"
        try:
            return [cls.name[n-1], cls.meaning[n-1], cls.arabic[n-1]]
        except Exception as e:
            return e
