Below is a messy sales CSV export. Build a single self-contained HTML dashboard file (no external libraries, everything inline) that cleans this data and reports on it. Cleaning rules: - order_id must be unique: if an id appears twice, keep the first row and drop the rest. - Rows whose amount is not a number (like N/A or unknown) are excluded from revenue, but report how many you excluded. - Negative amounts are refunds and must count as negative revenue. - Region names must be normalized (TX, tx, Texas, texas are all Texas; CA is California; OH is Ohio). - Dates appear in multiple formats; parse them all. Q1 = Jan-Mar, Q2 = Apr-Jun. The dashboard must show: 1. A pivot table of total revenue by region (rows) and quarter (columns), with row totals, column totals, and a grand total, formatted as dollars with two decimals. 2. A bar chart of revenue by region drawn with inline SVG or canvas (no chart libraries). 3. A data quality panel: rows received, duplicates dropped, rows excluded, rows counted. 4. A one-line headline stating the top region and its total. The numbers displayed must be computed correctly from the data. Output only the complete HTML file. ``` order_id,order_date,region,product,amount_usd 1001,2025-01-06,Texas,widget,"1,240.00" 1002,1/9/2025,CA,gadget,$980 1003,2025-01-14,TX,gizmo,312.50 1004,"Jan 21, 2025",california,widget,"1,764.00" 1005,2025-01-27,Ohio,gadget,455 1006,2/3/2025,texas ,widget,N/A 1007,2025-02-10,OH,gizmo,"1,102.25" 1008,"Feb 14, 2025",California,widget,"2,310.00" 1009,2025-02-18,TX,gadget,-450.00 1010,2025-02-24,Texas,gizmo,870.10 1011,3/3/2025,Ohio,widget,"$1,999.99" 1012,2025-03-08,CA,gizmo,640.00 1008,"Feb 14, 2025",California,widget,"2,310.00" 1013,"Mar 12, 2025",tx,gadget,"1,580.00" 1014,2025-03-19,ohio,gizmo,225.75 1015,2025-03-27,California,gadget,"3,050.00" 1016,4/2/2025,TX,widget,990.00 1017,2025-04-07,Ohio,gadget,unknown 1018,"Apr 11, 2025",CA,widget,"1,420.50" 1019,2025-04-16,Texas,gizmo,"2,075.00" 1020,2025-04-22,OH,widget,$760.25 1021,5/1/2025,California,gizmo,"1,111.11" 1022,2025-05-06,TX,gadget,845.00 1023,"May 13, 2025",Ohio,gizmo,-220.00 1024,2025-05-19,texas,widget,"1,300.00" 1025,2025-05-28,CA,gadget,"2,940.40" 1026,6/4/2025,Ohio,widget,515.00 1027,2025-06-10,California,widget,"1,875.25" 1028,"Jun 17, 2025",TX,gizmo,N/A 1029,2025-06-23,OH,gadget,"1,660.00" 1030,2025-06-30,Texas,gadget,730.90 ```