'''simple docstring'''


from manim import *






class 						A   (   UpperCAmelCase   ):





							def       snake_case__						(      self				:							str	)							->	List[str]:
								__UpperCAmelCase							=			Rectangle(height=0.5     ,		width=0.5	)
								__UpperCAmelCase							=			Rectangle(height=0.4_6     ,		width=0.4_6	).set_stroke(width=0	)

								__UpperCAmelCase							=			Rectangle(height=0.2_5     ,		width=0.2_5	)

								__UpperCAmelCase							=			[mem.copy() for i in range(6	)]
								__UpperCAmelCase							=			[mem.copy() for i in range(6	)]
								__UpperCAmelCase							=			VGroup(*__a	).arrange(__a     ,		buff=0	)
								__UpperCAmelCase							=			VGroup(*__a	).arrange(__a     ,		buff=0	)
								__UpperCAmelCase							=			VGroup(__a     ,		__a	).arrange(__a     ,		buff=0	)
								__UpperCAmelCase							=			Text('''CPU'''     ,		font_size=2_4	)
								__UpperCAmelCase							=			Group(__a     ,		__a	).arrange(__a     ,		buff=0.5     ,		aligned_edge=__a	)
								cpu.move_to([-2.5, -0.5, 0]	)
								self.add(__a	)

								__UpperCAmelCase							=			[mem.copy() for i in range(4	)]
								__UpperCAmelCase							=			VGroup(*__a	).arrange(__a     ,		buff=0	)
								__UpperCAmelCase							=			Text('''GPU'''     ,		font_size=2_4	)
								__UpperCAmelCase							=			Group(__a     ,		__a	).arrange(__a     ,		buff=0.5     ,		aligned_edge=__a	)
								gpu.move_to([-1, -1, 0]	)
								self.add(__a	)

								__UpperCAmelCase							=			[mem.copy() for i in range(6	)]
								__UpperCAmelCase							=			VGroup(*__a	).arrange(__a     ,		buff=0	)

								__UpperCAmelCase							=			Text('''Model'''     ,		font_size=2_4	)
								__UpperCAmelCase							=			Group(__a     ,		__a	).arrange(__a     ,		buff=0.5     ,		aligned_edge=__a	)
								model.move_to([3, -1.0, 0]	)
								self.add(__a	)

								__UpperCAmelCase							=			[]
								__UpperCAmelCase							=			[]

								for i, rect in enumerate(__a	):
									__UpperCAmelCase							=			fill.copy().set_fill(__a     ,		opacity=0.8	)
									target.move_to(__a	)
									model_arr.append(__a	)

									__UpperCAmelCase							=			Rectangle(height=0.4_6     ,		width=0.4_6	).set_stroke(width=0.0	).set_fill(__a     ,		opacity=0.8	)
									cpu_target.move_to(cpu_left_col_base[i]	)
									model_cpu_arr.append(__a	)

								self.add(*__a     ,		*__a	)

								__UpperCAmelCase							=			[meta_mem.copy() for i in range(6	)]
								__UpperCAmelCase							=			[meta_mem.copy() for i in range(6	)]
								__UpperCAmelCase							=			VGroup(*__a	).arrange(__a     ,		buff=0	)
								__UpperCAmelCase							=			VGroup(*__a	).arrange(__a     ,		buff=0	)
								__UpperCAmelCase							=			VGroup(__a     ,		__a	).arrange(__a     ,		buff=0	)
								__UpperCAmelCase							=			Text('''Disk'''     ,		font_size=2_4	)
								__UpperCAmelCase							=			Group(__a     ,		__a	).arrange(__a     ,		buff=0.5     ,		aligned_edge=__a	)
								disk.move_to([-4, -1.2_5, 0]	)
								self.add(__a     ,		__a	)

								__UpperCAmelCase							=			Square(side_length=2.2	)
								key.move_to([-5, 2, 0]	)

								__UpperCAmelCase							=			MarkupText(
								    f"""<b>Key:</b>\n\n<span fgcolor='{YELLOW}'>●</span> Empty Model"""     ,		font_size=1_8     ,		)

								key_text.move_to([-5, 2.4, 0]	)

								self.add(__a     ,		__a	)

								__UpperCAmelCase							=			MarkupText(
								    f"""<span fgcolor='{BLUE}'>●</span> Checkpoint"""     ,		font_size=1_8     ,		)

								blue_text.next_to(__a     ,		DOWN * 2.4     ,		aligned_edge=key_text.get_left()	)
								self.add(__a	)

								__UpperCAmelCase							=			MarkupText(
								    f"""Now watch as an input is passed through the model\nand how the memory is utilized and handled."""     ,		font_size=2_4     ,		)
								step_a.move_to([2, 2, 0]	)

								self.play(Write(__a	)	)

								__UpperCAmelCase							=			Square(0.3	)
								input.set_fill(__a     ,		opacity=1.0	)
								input.set_stroke(width=0.0	)
								input.next_to(model_base[0]     ,		__a     ,		buff=0.5	)

								self.play(Write(__a	)	)

								input.generate_target()
								input.target.next_to(model_arr[0]     ,		direction=__a     ,		buff=0.0_2	)
								self.play(MoveToTarget(__a	)	)

								self.play(FadeOut(__a	)	)

								__UpperCAmelCase							=			Arrow(start=__a     ,		end=__a     ,		color=__a     ,		buff=0.5	)
								a.next_to(model_arr[0].get_left()     ,		__a     ,		buff=0.2	)

								model_cpu_arr[0].generate_target()
								model_cpu_arr[0].target.move_to(gpu_rect[0]	)

								__UpperCAmelCase							=			MarkupText(
								    f"""As the input reaches a layer, the hook triggers\nand weights are moved from the CPU\nto the GPU and back."""     ,		font_size=2_4     ,		)
								step_a.move_to([2, 2, 0]	)

								self.play(Write(__a     ,		run_time=3	)	)

								__UpperCAmelCase							=			{'''run_time''': 1, '''fade_in''': True, '''fade_out''': True, '''buff''': 0.0_2}

								self.play(
								    Write(__a	)     ,		Circumscribe(model_arr[0]     ,		color=__a     ,		**__a	)     ,		Circumscribe(model_cpu_arr[0]     ,		color=__a     ,		**__a	)     ,		Circumscribe(gpu_rect[0]     ,		color=__a     ,		**__a	)     ,		)
								self.play(MoveToTarget(model_cpu_arr[0]	)	)

								__UpperCAmelCase							=			a.copy()
								for i in range(6	):
									a_c.next_to(model_arr[i].get_right() + 0.0_2     ,		__a     ,		buff=0.2	)

									input.generate_target()
									input.target.move_to(model_arr[i].get_right() + 0.0_2	)

									__UpperCAmelCase							=			AnimationGroup(
									    FadeOut(__a     ,		run_time=0.5	)     ,		MoveToTarget(__a     ,		run_time=0.5	)     ,		FadeIn(__a     ,		run_time=0.5	)     ,		lag_ratio=0.2	)

									self.play(__a	)

									model_cpu_arr[i].generate_target()
									model_cpu_arr[i].target.move_to(cpu_left_col_base[i]	)

									if i < 5:
										model_cpu_arr[i + 1].generate_target()
										model_cpu_arr[i + 1].target.move_to(gpu_rect[0]	)
										if i >= 1:
											__UpperCAmelCase							=			0.7

										self.play(
										    Circumscribe(model_arr[i]     ,		**__a	)     ,		Circumscribe(cpu_left_col_base[i]     ,		**__a	)     ,		Circumscribe(cpu_left_col_base[i + 1]     ,		color=__a     ,		**__a	)     ,		Circumscribe(gpu_rect[0]     ,		color=__a     ,		**__a	)     ,		Circumscribe(model_arr[i + 1]     ,		color=__a     ,		**__a	)     ,		)
										if i < 1:
											self.play(
											    MoveToTarget(model_cpu_arr[i]	)     ,		MoveToTarget(model_cpu_arr[i + 1]	)     ,		)
										else:
											self.play(
											    MoveToTarget(model_cpu_arr[i]     ,		run_time=0.7	)     ,		MoveToTarget(model_cpu_arr[i + 1]     ,		run_time=0.7	)     ,		)
									else:
										model_cpu_arr[i].generate_target()
										model_cpu_arr[i].target.move_to(cpu_left_col_base[-1]	)
										input.generate_target()
										input.target.next_to(model_arr[-1].get_right()     ,		RIGHT + 0.0_2     ,		buff=0.2	)

										self.play(
										    Circumscribe(model_arr[-1]     ,		color=__a     ,		**__a	)     ,		Circumscribe(cpu_left_col_base[-1]     ,		color=__a     ,		**__a	)     ,		Circumscribe(gpu_rect[0]     ,		color=__a     ,		**__a	)     ,		)

										self.play(MoveToTarget(model_cpu_arr[i]	)	)

									__UpperCAmelCase							=			a_c
									__UpperCAmelCase							=			a_c.copy()

								input.generate_target()
								input.target.next_to(model_base[-1]     ,		RIGHT + 0.0_2     ,		buff=0.5	)
								self.play(
								    FadeOut(__a	)     ,		FadeOut(__a     ,		run_time=0.5	)     ,		)

								__UpperCAmelCase							=			MarkupText(f"""Inference on a model too large for GPU memory\nis successfully completed."""     ,		font_size=2_4	)
								step_a.move_to([2, 2, 0]	)

								self.play(Write(__a     ,		run_time=3	)     ,		MoveToTarget(__a	)	)

								self.wait()

'''simple docstring'''


import requests
from bsa import BeautifulSoup





def       lowerCAmelCase					(		UpperCamelCase__				:   str = "AAPL"       ):


	"""simple docstring"""
	__UpperCAmelCase							=			f"""https://in.finance.yahoo.com/quote/{symbol}?s={symbol}"""
	__UpperCAmelCase							=			BeautifulSoup(requests.get(UpperCamelCase__       ).text    ,					'''html.parser'''       )
	__UpperCAmelCase							=			'''My(6px) Pos(r) smartphone_Mt(6px)'''
	return soup.find('''div'''    ,					class_=class_       ).find('''span'''       ).text


if __name__ == "__main__":
					for symbol in "AAPL AMZN IBM GOOG MSFT ORCL".split():
										print(F"""Current {symbol:<4} stock price is {stock_price(symbol):>8}""")
