


from __future__ import annotations

import json

import requests
from bsa import BeautifulSoup
from fake_useragent import UserAgent

a_ :Optional[int]  							=			{'UserAgent': UserAgent().random}




def    a   (							A__							)	-> dict:




      '''simple docstring'''

      SCREAMING_SNAKE_CASE__       :  int						     =		script.contents[0]
      SCREAMING_SNAKE_CASE__       :  str						     =		json.loads(data[data.find('''{"config"'''							) : -1]							)
      return info["entry_data"]["ProfilePage"][0]["graphql"]["user"]

class 							lowercase  :







     def __init__(						self :						str   ,   _lowercase :						Tuple      ):
           SCREAMING_SNAKE_CASE__       :  List[str]						     =		f"""https://www.instagram.com/{username}/"""
           SCREAMING_SNAKE_CASE__       :  List[str]						     =		self.get_json()







     def 							lowercase__       (						self :						Any      ):
           SCREAMING_SNAKE_CASE__       :  Optional[Any]						     =		requests.get(self.url   ,   headers=_lowercase      ).text
           SCREAMING_SNAKE_CASE__       :  List[Any]						     =		BeautifulSoup(_lowercase   ,   '''html.parser'''      ).find_all('''script'''      )
           try:
                 return extract_user_profile(scripts[4]      )
           except (json.decoder.JSONDecodeError, KeyError):
                 return extract_user_profile(scripts[3]      )







     def __repr__(						self :						Dict      ):
           return f"""{self.__class__.__name__}('{self.username}')"""







     def __str__(						self :						List[Any]      ):
           return f"""{self.fullname} ({self.username}) is {self.biography}"""







     @property
     def 							lowercase__       (						self :						Any      ):
           return self.user_data["username"]







     @property
     def 							lowercase__       (						self :						Optional[Any]      ):
           return self.user_data["full_name"]







     @property
     def 							lowercase__       (						self :						int      ):
           return self.user_data["biography"]







     @property
     def 							lowercase__       (						self :						Optional[Any]      ):
           return self.user_data["business_email"]







     @property
     def 							lowercase__       (						self :						Dict      ):
           return self.user_data["external_url"]







     @property
     def 							lowercase__       (						self :						List[Any]      ):
           return self.user_data["edge_followed_by"]["count"]







     @property
     def 							lowercase__       (						self :						int      ):
           return self.user_data["edge_follow"]["count"]







     @property
     def 							lowercase__       (						self :						Optional[int]      ):
           return self.user_data["edge_owner_to_timeline_media"]["count"]







     @property
     def 							lowercase__       (						self :						List[str]      ):
           return self.user_data["profile_pic_url_hd"]







     @property
     def 							lowercase__       (						self :						Tuple      ):
           return self.user_data["is_verified"]







     @property
     def 							lowercase__       (						self :						List[Any]      ):
           return self.user_data["is_private"]




def    a   (							A__ = "github"							)	-> None:




      '''simple docstring'''

      import os

      if os.environ.get('''CI'''							):
            return  # test failing on GitHub Actions
      SCREAMING_SNAKE_CASE__       :  Tuple						     =		InstagramUser(A__							)
      assert instagram_user.user_data
      assert isinstance(instagram_user.user_data      ,    A__							)
      assert instagram_user.username == username
      if username != "github":
            return
      assert instagram_user.fullname == "GitHub"
      assert instagram_user.biography == "Built for developers."
      assert instagram_user.number_of_posts > 1_5_0
      assert instagram_user.number_of_followers > 1_2_0_0_0_0
      assert instagram_user.number_of_followings > 1_5
      assert instagram_user.email == "support@github.com"
      assert instagram_user.website == "https://github.com/readme"
      assert instagram_user.profile_picture_url.startswith('''https://instagram.'''							)
      assert instagram_user.is_verified is True
      assert instagram_user.is_private is False


if __name__ == "__main__":
    import doctest

    doctest.testmod()
    a_ :Optional[Any]  							=			InstagramUser('github')
    print(instagram_user)
    print(F'''{instagram_user.number_of_posts = }''')
    print(F'''{instagram_user.number_of_followers = }''')
    print(F'''{instagram_user.number_of_followings = }''')
    print(F'''{instagram_user.email = }''')
    print(F'''{instagram_user.website = }''')
    print(F'''{instagram_user.profile_picture_url = }''')
    print(F'''{instagram_user.is_verified = }''')
    print(F'''{instagram_user.is_private = }''')










"""simple docstring"""



import math
from datetime import datetime, timedelta
def      UpperCAmelCase     (       _lowercase :   int	)						-> datetime:


	"""simple docstring"""




	lowerCAmelCase_      							=			year % 1_9
	lowerCAmelCase_      							=			year % 4
	lowerCAmelCase_      							=			year % 7
	lowerCAmelCase_      							=			math.floor(year / 1_0_0	)
	lowerCAmelCase_      							=			math.floor((1_3 + 8 * leap_day_inhibits) / 2_5	)
	lowerCAmelCase_      							=			leap_day_inhibits / 4
	lowerCAmelCase_      							=			(
	    1_5 - lunar_orbit_correction + leap_day_inhibits - leap_day_reinstall_number
	) % 3_0
	lowerCAmelCase_      							=			(4 + leap_day_inhibits - leap_day_reinstall_number) % 7

	# days to be added to March 21
	lowerCAmelCase_      							=			(1_9 * metonic_cycle + secular_moon_shift) % 3_0

	# PHM -> Paschal Full Moon
	lowerCAmelCase_      							=			(
	    2 * julian_leap_year
	    + 4 * non_leap_year
	    + 6 * days_to_add
	    + century_starting_point
	) % 7

	if days_to_add == 2_9 and days_from_phm_to_sunday == 6:
		return datetime(_lowercase			,   4			,   1_9	)
	elif days_to_add == 2_8 and days_from_phm_to_sunday == 6:
		return datetime(_lowercase			,   4			,   1_8	)
	else:
		return datetime(_lowercase			,   3			,   2_2	) + timedelta(
		    days=int(days_to_add + days_from_phm_to_sunday	)	)


if __name__ == "__main__":
		for year in (19_94, 20_00, 20_10, 20_21, 20_23):
				lowercase_							=							'will be' if year > datetime.now().year else 'was'
				print(f"""Easter in {year} {tense} {gauss_easter(year)}""")