<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def proposal(self):
 """Get the proposal in question. Actually just the first proposal with the same name, but the chance of a collision is tiny. Returns ------- awaitable of :class:`aionationstates.Proposal` The proposal submitted. Raises ------ aionationstates.NotFound If the proposal has since been withdrawn or promoted. """

        proposals = await aionationstates.wa.proposals()
        for proposal in proposals:
            if (proposal.name == self.proposal_name):
                return proposal
        raise aionationstates.NotFound