Create stable, case-insensitive lookup keys. Inputs are strings; no email syntax validation is required.
Prototype: same_label(left, right) strips surrounding whitespace and uses str.casefold() on both strings, then returns whether the normalized strings are equal.
Final: implement immutable UserKey(name, domain). Normalize both fields with .strip().casefold() at construction and expose normalized public name and domain. Keys compare by those two fields only, are hashable, and work interchangeably as dictionary keys. Normal attribute reassignment must fail. Empty fields are valid. Equality with an unrelated type must be false; key.__eq__(unrelated) should return NotImplemented. Example: UserKey(" Ada ", "EXAMPLE.COM") == UserKey("ada", "example.com"). You may use a frozen dataclass; do not test or hardcode specific numeric hash values.
Complete the starter code, then run the checks.
Results and errors will appear here.