We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
No Import BMV
Hi !
Thanks for the plugin, but unfortunately I can't get any data in. I checked, it may be that the street and the street are different. Thank you

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `custom_components/waste_collection_schedule/waste_collection_schedule/source/bmv_at.py`
Content:
```
1 import logging
2 from html.parser import HTMLParser
3 
4 import requests
5 from waste_collection_schedule import Collection  # type: ignore[attr-defined]
6 from waste_collection_schedule.service.ICS import ICS
7 
8 TITLE = "BMV.at"
9 DESCRIPTION = "Source for BMV, Austria"
10 URL = "https://www.bmv.at"
11 TEST_CASES = {
12     "Allersdorf": {"ort": "ALLERSDORF", "strasse": "HAUSNUMMER", "hausnummer": 9},
13     "Bad Sauerbrunn": {
14         "ort": "BAD SAUERBRUNN",
15         "strasse": "BUCHINGERWEG",
16         "hausnummer": 16,
17     },
18 }
19 
20 _LOGGER = logging.getLogger(__name__)
21 
22 
23 # Parser for HTML input (hidden) text
24 class HiddenInputParser(HTMLParser):
25     def __init__(self):
26         super().__init__()
27         self._args = {}
28 
29     @property
30     def args(self):
31         return self._args
32 
33     def handle_starttag(self, tag, attrs):
34         if tag == "input":
35             d = dict(attrs)
36             if d["type"] == "HIDDEN":
37                 self._args[d["name"]] = d.get("value")
38 
39 
40 class Source:
41     def __init__(self, ort, strasse, hausnummer):
42         self._ort = ort
43         self._strasse = strasse
44         self._hausnummer = hausnummer
45         self._ics = ICS()
46 
47     def fetch(self):
48         session = requests.session()
49 
50         r = session.get(
51             "https://webudb.udb.at/WasteManagementUDB/WasteManagementServlet?SubmitAction=wasteDisposalServices&InFrameMode=TRUE"
52         )
53 
54         # add all hidden input fields to form data
55         p = HiddenInputParser()
56         p.feed(r.text)
57         args = p.args
58 
59         args["Focus"] = "Hausnummer"
60         args["SubmitAction"] = "forward"
61         args["Ort"] = self._ort
62         args["Strasse"] = self._strasse
63         args["Hausnummer"] = self._hausnummer
64         r = session.post(
65             "https://webudb.udb.at/WasteManagementUDB/WasteManagementServlet", data=args
66         )
67 
68         args["ApplicationName"] = "com.athos.kd.udb.AbfuhrTerminModel"
69         args["Focus"] = None
70         args["IsLastPage"] = "true"
71         args["Method"] = "POST"
72         args["PageName"] = "Terminliste"
73         args["SubmitAction"] = "filedownload_ICAL"
74         del args["Ort"]
75         del args["Strasse"]
76         del args["Hausnummer"]
77         r = session.post(
78             "https://webudb.udb.at/WasteManagementUDB/WasteManagementServlet", data=args
79         )
80 
81         dates = self._ics.convert(r.text)
82 
83         entries = []
84         for d in dates:
85             entries.append(Collection(d[0], d[1]))
86         return entries
87
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/custom_components/waste_collection_schedule/waste_collection_schedule/source/bmv_at.py b/custom_components/waste_collection_schedule/waste_collection_schedule/source/bmv_at.py
--- a/custom_components/waste_collection_schedule/waste_collection_schedule/source/bmv_at.py
+++ b/custom_components/waste_collection_schedule/waste_collection_schedule/source/bmv_at.py
@@ -15,6 +15,11 @@
         "strasse": "BUCHINGERWEG",
         "hausnummer": 16,
     },
+    "Rattersdorf": {
+        "ort": "RATTERSDORF",
+        "strasse": "SIEBENBRÜNDLGASSE",
+        "hausnummer": 30,
+    },
 }
 
 _LOGGER = logging.getLogger(__name__)
@@ -56,6 +61,24 @@
         p.feed(r.text)
         args = p.args
 
+        args["Focus"] = "Ort"
+        args["SubmitAction"] = "changedEvent"
+        args["Ort"] = self._ort
+        args["Strasse"] = "HAUSNUMMER"
+        args["Hausnummer"] = 0
+        r = session.post(
+            "https://webudb.udb.at/WasteManagementUDB/WasteManagementServlet", data=args
+        )
+
+        args["Focus"] = "Strasse"
+        args["SubmitAction"] = "changedEvent"
+        args["Ort"] = self._ort
+        args["Strasse"] = self._strasse
+        args["Hausnummer"] = 0
+        r = session.post(
+            "https://webudb.udb.at/WasteManagementUDB/WasteManagementServlet", data=args
+        )
+
         args["Focus"] = "Hausnummer"
         args["SubmitAction"] = "forward"
         args["Ort"] = self._ort

{"golden_diff": "diff --git a/custom_components/waste_collection_schedule/waste_collection_schedule/source/bmv_at.py b/custom_components/waste_collection_schedule/waste_collection_schedule/source/bmv_at.py\n--- a/custom_components/waste_collection_schedule/waste_collection_schedule/source/bmv_at.py\n+++ b/custom_components/waste_collection_schedule/waste_collection_schedule/source/bmv_at.py\n@@ -15,6 +15,11 @@\n         \"strasse\": \"BUCHINGERWEG\",\n         \"hausnummer\": 16,\n     },\n+    \"Rattersdorf\": {\n+        \"ort\": \"RATTERSDORF\",\n+        \"strasse\": \"SIEBENBR\u00dcNDLGASSE\",\n+        \"hausnummer\": 30,\n+    },\n }\n \n _LOGGER = logging.getLogger(__name__)\n@@ -56,6 +61,24 @@\n         p.feed(r.text)\n         args = p.args\n \n+        args[\"Focus\"] = \"Ort\"\n+        args[\"SubmitAction\"] = \"changedEvent\"\n+        args[\"Ort\"] = self._ort\n+        args[\"Strasse\"] = \"HAUSNUMMER\"\n+        args[\"Hausnummer\"] = 0\n+        r = session.post(\n+            \"https://webudb.udb.at/WasteManagementUDB/WasteManagementServlet\", data=args\n+        )\n+\n+        args[\"Focus\"] = \"Strasse\"\n+        args[\"SubmitAction\"] = \"changedEvent\"\n+        args[\"Ort\"] = self._ort\n+        args[\"Strasse\"] = self._strasse\n+        args[\"Hausnummer\"] = 0\n+        r = session.post(\n+            \"https://webudb.udb.at/WasteManagementUDB/WasteManagementServlet\", data=args\n+        )\n+\n         args[\"Focus\"] = \"Hausnummer\"\n         args[\"SubmitAction\"] = \"forward\"\n         args[\"Ort\"] = self._ort\n", "issue": "No Import BMV\nHi !\r\nThanks for the plugin, but unfortunately I can't get any data in. I checked, it may be that the street and the street are different. Thank you\n", "before_files": [{"content": "import logging\nfrom html.parser import HTMLParser\n\nimport requests\nfrom waste_collection_schedule import Collection  # type: ignore[attr-defined]\nfrom waste_collection_schedule.service.ICS import ICS\n\nTITLE = \"BMV.at\"\nDESCRIPTION = \"Source for BMV, Austria\"\nURL = \"https://www.bmv.at\"\nTEST_CASES = {\n    \"Allersdorf\": {\"ort\": \"ALLERSDORF\", \"strasse\": \"HAUSNUMMER\", \"hausnummer\": 9},\n    \"Bad Sauerbrunn\": {\n        \"ort\": \"BAD SAUERBRUNN\",\n        \"strasse\": \"BUCHINGERWEG\",\n        \"hausnummer\": 16,\n    },\n}\n\n_LOGGER = logging.getLogger(__name__)\n\n\n# Parser for HTML input (hidden) text\nclass HiddenInputParser(HTMLParser):\n    def __init__(self):\n        super().__init__()\n        self._args = {}\n\n    @property\n    def args(self):\n        return self._args\n\n    def handle_starttag(self, tag, attrs):\n        if tag == \"input\":\n            d = dict(attrs)\n            if d[\"type\"] == \"HIDDEN\":\n                self._args[d[\"name\"]] = d.get(\"value\")\n\n\nclass Source:\n    def __init__(self, ort, strasse, hausnummer):\n        self._ort = ort\n        self._strasse = strasse\n        self._hausnummer = hausnummer\n        self._ics = ICS()\n\n    def fetch(self):\n        session = requests.session()\n\n        r = session.get(\n            \"https://webudb.udb.at/WasteManagementUDB/WasteManagementServlet?SubmitAction=wasteDisposalServices&InFrameMode=TRUE\"\n        )\n\n        # add all hidden input fields to form data\n        p = HiddenInputParser()\n        p.feed(r.text)\n        args = p.args\n\n        args[\"Focus\"] = \"Hausnummer\"\n        args[\"SubmitAction\"] = \"forward\"\n        args[\"Ort\"] = self._ort\n        args[\"Strasse\"] = self._strasse\n        args[\"Hausnummer\"] = self._hausnummer\n        r = session.post(\n            \"https://webudb.udb.at/WasteManagementUDB/WasteManagementServlet\", data=args\n        )\n\n        args[\"ApplicationName\"] = \"com.athos.kd.udb.AbfuhrTerminModel\"\n        args[\"Focus\"] = None\n        args[\"IsLastPage\"] = \"true\"\n        args[\"Method\"] = \"POST\"\n        args[\"PageName\"] = \"Terminliste\"\n        args[\"SubmitAction\"] = \"filedownload_ICAL\"\n        del args[\"Ort\"]\n        del args[\"Strasse\"]\n        del args[\"Hausnummer\"]\n        r = session.post(\n            \"https://webudb.udb.at/WasteManagementUDB/WasteManagementServlet\", data=args\n        )\n\n        dates = self._ics.convert(r.text)\n\n        entries = []\n        for d in dates:\n            entries.append(Collection(d[0], d[1]))\n        return entries\n", "path": "custom_components/waste_collection_schedule/waste_collection_schedule/source/bmv_at.py"}], "after_files": [{"content": "import logging\nfrom html.parser import HTMLParser\n\nimport requests\nfrom waste_collection_schedule import Collection  # type: ignore[attr-defined]\nfrom waste_collection_schedule.service.ICS import ICS\n\nTITLE = \"BMV.at\"\nDESCRIPTION = \"Source for BMV, Austria\"\nURL = \"https://www.bmv.at\"\nTEST_CASES = {\n    \"Allersdorf\": {\"ort\": \"ALLERSDORF\", \"strasse\": \"HAUSNUMMER\", \"hausnummer\": 9},\n    \"Bad Sauerbrunn\": {\n        \"ort\": \"BAD SAUERBRUNN\",\n        \"strasse\": \"BUCHINGERWEG\",\n        \"hausnummer\": 16,\n    },\n    \"Rattersdorf\": {\n        \"ort\": \"RATTERSDORF\",\n        \"strasse\": \"SIEBENBR\u00dcNDLGASSE\",\n        \"hausnummer\": 30,\n    },\n}\n\n_LOGGER = logging.getLogger(__name__)\n\n\n# Parser for HTML input (hidden) text\nclass HiddenInputParser(HTMLParser):\n    def __init__(self):\n        super().__init__()\n        self._args = {}\n\n    @property\n    def args(self):\n        return self._args\n\n    def handle_starttag(self, tag, attrs):\n        if tag == \"input\":\n            d = dict(attrs)\n            if d[\"type\"] == \"HIDDEN\":\n                self._args[d[\"name\"]] = d.get(\"value\")\n\n\nclass Source:\n    def __init__(self, ort, strasse, hausnummer):\n        self._ort = ort\n        self._strasse = strasse\n        self._hausnummer = hausnummer\n        self._ics = ICS()\n\n    def fetch(self):\n        session = requests.session()\n\n        r = session.get(\n            \"https://webudb.udb.at/WasteManagementUDB/WasteManagementServlet?SubmitAction=wasteDisposalServices&InFrameMode=TRUE\"\n        )\n\n        # add all hidden input fields to form data\n        p = HiddenInputParser()\n        p.feed(r.text)\n        args = p.args\n\n        args[\"Focus\"] = \"Ort\"\n        args[\"SubmitAction\"] = \"changedEvent\"\n        args[\"Ort\"] = self._ort\n        args[\"Strasse\"] = \"HAUSNUMMER\"\n        args[\"Hausnummer\"] = 0\n        r = session.post(\n            \"https://webudb.udb.at/WasteManagementUDB/WasteManagementServlet\", data=args\n        )\n\n        args[\"Focus\"] = \"Strasse\"\n        args[\"SubmitAction\"] = \"changedEvent\"\n        args[\"Ort\"] = self._ort\n        args[\"Strasse\"] = self._strasse\n        args[\"Hausnummer\"] = 0\n        r = session.post(\n            \"https://webudb.udb.at/WasteManagementUDB/WasteManagementServlet\", data=args\n        )\n\n        args[\"Focus\"] = \"Hausnummer\"\n        args[\"SubmitAction\"] = \"forward\"\n        args[\"Ort\"] = self._ort\n        args[\"Strasse\"] = self._strasse\n        args[\"Hausnummer\"] = self._hausnummer\n        r = session.post(\n            \"https://webudb.udb.at/WasteManagementUDB/WasteManagementServlet\", data=args\n        )\n\n        args[\"ApplicationName\"] = \"com.athos.kd.udb.AbfuhrTerminModel\"\n        args[\"Focus\"] = None\n        args[\"IsLastPage\"] = \"true\"\n        args[\"Method\"] = \"POST\"\n        args[\"PageName\"] = \"Terminliste\"\n        args[\"SubmitAction\"] = \"filedownload_ICAL\"\n        del args[\"Ort\"]\n        del args[\"Strasse\"]\n        del args[\"Hausnummer\"]\n        r = session.post(\n            \"https://webudb.udb.at/WasteManagementUDB/WasteManagementServlet\", data=args\n        )\n\n        dates = self._ics.convert(r.text)\n\n        entries = []\n        for d in dates:\n            entries.append(Collection(d[0], d[1]))\n        return entries\n", "path": "custom_components/waste_collection_schedule/waste_collection_schedule/source/bmv_at.py"}]}