| 1 | {"ast":null,"code":"var _jsxFileName = \"C:\\\\Users\\\\User\\\\Downloads\\\\medora5\\\\frontend\\\\src\\\\pages\\\\medical-records\\\\MedicalRecordDetail.js\",\n _s = $RefreshSig$();\nimport React, { useState, useEffect, useCallback } from 'react';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport { medicalRecordService } from '../../services/medicalRecordService';\nimport { doctorService } from '../../services/doctorService';\nimport { labService } from '../../services/labService';\nimport { procedureService } from '../../services/procedureService';\nimport ErrorAlert from '../../components/ErrorAlert';\nimport SuccessAlert from '../../components/SuccessAlert';\nimport Loading from '../../components/Loading';\nimport apiClient from '../../services/api';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nfunction MedicalRecordDetail() {\n _s();\n const {\n id\n } = useParams();\n const navigate = useNavigate();\n const user = JSON.parse(localStorage.getItem('user') || '{}');\n const isDoctor = user.role === 'DOCTOR';\n const [record, setRecord] = useState(null);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(null);\n const [success, setSuccess] = useState(null);\n const [activeTab, setActiveTab] = useState('view');\n const [doctors, setDoctors] = useState([]);\n const [selectedDoctorId, setSelectedDoctorId] = useState(isDoctor ? user.doctorId : '');\n\n // Diagnosis form\n const [diagnosisForm, setDiagnosisForm] = useState({\n diagnosisId: '',\n doctorId: ''\n });\n\n // Symptoms form\n const [symptomsForm, setSymptomsForm] = useState({\n symptomId: ''\n });\n\n // Allergies form\n const [allergyForm, setAllergyForm] = useState({\n allergyId: '',\n severity: 'MEDIUM',\n reaction: ''\n });\n\n // Prescription form\n const [prescriptionForm, setPrescriptionForm] = useState({\n prescriptionId: '',\n dosage: '',\n frequency: '',\n duration: '',\n reason: ''\n });\n\n // Dropdown options\n const [diagnoses, setDiagnoses] = useState([]);\n const [symptoms, setSymptoms] = useState([]);\n const [allergies, setAllergies] = useState([]);\n const [prescriptions, setPrescriptions] = useState([]);\n const [labTests, setLabTests] = useState([]);\n const [procedures, setProcedures] = useState([]);\n\n // Lab test form\n const [labTestForm, setLabTestForm] = useState({\n testId: '',\n testDate: new Date().toISOString().split('T')[0],\n notes: ''\n });\n\n // Procedure form\n const [procedureForm, setProcedureForm] = useState({\n procedureId: '',\n procedureDate: new Date().toISOString().split('T')[0],\n notes: '',\n diagnosisId: ''\n });\n const [labResults, setLabResults] = useState([]);\n const [procedureResults, setProcedureResults] = useState([]);\n const fetchRecord = useCallback(async () => {\n try {\n setLoading(true);\n const response = await medicalRecordService.getMedicalRecordByPatientId(id);\n setRecord(response.data);\n\n // Fetch lab results\n try {\n const resultsResponse = await labService.getLabResultsForMedicalRecord(response.data.recordId);\n setLabResults(resultsResponse.data || []);\n } catch (err) {\n console.error('Failed to fetch lab results:', err);\n setLabResults([]);\n }\n\n // Fetch procedure results\n try {\n const procedureResultsResponse = await procedureService.getProcedureResultsForMedicalRecord(response.data.recordId);\n setProcedureResults(procedureResultsResponse.data || []);\n } catch (err) {\n console.error('Failed to fetch procedure results:', err);\n setProcedureResults([]);\n }\n } catch (err) {\n setError('Failed to fetch medical record');\n console.error(err);\n } finally {\n setLoading(false);\n }\n }, [id]);\n useEffect(() => {\n const fetchDoctors = async () => {\n try {\n if (!isDoctor) {\n const response = await doctorService.getAllDoctors();\n setDoctors(response.data);\n if (response.data.length > 0 && !selectedDoctorId) {\n setSelectedDoctorId(response.data[0].doctorId);\n }\n }\n } catch (err) {\n console.error('Failed to fetch doctors', err);\n }\n };\n const fetchDropdownOptions = async () => {\n try {\n console.log('Fetching dropdown options...');\n const diagnosesRes = await apiClient.get('/medical-records/dropdown/diagnoses');\n console.log('Diagnoses:', diagnosesRes.data);\n const symptomsRes = await apiClient.get('/medical-records/dropdown/symptoms');\n console.log('Symptoms:', symptomsRes.data);\n const allergiesRes = await apiClient.get('/medical-records/dropdown/allergies');\n console.log('Allergies:', allergiesRes.data);\n const prescriptionsRes = await apiClient.get('/medical-records/dropdown/prescriptions');\n console.log('Prescriptions:', prescriptionsRes.data);\n const testsRes = await labService.getAllLabTests();\n console.log('Lab Tests:', testsRes.data);\n const proceduresRes = await procedureService.getAllProcedures();\n console.log('Procedures:', proceduresRes.data);\n setDiagnoses(diagnosesRes.data || []);\n setSymptoms(symptomsRes.data || []);\n setAllergies(allergiesRes.data || []);\n setPrescriptions(prescriptionsRes.data || []);\n setLabTests(testsRes.data || []);\n setProcedures(proceduresRes.data || []);\n console.log('Dropdown options set successfully');\n } catch (err) {\n var _err$response, _err$response$data;\n console.error('Error fetching dropdown options:', err);\n setError('Failed to load dropdown options: ' + (((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.error) || err.message));\n }\n };\n fetchRecord();\n fetchDoctors();\n fetchDropdownOptions();\n }, [id, isDoctor, fetchRecord, selectedDoctorId]);\n const handleAddDiagnosis = async e => {\n e.preventDefault();\n try {\n if (!diagnosisForm.diagnosisId) {\n setError('Please select a diagnosis');\n return;\n }\n if (!selectedDoctorId) {\n setError('Please select a doctor');\n return;\n }\n const selectedDiagnosis = diagnoses.find(d => d.id === parseInt(diagnosisForm.diagnosisId));\n await apiClient.post('/diagnoses', {\n patientId: parseInt(record.patientId),\n doctorId: parseInt(selectedDoctorId),\n name: selectedDiagnosis.name,\n description: ''\n });\n setSuccess('Diagnosis recorded successfully');\n setDiagnosisForm({\n diagnosisId: '',\n doctorId: ''\n });\n setTimeout(() => fetchRecord(), 1000);\n } catch (err) {\n var _err$response2, _err$response2$data;\n setError(((_err$response2 = err.response) === null || _err$response2 === void 0 ? void 0 : (_err$response2$data = _err$response2.data) === null || _err$response2$data === void 0 ? void 0 : _err$response2$data.error) || 'Failed to record diagnosis');\n }\n };\n const handleAddSymptom = async e => {\n e.preventDefault();\n try {\n if (!symptomsForm.symptomId) {\n setError('Please select a symptom');\n return;\n }\n await apiClient.post(`/medical-records/${record.recordId}/symptoms`, {\n symptomId: parseInt(symptomsForm.symptomId),\n severity: 'MEDIUM'\n });\n setSuccess('Symptom recorded successfully');\n setSymptomsForm({\n symptomId: ''\n });\n setTimeout(() => fetchRecord(), 1000);\n } catch (err) {\n var _err$response3, _err$response3$data;\n setError(((_err$response3 = err.response) === null || _err$response3 === void 0 ? void 0 : (_err$response3$data = _err$response3.data) === null || _err$response3$data === void 0 ? void 0 : _err$response3$data.error) || 'Failed to record symptom');\n }\n };\n const handleAddAllergy = async e => {\n e.preventDefault();\n try {\n if (!allergyForm.allergyId) {\n setError('Please select an allergy');\n return;\n }\n await apiClient.post(`/medical-records/${record.recordId}/allergies`, {\n allergyId: parseInt(allergyForm.allergyId),\n severity: allergyForm.severity,\n reaction: allergyForm.reaction\n });\n setSuccess('Allergy recorded successfully');\n setAllergyForm({\n allergyId: '',\n severity: 'MEDIUM',\n reaction: ''\n });\n setTimeout(() => fetchRecord(), 1000);\n } catch (err) {\n var _err$response4, _err$response4$data;\n setError(((_err$response4 = err.response) === null || _err$response4 === void 0 ? void 0 : (_err$response4$data = _err$response4.data) === null || _err$response4$data === void 0 ? void 0 : _err$response4$data.error) || 'Failed to record allergy');\n }\n };\n const handleAddPrescription = async e => {\n e.preventDefault();\n try {\n if (!prescriptionForm.prescriptionId) {\n setError('Please select a prescription medication');\n return;\n }\n if (!prescriptionForm.dosage.trim()) {\n setError('Dosage is required');\n return;\n }\n if (!prescriptionForm.frequency.trim()) {\n setError('Frequency is required');\n return;\n }\n if (!prescriptionForm.duration.trim()) {\n setError('Duration is required');\n return;\n }\n const selectedPrescription = prescriptions.find(p => p.id === parseInt(prescriptionForm.prescriptionId));\n await apiClient.post('/prescriptions', {\n medicalRecordId: record.recordId,\n medicationName: selectedPrescription.name,\n dosage: prescriptionForm.dosage,\n frequency: prescriptionForm.frequency,\n duration: prescriptionForm.duration,\n notes: prescriptionForm.reason\n });\n setSuccess('Prescription recorded successfully');\n setPrescriptionForm({\n prescriptionId: '',\n dosage: '',\n frequency: '',\n duration: '',\n reason: ''\n });\n setTimeout(() => fetchRecord(), 1000);\n } catch (err) {\n var _err$response5, _err$response5$data;\n setError(((_err$response5 = err.response) === null || _err$response5 === void 0 ? void 0 : (_err$response5$data = _err$response5.data) === null || _err$response5$data === void 0 ? void 0 : _err$response5$data.error) || 'Failed to record prescription');\n }\n };\n if (loading) return /*#__PURE__*/_jsxDEV(Loading, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 271,\n columnNumber: 23\n }, this);\n if (!record) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ErrorAlert, {\n message: \"Medical record not found\",\n onClose: () => navigate('/medical-records')\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex justify-between items-center mb-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n style: {\n fontSize: '36px',\n fontWeight: 'normal'\n },\n children: \"Medical Record\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 284,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n onClick: () => navigate('/medical-records'),\n className: \"bg-gray-300 text-gray-700 px-4 py-2 rounded hover:bg-gray-400\",\n children: \"Back\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 285,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 283,\n columnNumber: 7\n }, this), error && /*#__PURE__*/_jsxDEV(ErrorAlert, {\n message: error,\n onClose: () => setError(null)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 293,\n columnNumber: 17\n }, this), success && /*#__PURE__*/_jsxDEV(SuccessAlert, {\n message: success,\n onClose: () => setSuccess(null)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 294,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-white rounded-lg shadow p-6 mb-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n style: {\n fontSize: '20px',\n fontWeight: 'normal',\n marginBottom: '16px'\n },\n children: \"Patient Information\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 298,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"grid grid-cols-4 gap-4\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal text-sm text-gray-600\",\n children: \"Patient Name\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 301,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal\",\n children: record.patientName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 302,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 300,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal text-sm text-gray-600\",\n children: \"EMBG\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 305,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal\",\n children: record.embg\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 306,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 304,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal text-sm text-gray-600\",\n children: \"Record ID\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 309,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal\",\n children: record.recordId\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 310,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 308,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal text-sm text-gray-600\",\n children: \"Patient ID\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 313,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal\",\n children: record.patientId\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 314,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 312,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex gap-2 mb-6 border-b\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n onClick: () => setActiveTab('view'),\n style: {\n fontWeight: 'normal'\n },\n className: `px-6 py-3 ${activeTab === 'view' ? 'border-b-2 border-purple-600 text-purple-600' : 'text-purple-600 hover:text-purple-700'}`,\n children: \"View Medical Data\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"text-gray-600 px-3\",\n style: {\n fontWeight: 'normal'\n },\n children: \"|\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n onClick: () => setActiveTab('diagnosis'),\n style: {\n fontWeight: 'normal'\n },\n className: `px-6 py-3 ${activeTab === 'diagnosis' ? 'border-b-2 border-purple-600 text-purple-600' : 'text-purple-600 hover:text-purple-700'}`,\n children: \"Record Diagnosis\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"text-gray-600 px-3\",\n style: {\n fontWeight: 'normal'\n },\n children: \"|\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 344,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n onClick: () => setActiveTab('symptoms'),\n style: {\n fontWeight: 'normal'\n },\n className: `px-6 py-3 ${activeTab === 'symptoms' ? 'border-b-2 border-purple-600 text-purple-600' : 'text-purple-600 hover:text-purple-700'}`,\n children: \"Record Symptoms\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 345,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"text-gray-600 px-3\",\n style: {\n fontWeight: 'normal'\n },\n children: \"|\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 356,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n onClick: () => setActiveTab('allergies'),\n style: {\n fontWeight: 'normal'\n },\n className: `px-6 py-3 ${activeTab === 'allergies' ? 'border-b-2 border-purple-600 text-purple-600' : 'text-purple-600 hover:text-purple-700'}`,\n children: \"Record Allergies\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"text-gray-600 px-3\",\n style: {\n fontWeight: 'normal'\n },\n children: \"|\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 368,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n onClick: () => setActiveTab('prescription'),\n style: {\n fontWeight: 'normal'\n },\n className: `px-6 py-3 ${activeTab === 'prescription' ? 'border-b-2 border-purple-600 text-purple-600' : 'text-purple-600 hover:text-purple-700'}`,\n children: \"Record Prescription\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 369,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"text-gray-600 px-3\",\n style: {\n fontWeight: 'normal'\n },\n children: \"|\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n onClick: () => setActiveTab('lab-tests'),\n style: {\n fontWeight: 'normal'\n },\n className: `px-6 py-3 ${activeTab === 'lab-tests' ? 'border-b-2 border-purple-600 text-purple-600' : 'text-purple-600 hover:text-purple-700'}`,\n children: \"Request Lab Test\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"text-gray-600 px-3\",\n style: {\n fontWeight: 'normal'\n },\n children: \"|\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 392,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n onClick: () => setActiveTab('procedures'),\n style: {\n fontWeight: 'normal'\n },\n className: `px-6 py-3 ${activeTab === 'procedures' ? 'border-b-2 border-purple-600 text-purple-600' : 'text-purple-600 hover:text-purple-700'}`,\n children: \"Request Procedure\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 393,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 7\n }, this), activeTab === 'view' && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"space-y-6\",\n children: [record.diagnoses && record.diagnoses.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-white rounded-lg shadow p-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"font-normal\",\n style: {\n fontSize: '20px',\n marginBottom: '16px'\n },\n children: \"Diagnoses\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 412,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"space-y-3\",\n children: record.diagnoses.map(diagnosis => /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"border-l-4 border-purple-500 pl-4 py-2\",\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal\",\n style: {\n fontSize: '18px'\n },\n children: diagnosis.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 416,\n columnNumber: 21\n }, this), diagnosis.description && /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal text-gray-600 text-sm\",\n children: diagnosis.description\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 418,\n columnNumber: 23\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal text-xs text-gray-500\",\n children: [\"By: \", diagnosis.doctorName]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, this)]\n }, diagnosis.diagnosisId, true, {\n fileName: _jsxFileName,\n lineNumber: 415,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 413,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 411,\n columnNumber: 13\n }, this), record.symptoms && record.symptoms.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-white rounded-lg shadow p-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"font-normal\",\n style: {\n fontSize: '20px',\n marginBottom: '16px'\n },\n children: \"Symptoms\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 430,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-wrap gap-2\",\n children: record.symptoms.map(symptom => /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"bg-yellow-100 text-yellow-800 px-3 py-1 rounded-full text-sm font-normal\",\n children: symptom.symptomName\n }, symptom.symptomId, false, {\n fileName: _jsxFileName,\n lineNumber: 433,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 431,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 429,\n columnNumber: 13\n }, this), record.allergies && record.allergies.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-white rounded-lg shadow p-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"font-normal\",\n style: {\n fontSize: '20px',\n marginBottom: '16px'\n },\n children: \"Allergies\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 447,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"space-y-3\",\n children: record.allergies.map(allergy => /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"border-l-4 border-red-500 pl-4 py-2\",\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal\",\n children: allergy.allergyName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 451,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal\",\n style: {\n fontSize: '14px'\n },\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"font-normal\",\n style: {\n padding: '4px 8px',\n borderRadius: '4px',\n color: 'white',\n fontSize: '12px',\n background: allergy.severity === 'CRITICAL' ? '#dc2626' : allergy.severity === 'HIGH' ? '#ef4444' : allergy.severity === 'MEDIUM' ? '#eab308' : '#22c55e'\n },\n children: [allergy.severity, \" Severity\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 453,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 452,\n columnNumber: 21\n }, this), allergy.reaction && /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal text-gray-600 text-sm\",\n children: [\"Reaction: \", allergy.reaction]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 467,\n columnNumber: 23\n }, this)]\n }, allergy.allergyId, true, {\n fileName: _jsxFileName,\n lineNumber: 450,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 448,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 446,\n columnNumber: 13\n }, this), record.prescriptions && record.prescriptions.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-white rounded-lg shadow p-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"font-normal\",\n style: {\n fontSize: '20px',\n marginBottom: '16px'\n },\n children: \"Prescriptions\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 478,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"space-y-3\",\n children: record.prescriptions.map(prescription => /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"border-l-4 border-purple-500 pl-4 py-2\",\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal\",\n children: prescription.medicationName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 482,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal text-sm text-gray-600\",\n children: [\"Dosage: \", prescription.dosage]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 483,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal text-sm text-gray-600\",\n children: [\"Frequency: \", prescription.frequency]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 484,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal text-sm text-gray-600\",\n children: [\"Duration: \", prescription.duration]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 485,\n columnNumber: 21\n }, this)]\n }, prescription.prescriptionId, true, {\n fileName: _jsxFileName,\n lineNumber: 481,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 479,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 477,\n columnNumber: 13\n }, this), record.reports && record.reports.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-white rounded-lg shadow p-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"font-normal\",\n style: {\n fontSize: '20px',\n marginBottom: '16px'\n },\n children: \"Medical Reports\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 495,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"space-y-3\",\n children: record.reports.map(report => /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"border-l-4 border-green-500 pl-4 py-2\",\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n style: {\n fontWeight: 'normal'\n },\n children: [\"Report from \", report.doctorName]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 499,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal text-gray-600 text-sm\",\n children: report.description\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 500,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal text-xs text-gray-500\",\n children: [\"Date: \", report.reportDate]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 501,\n columnNumber: 21\n }, this)]\n }, report.reportId, true, {\n fileName: _jsxFileName,\n lineNumber: 498,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 496,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 494,\n columnNumber: 13\n }, this), labResults && labResults.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-white rounded-lg shadow p-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"font-normal\",\n style: {\n fontSize: '20px',\n marginBottom: '16px'\n },\n children: \"Lab Test Results\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 511,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"space-y-3\",\n children: labResults.map(result => /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"border-l-4 border-cyan-500 pl-4 py-3 bg-cyan-50 rounded\",\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal\",\n style: {\n fontSize: '18px',\n color: '#0891b2'\n },\n children: result.testName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 515,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal text-sm text-gray-700 mt-2\",\n children: [\"Results: \", result.results]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 516,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal text-sm text-gray-600\",\n children: [\"Result Date: \", result.resultDate]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 517,\n columnNumber: 21\n }, this)]\n }, result.resultId, true, {\n fileName: _jsxFileName,\n lineNumber: 514,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 512,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 510,\n columnNumber: 13\n }, this), procedureResults && procedureResults.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-white rounded-lg shadow p-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"font-normal\",\n style: {\n fontSize: '20px',\n marginBottom: '16px'\n },\n children: \"Procedure Results\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 527,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"space-y-3\",\n children: procedureResults.map(result => {\n var _result$procedure;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"border-l-4 border-orange-500 pl-4 py-3 bg-orange-50 rounded\",\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal\",\n style: {\n fontSize: '18px',\n color: '#b45309'\n },\n children: ((_result$procedure = result.procedure) === null || _result$procedure === void 0 ? void 0 : _result$procedure.procedureType) || 'Procedure'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 531,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal text-sm text-gray-700 mt-2\",\n children: [\"Outcome: \", result.resultDescription]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 532,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"font-normal text-sm text-gray-600\",\n children: [\"Result Date: \", result.resultDate]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 533,\n columnNumber: 21\n }, this)]\n }, result.resultId, true, {\n fileName: _jsxFileName,\n lineNumber: 530,\n columnNumber: 19\n }, this);\n })\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 528,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 526,\n columnNumber: 13\n }, this), (!record.diagnoses || record.diagnoses.length === 0) && (!record.symptoms || record.symptoms.length === 0) && (!record.allergies || record.allergies.length === 0) && (!record.reports || record.reports.length === 0) && (!labResults || labResults.length === 0) && (!procedureResults || procedureResults.length === 0) && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-blue-50 rounded-lg p-6 text-center\",\n children: /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-gray-600\",\n children: \"No medical data recorded yet\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 547,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 546,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 408,\n columnNumber: 9\n }, this), activeTab === 'diagnosis' && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-white rounded-lg shadow p-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n style: {\n fontSize: '20px',\n fontWeight: 'normal',\n marginBottom: '16px'\n },\n children: \"Record New Diagnosis\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 556,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleAddDiagnosis,\n className: \"space-y-4 max-w-2xl\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n style: {\n fontWeight: 'normal'\n },\n className: \"block text-sm mb-2\",\n children: \"Doctor *\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 559,\n columnNumber: 15\n }, this), isDoctor ? /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"px-4 py-2 bg-gray-100 rounded-lg text-gray-700\",\n children: [\"Dr. \", user.firstName, \" \", user.lastName]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 561,\n columnNumber: 17\n }, this) : /*#__PURE__*/_jsxDEV(\"select\", {\n value: selectedDoctorId,\n onChange: e => setSelectedDoctorId(e.target.value),\n className: \"w-full px-4 py-2 border rounded-lg\",\n required: true,\n children: [/*#__PURE__*/_jsxDEV(\"option\", {\n value: \"\",\n children: \"Select doctor\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 571,\n columnNumber: 19\n }, this), doctors.map(doc => /*#__PURE__*/_jsxDEV(\"option\", {\n value: doc.doctorId,\n children: [\"Dr. \", doc.firstName, \" \", doc.lastName]\n }, doc.doctorId, true, {\n fileName: _jsxFileName,\n lineNumber: 573,\n columnNumber: 21\n }, this))]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 565,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 558,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n style: {\n fontWeight: 'normal'\n },\n className: \"block text-sm mb-2\",\n children: \"Diagnosis *\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 581,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"select\", {\n value: diagnosisForm.diagnosisId,\n onChange: e => setDiagnosisForm({\n ...diagnosisForm,\n diagnosisId: e.target.value\n }),\n className: \"w-full px-4 py-2 border rounded-lg\",\n required: true,\n children: [/*#__PURE__*/_jsxDEV(\"option\", {\n value: \"\",\n children: diagnoses.length === 0 ? 'Loading diagnoses...' : 'Select diagnosis'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 588,\n columnNumber: 17\n }, this), diagnoses && diagnoses.length > 0 && diagnoses.map(diagnosis => /*#__PURE__*/_jsxDEV(\"option\", {\n value: diagnosis.id,\n children: diagnosis.name\n }, diagnosis.id, false, {\n fileName: _jsxFileName,\n lineNumber: 590,\n columnNumber: 19\n }, this))]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 582,\n columnNumber: 15\n }, this), diagnoses.length === 0 && /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-sm text-gray-500 mt-1\",\n children: \"No diagnoses available. Please wait...\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 596,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 580,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"submit\",\n style: {\n background: '#9333ea',\n color: 'white',\n padding: '6px 14px',\n borderRadius: '6px',\n border: 'none',\n cursor: 'pointer',\n fontSize: '14px',\n fontWeight: '600'\n },\n onMouseEnter: e => e.currentTarget.style.background = '#7e22ce',\n onMouseLeave: e => e.currentTarget.style.background = '#9333ea',\n children: \"Record Diagnosis\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 599,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 557,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 555,\n columnNumber: 9\n }, this), activeTab === 'symptoms' && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-white rounded-lg shadow p-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n style: {\n fontSize: '20px',\n fontWeight: 'normal',\n marginBottom: '16px'\n },\n children: \"Record Patient Symptoms\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 612,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleAddSymptom,\n className: \"space-y-4 max-w-2xl\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n style: {\n fontWeight: 'normal'\n },\n className: \"block text-sm mb-2\",\n children: \"Doctor *\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 615,\n columnNumber: 15\n }, this), isDoctor ? /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"px-4 py-2 bg-gray-100 rounded-lg text-gray-700\",\n children: [\"Dr. \", user.firstName, \" \", user.lastName]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 617,\n columnNumber: 17\n }, this) : /*#__PURE__*/_jsxDEV(\"select\", {\n value: selectedDoctorId,\n onChange: e => setSelectedDoctorId(e.target.value),\n className: \"w-full px-4 py-2 border rounded-lg\",\n required: true,\n children: [/*#__PURE__*/_jsxDEV(\"option\", {\n value: \"\",\n children: \"Select doctor\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 627,\n columnNumber: 19\n }, this), doctors.map(doc => /*#__PURE__*/_jsxDEV(\"option\", {\n value: doc.doctorId,\n children: [\"Dr. \", doc.firstName, \" \", doc.lastName]\n }, doc.doctorId, true, {\n fileName: _jsxFileName,\n lineNumber: 629,\n columnNumber: 21\n }, this))]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 621,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 614,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n style: {\n fontWeight: 'normal'\n },\n className: \"block text-sm mb-2\",\n children: \"Symptom *\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 637,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"select\", {\n value: symptomsForm.symptomId,\n onChange: e => setSymptomsForm({\n ...symptomsForm,\n symptomId: e.target.value\n }),\n className: \"w-full px-4 py-2 border rounded-lg\",\n required: true,\n children: [/*#__PURE__*/_jsxDEV(\"option\", {\n value: \"\",\n children: \"Select symptom\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 644,\n columnNumber: 17\n }, this), symptoms.filter(s => {\n var _record$symptoms;\n return !((_record$symptoms = record.symptoms) !== null && _record$symptoms !== void 0 && _record$symptoms.some(rs => rs.symptomId === s.id));\n }).map(symptom => /*#__PURE__*/_jsxDEV(\"option\", {\n value: symptom.id,\n children: symptom.name\n }, symptom.id, false, {\n fileName: _jsxFileName,\n lineNumber: 646,\n columnNumber: 19\n }, this))]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 638,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 636,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"submit\",\n style: {\n background: '#9333ea',\n color: 'white',\n padding: '6px 14px',\n borderRadius: '6px',\n border: 'none',\n cursor: 'pointer',\n fontSize: '14px',\n fontWeight: '600'\n },\n onMouseEnter: e => e.currentTarget.style.background = '#7e22ce',\n onMouseLeave: e => e.currentTarget.style.background = '#9333ea',\n children: \"Record Symptom\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 652,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 613,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 611,\n columnNumber: 9\n }, this), activeTab === 'allergies' && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-white rounded-lg shadow p-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n style: {\n fontSize: '20px',\n fontWeight: 'normal',\n marginBottom: '16px'\n },\n children: \"Record Patient Allergies\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 665,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleAddAllergy,\n className: \"space-y-4 max-w-2xl\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n style: {\n fontWeight: 'normal'\n },\n className: \"block text-sm mb-2\",\n children: \"Doctor *\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 668,\n columnNumber: 15\n }, this), isDoctor ? /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"px-4 py-2 bg-gray-100 rounded-lg text-gray-700\",\n children: [\"Dr. \", user.firstName, \" \", user.lastName]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 670,\n columnNumber: 17\n }, this) : /*#__PURE__*/_jsxDEV(\"select\", {\n value: selectedDoctorId,\n onChange: e => setSelectedDoctorId(e.target.value),\n className: \"w-full px-4 py-2 border rounded-lg\",\n required: true,\n children: [/*#__PURE__*/_jsxDEV(\"option\", {\n value: \"\",\n children: \"Select doctor\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 680,\n columnNumber: 19\n }, this), doctors.map(doc => /*#__PURE__*/_jsxDEV(\"option\", {\n value: doc.doctorId,\n children: [\"Dr. \", doc.firstName, \" \", doc.lastName]\n }, doc.doctorId, true, {\n fileName: _jsxFileName,\n lineNumber: 682,\n columnNumber: 21\n }, this))]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 674,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 667,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n style: {\n fontWeight: 'normal'\n },\n className: \"block text-sm mb-2\",\n children: \"Allergy *\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 690,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"select\", {\n value: allergyForm.allergyId,\n onChange: e => setAllergyForm({\n ...allergyForm,\n allergyId: e.target.value\n }),\n className: \"w-full px-4 py-2 border rounded-lg\",\n required: true,\n children: [/*#__PURE__*/_jsxDEV(\"option\", {\n value: \"\",\n children: \"Select allergy\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 697,\n columnNumber: 17\n }, this), allergies.filter(a => {\n var _record$allergies;\n return !((_record$allergies = record.allergies) !== null && _record$allergies !== void 0 && _record$allergies.some(ra => ra.allergyId === a.id));\n }).map(allergy => /*#__PURE__*/_jsxDEV(\"option\", {\n value: allergy.id,\n children: allergy.name\n }, allergy.id, false, {\n fileName: _jsxFileName,\n lineNumber: 699,\n columnNumber: 19\n }, this))]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 691,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 689,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n style: {\n fontWeight: 'normal'\n },\n className: \"block text-sm mb-2\",\n children: \"Severity *\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 706,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"select\", {\n value: allergyForm.severity,\n onChange: e => setAllergyForm({\n ...allergyForm,\n severity: e.target.value\n }),\n className: \"w-full px-4 py-2 border rounded-lg\",\n children: [/*#__PURE__*/_jsxDEV(\"option\", {\n value: \"LOW\",\n children: \"Low\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 712,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"option\", {\n value: \"MEDIUM\",\n children: \"Medium\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 713,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"option\", {\n value: \"HIGH\",\n children: \"High\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 714,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"option\", {\n value: \"CRITICAL\",\n children: \"Critical\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 715,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 707,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 705,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n style: {\n fontWeight: 'normal'\n },\n className: \"block text-sm mb-2\",\n children: \"Reaction\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 719,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"textarea\", {\n value: allergyForm.reaction,\n onChange: e => setAllergyForm({\n ...allergyForm,\n reaction: e.target.value\n }),\n placeholder: \"Describe the allergic reaction\",\n className: \"w-full px-4 py-2 border rounded-lg\",\n rows: \"3\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 720,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 718,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"submit\",\n style: {\n background: '#9333ea',\n color: 'white',\n padding: '6px 14px',\n borderRadius: '6px',\n border: 'none',\n cursor: 'pointer',\n fontSize: '14px',\n fontWeight: '600'\n },\n onMouseEnter: e => e.currentTarget.style.background = '#7e22ce',\n onMouseLeave: e => e.currentTarget.style.background = '#9333ea',\n children: \"Record Allergy\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 728,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 666,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 664,\n columnNumber: 9\n }, this), activeTab === 'prescription' && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-white rounded-lg shadow p-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n style: {\n fontSize: '20px',\n fontWeight: 'normal',\n marginBottom: '16px'\n },\n children: \"Record Prescription\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 741,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleAddPrescription,\n className: \"space-y-4 max-w-2xl\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n style: {\n fontWeight: 'normal'\n },\n className: \"block text-sm mb-2\",\n children: \"Doctor *\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 744,\n columnNumber: 15\n }, this), isDoctor ? /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"px-4 py-2 bg-gray-100 rounded-lg text-gray-700\",\n children: [\"Dr. \", user.firstName, \" \", user.lastName]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 746,\n columnNumber: 17\n }, this) : /*#__PURE__*/_jsxDEV(\"select\", {\n value: selectedDoctorId,\n onChange: e => setSelectedDoctorId(e.target.value),\n className: \"w-full px-4 py-2 border rounded-lg\",\n required: true,\n children: [/*#__PURE__*/_jsxDEV(\"option\", {\n value: \"\",\n children: \"Select doctor\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 756,\n columnNumber: 19\n }, this), doctors.map(doc => /*#__PURE__*/_jsxDEV(\"option\", {\n value: doc.doctorId,\n children: [\"Dr. \", doc.firstName, \" \", doc.lastName]\n }, doc.doctorId, true, {\n fileName: _jsxFileName,\n lineNumber: 758,\n columnNumber: 21\n }, this))]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 750,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 743,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n style: {\n fontWeight: 'normal'\n },\n className: \"block text-sm mb-2\",\n children: \"Medication *\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 766,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"select\", {\n value: prescriptionForm.prescriptionId,\n onChange: e => setPrescriptionForm({\n ...prescriptionForm,\n prescriptionId: e.target.value\n }),\n className: \"w-full px-4 py-2 border rounded-lg\",\n required: true,\n children: [/*#__PURE__*/_jsxDEV(\"option\", {\n value: \"\",\n children: \"Select medication\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 775,\n columnNumber: 17\n }, this), prescriptions.map(prescription => /*#__PURE__*/_jsxDEV(\"option\", {\n value: prescription.id,\n children: prescription.name\n }, prescription.id, false, {\n fileName: _jsxFileName,\n lineNumber: 777,\n columnNumber: 19\n }, this))]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 767,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 765,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"grid grid-cols-2 gap-4\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n style: {\n fontWeight: 'normal'\n },\n className: \"block text-sm mb-2\",\n children: \"Dosage *\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 785,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"text\",\n value: prescriptionForm.dosage,\n onChange: e => setPrescriptionForm({\n ...prescriptionForm,\n dosage: e.target.value\n }),\n placeholder: \"e.g., 500mg\",\n className: \"w-full px-4 py-2 border rounded-lg\",\n required: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 786,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 784,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n style: {\n fontWeight: 'normal'\n },\n className: \"block text-sm mb-2\",\n children: \"Frequency *\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 798,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"text\",\n value: prescriptionForm.frequency,\n onChange: e => setPrescriptionForm({\n ...prescriptionForm,\n frequency: e.target.value\n }),\n placeholder: \"e.g., Twice daily\",\n className: \"w-full px-4 py-2 border rounded-lg\",\n required: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 799,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 797,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n style: {\n fontWeight: 'normal'\n },\n className: \"block text-sm mb-2\",\n children: \"Duration *\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 811,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"text\",\n value: prescriptionForm.duration,\n onChange: e => setPrescriptionForm({\n ...prescriptionForm,\n duration: e.target.value\n }),\n placeholder: \"e.g., 7 days\",\n className: \"w-full px-4 py-2 border rounded-lg\",\n required: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 812,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 810,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 783,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n style: {\n fontWeight: 'normal'\n },\n className: \"block text-sm mb-2\",\n children: \"Reason for Prescription\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 825,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"textarea\", {\n value: prescriptionForm.reason,\n onChange: e => setPrescriptionForm({\n ...prescriptionForm,\n reason: e.target.value\n }),\n placeholder: \"Describe why this medication is prescribed\",\n className: \"w-full px-4 py-2 border rounded-lg\",\n rows: \"3\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 826,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 824,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"submit\",\n style: {\n background: '#9333ea',\n color: 'white',\n padding: '6px 14px',\n borderRadius: '6px',\n border: 'none',\n cursor: 'pointer',\n fontSize: '14px',\n fontWeight: '600'\n },\n onMouseEnter: e => e.currentTarget.style.background = '#7e22ce',\n onMouseLeave: e => e.currentTarget.style.background = '#9333ea',\n children: \"Record Prescription\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 834,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 742,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 740,\n columnNumber: 9\n }, this), activeTab === 'procedures' && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-white rounded-lg shadow p-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n style: {\n fontSize: '20px',\n fontWeight: 'normal',\n marginBottom: '16px'\n },\n children: \"Request Procedure\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 847,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: async e => {\n e.preventDefault();\n setError(null);\n if (!procedureForm.procedureId) {\n setError('Please select a procedure');\n return;\n }\n try {\n setLoading(true);\n const doctorId = user.doctorId || 1;\n const request = {\n patientId: record.patientId,\n doctorId: parseInt(doctorId),\n procedureId: parseInt(procedureForm.procedureId),\n procedureDate: procedureForm.procedureDate,\n notes: procedureForm.notes,\n diagnosisId: procedureForm.diagnosisId ? parseInt(procedureForm.diagnosisId) : null\n };\n await procedureService.requestProcedure(request);\n setSuccess('Procedure requested successfully');\n setProcedureForm({\n procedureId: '',\n procedureDate: new Date().toISOString().split('T')[0],\n notes: '',\n diagnosisId: ''\n });\n setTimeout(() => setSuccess(null), 3000);\n } catch (err) {\n var _err$response6, _err$response6$data;\n setError('Failed to request procedure: ' + (((_err$response6 = err.response) === null || _err$response6 === void 0 ? void 0 : (_err$response6$data = _err$response6.data) === null || _err$response6$data === void 0 ? void 0 : _err$response6$data.error) || err.message));\n } finally {\n setLoading(false);\n }\n },\n className: \"space-y-4\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"grid grid-cols-2 gap-4\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n style: {\n fontWeight: 'normal'\n },\n className: \"block text-sm mb-2\",\n children: \"Procedure *\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 889,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"select\", {\n value: procedureForm.procedureId,\n onChange: e => setProcedureForm({\n ...procedureForm,\n procedureId: e.target.value\n }),\n className: \"w-full px-4 py-2 border rounded-lg\",\n required: true,\n children: [/*#__PURE__*/_jsxDEV(\"option\", {\n value: \"\",\n children: \"Select a procedure\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 896,\n columnNumber: 19\n }, this), procedures.map(proc => /*#__PURE__*/_jsxDEV(\"option\", {\n value: proc.procedureId,\n children: [proc.procedureType, \" ($\", proc.cost, \")\"]\n }, proc.procedureId, true, {\n fileName: _jsxFileName,\n lineNumber: 898,\n columnNumber: 21\n }, this))]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 890,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 888,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n style: {\n fontWeight: 'normal'\n },\n className: \"block text-sm mb-2\",\n children: \"Procedure Date *\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 905,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"date\",\n value: procedureForm.procedureDate,\n onChange: e => setProcedureForm({\n ...procedureForm,\n procedureDate: e.target.value\n }),\n className: \"w-full px-4 py-2 border rounded-lg\",\n required: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 906,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 904,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 887,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n style: {\n fontWeight: 'normal'\n },\n className: \"block text-sm mb-2\",\n children: \"Related Diagnosis (Optional)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 916,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"select\", {\n value: procedureForm.diagnosisId,\n onChange: e => setProcedureForm({\n ...procedureForm,\n diagnosisId: e.target.value\n }),\n className: \"w-full px-4 py-2 border rounded-lg\",\n children: [/*#__PURE__*/_jsxDEV(\"option\", {\n value: \"\",\n children: \"Select diagnosis (optional)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 922,\n columnNumber: 17\n }, this), diagnoses.map(diagnosis => /*#__PURE__*/_jsxDEV(\"option\", {\n value: diagnosis.id,\n children: diagnosis.name\n }, diagnosis.id, false, {\n fileName: _jsxFileName,\n lineNumber: 924,\n columnNumber: 19\n }, this))]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 917,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 915,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n style: {\n fontWeight: 'normal'\n },\n className: \"block text-sm mb-2\",\n children: \"Notes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 931,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"textarea\", {\n value: procedureForm.notes,\n onChange: e => setProcedureForm({\n ...procedureForm,\n notes: e.target.value\n }),\n placeholder: \"Pre-procedure instructions or special notes\",\n className: \"w-full px-4 py-2 border rounded-lg\",\n rows: \"3\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 932,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 930,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"submit\",\n disabled: loading,\n style: {\n background: loading ? '#9ca3af' : '#9333ea',\n color: 'white',\n padding: '6px 14px',\n borderRadius: '6px',\n border: 'none',\n cursor: 'pointer',\n fontSize: '14px',\n fontWeight: '600'\n },\n onMouseEnter: e => !loading && (e.currentTarget.style.background = '#7e22ce'),\n onMouseLeave: e => !loading && (e.currentTarget.style.background = '#9333ea'),\n children: loading ? 'Requesting...' : 'Request Procedure'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 940,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 848,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 846,\n columnNumber: 9\n }, this), activeTab === 'lab-tests' && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-white rounded-lg shadow p-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n style: {\n fontSize: '20px',\n fontWeight: 'normal',\n marginBottom: '16px'\n },\n children: \"Request Lab Test\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 954,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: async e => {\n e.preventDefault();\n setError(null);\n if (!labTestForm.testId) {\n setError('Please select a test');\n return;\n }\n try {\n setLoading(true);\n const doctorId = user.doctorId || 1;\n const request = {\n patientId: record.patientId,\n medicalRecordId: record.recordId,\n doctorId: parseInt(doctorId),\n testId: parseInt(labTestForm.testId),\n testDate: labTestForm.testDate,\n notes: labTestForm.notes\n };\n await labService.requestLabTest(request);\n setSuccess('Lab test requested successfully');\n setLabTestForm({\n testId: '',\n testDate: new Date().toISOString().split('T')[0],\n notes: ''\n });\n setTimeout(() => setSuccess(null), 3000);\n } catch (err) {\n var _err$response7, _err$response7$data;\n setError('Failed to request lab test: ' + (((_err$response7 = err.response) === null || _err$response7 === void 0 ? void 0 : (_err$response7$data = _err$response7.data) === null || _err$response7$data === void 0 ? void 0 : _err$response7$data.error) || err.message));\n } finally {\n setLoading(false);\n }\n },\n className: \"space-y-4\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"grid grid-cols-2 gap-4\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n style: {\n fontWeight: 'normal'\n },\n className: \"block text-sm mb-2\",\n children: \"Test\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 995,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"select\", {\n value: labTestForm.testId,\n onChange: e => setLabTestForm({\n ...labTestForm,\n testId: e.target.value\n }),\n className: \"w-full px-4 py-2 border rounded-lg\",\n required: true,\n children: [/*#__PURE__*/_jsxDEV(\"option\", {\n value: \"\",\n children: \"Select a test\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1002,\n columnNumber: 19\n }, this), labTests.map(test => /*#__PURE__*/_jsxDEV(\"option\", {\n value: test.testId,\n children: [test.testName, \" ($\", test.cost, \")\"]\n }, test.testId, true, {\n fileName: _jsxFileName,\n lineNumber: 1004,\n columnNumber: 21\n }, this))]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 996,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 994,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n style: {\n fontWeight: 'normal'\n },\n className: \"block text-sm mb-2\",\n children: \"Test Date\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1011,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"date\",\n value: labTestForm.testDate,\n onChange: e => setLabTestForm({\n ...labTestForm,\n testDate: e.target.value\n }),\n className: \"w-full px-4 py-2 border rounded-lg\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1012,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1010,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 993,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n style: {\n fontWeight: 'normal'\n },\n className: \"block text-sm mb-2\",\n children: \"Notes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1021,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"textarea\", {\n value: labTestForm.notes,\n onChange: e => setLabTestForm({\n ...labTestForm,\n notes: e.target.value\n }),\n placeholder: \"Additional notes for the lab technician\",\n className: \"w-full px-4 py-2 border rounded-lg\",\n rows: \"3\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1022,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1020,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"submit\",\n disabled: loading,\n style: {\n background: loading ? '#9ca3af' : '#9333ea',\n color: 'white',\n padding: '6px 14px',\n borderRadius: '6px',\n border: 'none',\n cursor: 'pointer',\n fontSize: '14px',\n fontWeight: '600'\n },\n onMouseEnter: e => !loading && (e.currentTarget.style.background = '#7e22ce'),\n onMouseLeave: e => !loading && (e.currentTarget.style.background = '#9333ea'),\n children: loading ? 'Requesting...' : 'Request Test'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1030,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 955,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 953,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 282,\n columnNumber: 5\n }, this);\n}\n_s(MedicalRecordDetail, \"Jmsg0lGN8qywKXO6ctw8J6N/Ynk=\", false, function () {\n return [useParams, useNavigate];\n});\n_c = MedicalRecordDetail;\nexport default MedicalRecordDetail;\nvar _c;\n$RefreshReg$(_c, \"MedicalRecordDetail\");","map":{"version":3,"names":["React","useState","useEffect","useCallback","useParams","useNavigate","medicalRecordService","doctorService","labService","procedureService","ErrorAlert","SuccessAlert","Loading","apiClient","jsxDEV","_jsxDEV","MedicalRecordDetail","_s","id","navigate","user","JSON","parse","localStorage","getItem","isDoctor","role","record","setRecord","loading","setLoading","error","setError","success","setSuccess","activeTab","setActiveTab","doctors","setDoctors","selectedDoctorId","setSelectedDoctorId","doctorId","diagnosisForm","setDiagnosisForm","diagnosisId","symptomsForm","setSymptomsForm","symptomId","allergyForm","setAllergyForm","allergyId","severity","reaction","prescriptionForm","setPrescriptionForm","prescriptionId","dosage","frequency","duration","reason","diagnoses","setDiagnoses","symptoms","setSymptoms","allergies","setAllergies","prescriptions","setPrescriptions","labTests","setLabTests","procedures","setProcedures","labTestForm","setLabTestForm","testId","testDate","Date","toISOString","split","notes","procedureForm","setProcedureForm","procedureId","procedureDate","labResults","setLabResults","procedureResults","setProcedureResults","fetchRecord","response","getMedicalRecordByPatientId","data","resultsResponse","getLabResultsForMedicalRecord","recordId","err","console","procedureResultsResponse","getProcedureResultsForMedicalRecord","fetchDoctors","getAllDoctors","length","fetchDropdownOptions","log","diagnosesRes","get","symptomsRes","allergiesRes","prescriptionsRes","testsRes","getAllLabTests","proceduresRes","getAllProcedures","_err$response","_err$response$data","message","handleAddDiagnosis","e","preventDefault","selectedDiagnosis","find","d","parseInt","post","patientId","name","description","setTimeout","_err$response2","_err$response2$data","handleAddSymptom","_err$response3","_err$response3$data","handleAddAllergy","_err$response4","_err$response4$data","handleAddPrescription","trim","selectedPrescription","p","medicalRecordId","medicationName","_err$response5","_err$response5$data","fileName","_jsxFileName","lineNumber","columnNumber","children","onClose","className","style","fontSize","fontWeight","onClick","marginBottom","patientName","embg","map","diagnosis","doctorName","symptom","symptomName","allergy","allergyName","padding","borderRadius","color","background","prescription","reports","report","reportDate","reportId","result","testName","results","resultDate","resultId","_result$procedure","procedure","procedureType","resultDescription","onSubmit","firstName","lastName","value","onChange","target","required","doc","type","border","cursor","onMouseEnter","currentTarget","onMouseLeave","filter","s","_record$symptoms","some","rs","a","_record$allergies","ra","placeholder","rows","request","requestProcedure","_err$response6","_err$response6$data","proc","cost","disabled","requestLabTest","_err$response7","_err$response7$data","test","_c","$RefreshReg$"],"sources":["C:/Users/User/Downloads/medora5/frontend/src/pages/medical-records/MedicalRecordDetail.js"],"sourcesContent":["import React, { useState, useEffect, useCallback } from 'react';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport { medicalRecordService } from '../../services/medicalRecordService';\nimport { doctorService } from '../../services/doctorService';\nimport { labService } from '../../services/labService';\nimport { procedureService } from '../../services/procedureService';\nimport ErrorAlert from '../../components/ErrorAlert';\nimport SuccessAlert from '../../components/SuccessAlert';\nimport Loading from '../../components/Loading';\nimport apiClient from '../../services/api';\n\nfunction MedicalRecordDetail() {\n const { id } = useParams();\n const navigate = useNavigate();\n const user = JSON.parse(localStorage.getItem('user') || '{}');\n const isDoctor = user.role === 'DOCTOR';\n\n const [record, setRecord] = useState(null);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(null);\n const [success, setSuccess] = useState(null);\n const [activeTab, setActiveTab] = useState('view');\n const [doctors, setDoctors] = useState([]);\n const [selectedDoctorId, setSelectedDoctorId] = useState(isDoctor ? user.doctorId : '');\n\n // Diagnosis form\n const [diagnosisForm, setDiagnosisForm] = useState({\n diagnosisId: '',\n doctorId: '',\n });\n\n // Symptoms form\n const [symptomsForm, setSymptomsForm] = useState({\n symptomId: '',\n });\n\n // Allergies form\n const [allergyForm, setAllergyForm] = useState({\n allergyId: '',\n severity: 'MEDIUM',\n reaction: '',\n });\n\n // Prescription form\n const [prescriptionForm, setPrescriptionForm] = useState({\n prescriptionId: '',\n dosage: '',\n frequency: '',\n duration: '',\n reason: '',\n });\n\n // Dropdown options\n const [diagnoses, setDiagnoses] = useState([]);\n const [symptoms, setSymptoms] = useState([]);\n const [allergies, setAllergies] = useState([]);\n const [prescriptions, setPrescriptions] = useState([]);\n const [labTests, setLabTests] = useState([]);\n const [procedures, setProcedures] = useState([]);\n\n // Lab test form\n const [labTestForm, setLabTestForm] = useState({\n testId: '',\n testDate: new Date().toISOString().split('T')[0],\n notes: '',\n });\n\n // Procedure form\n const [procedureForm, setProcedureForm] = useState({\n procedureId: '',\n procedureDate: new Date().toISOString().split('T')[0],\n notes: '',\n diagnosisId: '',\n });\n\n const [labResults, setLabResults] = useState([]);\n const [procedureResults, setProcedureResults] = useState([]);\n\n const fetchRecord = useCallback(async () => {\n try {\n setLoading(true);\n const response = await medicalRecordService.getMedicalRecordByPatientId(id);\n setRecord(response.data);\n\n // Fetch lab results\n try {\n const resultsResponse = await labService.getLabResultsForMedicalRecord(response.data.recordId);\n setLabResults(resultsResponse.data || []);\n } catch (err) {\n console.error('Failed to fetch lab results:', err);\n setLabResults([]);\n }\n\n // Fetch procedure results\n try {\n const procedureResultsResponse = await procedureService.getProcedureResultsForMedicalRecord(response.data.recordId);\n setProcedureResults(procedureResultsResponse.data || []);\n } catch (err) {\n console.error('Failed to fetch procedure results:', err);\n setProcedureResults([]);\n }\n } catch (err) {\n setError('Failed to fetch medical record');\n console.error(err);\n } finally {\n setLoading(false);\n }\n }, [id]);\n\n useEffect(() => {\n const fetchDoctors = async () => {\n try {\n if (!isDoctor) {\n const response = await doctorService.getAllDoctors();\n setDoctors(response.data);\n if (response.data.length > 0 && !selectedDoctorId) {\n setSelectedDoctorId(response.data[0].doctorId);\n }\n }\n } catch (err) {\n console.error('Failed to fetch doctors', err);\n }\n };\n\n const fetchDropdownOptions = async () => {\n try {\n console.log('Fetching dropdown options...');\n const diagnosesRes = await apiClient.get('/medical-records/dropdown/diagnoses');\n console.log('Diagnoses:', diagnosesRes.data);\n\n const symptomsRes = await apiClient.get('/medical-records/dropdown/symptoms');\n console.log('Symptoms:', symptomsRes.data);\n\n const allergiesRes = await apiClient.get('/medical-records/dropdown/allergies');\n console.log('Allergies:', allergiesRes.data);\n\n const prescriptionsRes = await apiClient.get('/medical-records/dropdown/prescriptions');\n console.log('Prescriptions:', prescriptionsRes.data);\n\n const testsRes = await labService.getAllLabTests();\n console.log('Lab Tests:', testsRes.data);\n\n const proceduresRes = await procedureService.getAllProcedures();\n console.log('Procedures:', proceduresRes.data);\n\n setDiagnoses(diagnosesRes.data || []);\n setSymptoms(symptomsRes.data || []);\n setAllergies(allergiesRes.data || []);\n setPrescriptions(prescriptionsRes.data || []);\n setLabTests(testsRes.data || []);\n setProcedures(proceduresRes.data || []);\n console.log('Dropdown options set successfully');\n } catch (err) {\n console.error('Error fetching dropdown options:', err);\n setError('Failed to load dropdown options: ' + (err.response?.data?.error || err.message));\n }\n };\n\n fetchRecord();\n fetchDoctors();\n fetchDropdownOptions();\n }, [id, isDoctor, fetchRecord, selectedDoctorId]);\n\n const handleAddDiagnosis = async (e) => {\n e.preventDefault();\n try {\n if (!diagnosisForm.diagnosisId) {\n setError('Please select a diagnosis');\n return;\n }\n if (!selectedDoctorId) {\n setError('Please select a doctor');\n return;\n }\n const selectedDiagnosis = diagnoses.find(d => d.id === parseInt(diagnosisForm.diagnosisId));\n await apiClient.post('/diagnoses', {\n patientId: parseInt(record.patientId),\n doctorId: parseInt(selectedDoctorId),\n name: selectedDiagnosis.name,\n description: '',\n });\n setSuccess('Diagnosis recorded successfully');\n setDiagnosisForm({ diagnosisId: '', doctorId: '' });\n setTimeout(() => fetchRecord(), 1000);\n } catch (err) {\n setError(err.response?.data?.error || 'Failed to record diagnosis');\n }\n };\n\n const handleAddSymptom = async (e) => {\n e.preventDefault();\n try {\n if (!symptomsForm.symptomId) {\n setError('Please select a symptom');\n return;\n }\n await apiClient.post(`/medical-records/${record.recordId}/symptoms`, {\n symptomId: parseInt(symptomsForm.symptomId),\n severity: 'MEDIUM',\n });\n setSuccess('Symptom recorded successfully');\n setSymptomsForm({ symptomId: '' });\n setTimeout(() => fetchRecord(), 1000);\n } catch (err) {\n setError(err.response?.data?.error || 'Failed to record symptom');\n }\n };\n\n const handleAddAllergy = async (e) => {\n e.preventDefault();\n try {\n if (!allergyForm.allergyId) {\n setError('Please select an allergy');\n return;\n }\n await apiClient.post(`/medical-records/${record.recordId}/allergies`, {\n allergyId: parseInt(allergyForm.allergyId),\n severity: allergyForm.severity,\n reaction: allergyForm.reaction,\n });\n setSuccess('Allergy recorded successfully');\n setAllergyForm({ allergyId: '', severity: 'MEDIUM', reaction: '' });\n setTimeout(() => fetchRecord(), 1000);\n } catch (err) {\n setError(err.response?.data?.error || 'Failed to record allergy');\n }\n };\n\n const handleAddPrescription = async (e) => {\n e.preventDefault();\n try {\n if (!prescriptionForm.prescriptionId) {\n setError('Please select a prescription medication');\n return;\n }\n if (!prescriptionForm.dosage.trim()) {\n setError('Dosage is required');\n return;\n }\n if (!prescriptionForm.frequency.trim()) {\n setError('Frequency is required');\n return;\n }\n if (!prescriptionForm.duration.trim()) {\n setError('Duration is required');\n return;\n }\n const selectedPrescription = prescriptions.find(p => p.id === parseInt(prescriptionForm.prescriptionId));\n await apiClient.post('/prescriptions', {\n medicalRecordId: record.recordId,\n medicationName: selectedPrescription.name,\n dosage: prescriptionForm.dosage,\n frequency: prescriptionForm.frequency,\n duration: prescriptionForm.duration,\n notes: prescriptionForm.reason,\n });\n setSuccess('Prescription recorded successfully');\n setPrescriptionForm({\n prescriptionId: '',\n dosage: '',\n frequency: '',\n duration: '',\n reason: '',\n });\n setTimeout(() => fetchRecord(), 1000);\n } catch (err) {\n setError(err.response?.data?.error || 'Failed to record prescription');\n }\n };\n\n if (loading) return <Loading />;\n\n if (!record) {\n return (\n <div>\n <ErrorAlert message=\"Medical record not found\" onClose={() => navigate('/medical-records')} />\n </div>\n );\n }\n\n return (\n <div>\n <div className=\"flex justify-between items-center mb-6\">\n <h1 style={{ fontSize: '36px', fontWeight: 'normal' }}>Medical Record</h1>\n <button\n onClick={() => navigate('/medical-records')}\n className=\"bg-gray-300 text-gray-700 px-4 py-2 rounded hover:bg-gray-400\"\n >\n Back\n </button>\n </div>\n\n {error && <ErrorAlert message={error} onClose={() => setError(null)} />}\n {success && <SuccessAlert message={success} onClose={() => setSuccess(null)} />}\n\n {/* Patient Info */}\n <div className=\"bg-white rounded-lg shadow p-6 mb-6\">\n <h2 style={{ fontSize: '20px', fontWeight: 'normal', marginBottom: '16px' }}>Patient Information</h2>\n <div className=\"grid grid-cols-4 gap-4\">\n <div>\n <p className=\"font-normal text-sm text-gray-600\">Patient Name</p>\n <p className=\"font-normal\">{record.patientName}</p>\n </div>\n <div>\n <p className=\"font-normal text-sm text-gray-600\">EMBG</p>\n <p className=\"font-normal\">{record.embg}</p>\n </div>\n <div>\n <p className=\"font-normal text-sm text-gray-600\">Record ID</p>\n <p className=\"font-normal\">{record.recordId}</p>\n </div>\n <div>\n <p className=\"font-normal text-sm text-gray-600\">Patient ID</p>\n <p className=\"font-normal\">{record.patientId}</p>\n </div>\n </div>\n </div>\n\n {/* Tabs */}\n <div className=\"flex gap-2 mb-6 border-b\">\n <button\n onClick={() => setActiveTab('view')}\n style={{ fontWeight: 'normal' }}\n className={`px-6 py-3 ${\n activeTab === 'view'\n ? 'border-b-2 border-purple-600 text-purple-600'\n : 'text-purple-600 hover:text-purple-700'\n }`}\n >\n View Medical Data\n </button>\n <span className=\"text-gray-600 px-3\" style={{ fontWeight: 'normal' }}>|</span>\n <button\n onClick={() => setActiveTab('diagnosis')}\n style={{ fontWeight: 'normal' }}\n className={`px-6 py-3 ${\n activeTab === 'diagnosis'\n ? 'border-b-2 border-purple-600 text-purple-600'\n : 'text-purple-600 hover:text-purple-700'\n }`}\n >\n Record Diagnosis\n </button>\n <span className=\"text-gray-600 px-3\" style={{ fontWeight: 'normal' }}>|</span>\n <button\n onClick={() => setActiveTab('symptoms')}\n style={{ fontWeight: 'normal' }}\n className={`px-6 py-3 ${\n activeTab === 'symptoms'\n ? 'border-b-2 border-purple-600 text-purple-600'\n : 'text-purple-600 hover:text-purple-700'\n }`}\n >\n Record Symptoms\n </button>\n <span className=\"text-gray-600 px-3\" style={{ fontWeight: 'normal' }}>|</span>\n <button\n onClick={() => setActiveTab('allergies')}\n style={{ fontWeight: 'normal' }}\n className={`px-6 py-3 ${\n activeTab === 'allergies'\n ? 'border-b-2 border-purple-600 text-purple-600'\n : 'text-purple-600 hover:text-purple-700'\n }`}\n >\n Record Allergies\n </button>\n <span className=\"text-gray-600 px-3\" style={{ fontWeight: 'normal' }}>|</span>\n <button\n onClick={() => setActiveTab('prescription')}\n style={{ fontWeight: 'normal' }}\n className={`px-6 py-3 ${\n activeTab === 'prescription'\n ? 'border-b-2 border-purple-600 text-purple-600'\n : 'text-purple-600 hover:text-purple-700'\n }`}\n >\n Record Prescription\n </button>\n <span className=\"text-gray-600 px-3\" style={{ fontWeight: 'normal' }}>|</span>\n <button\n onClick={() => setActiveTab('lab-tests')}\n style={{ fontWeight: 'normal' }}\n className={`px-6 py-3 ${\n activeTab === 'lab-tests'\n ? 'border-b-2 border-purple-600 text-purple-600'\n : 'text-purple-600 hover:text-purple-700'\n }`}\n >\n Request Lab Test\n </button>\n <span className=\"text-gray-600 px-3\" style={{ fontWeight: 'normal' }}>|</span>\n <button\n onClick={() => setActiveTab('procedures')}\n style={{ fontWeight: 'normal' }}\n className={`px-6 py-3 ${\n activeTab === 'procedures'\n ? 'border-b-2 border-purple-600 text-purple-600'\n : 'text-purple-600 hover:text-purple-700'\n }`}\n >\n Request Procedure\n </button>\n </div>\n\n {/* View Medical Data Tab */}\n {activeTab === 'view' && (\n <div className=\"space-y-6\">\n {/* Diagnoses */}\n {record.diagnoses && record.diagnoses.length > 0 && (\n <div className=\"bg-white rounded-lg shadow p-6\">\n <h3 className=\"font-normal\" style={{ fontSize: '20px', marginBottom: '16px' }}>Diagnoses</h3>\n <div className=\"space-y-3\">\n {record.diagnoses.map((diagnosis) => (\n <div key={diagnosis.diagnosisId} className=\"border-l-4 border-purple-500 pl-4 py-2\">\n <p className=\"font-normal\" style={{ fontSize: '18px' }}>{diagnosis.name}</p>\n {diagnosis.description && (\n <p className=\"font-normal text-gray-600 text-sm\">{diagnosis.description}</p>\n )}\n <p className=\"font-normal text-xs text-gray-500\">By: {diagnosis.doctorName}</p>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* Symptoms */}\n {record.symptoms && record.symptoms.length > 0 && (\n <div className=\"bg-white rounded-lg shadow p-6\">\n <h3 className=\"font-normal\" style={{ fontSize: '20px', marginBottom: '16px' }}>Symptoms</h3>\n <div className=\"flex flex-wrap gap-2\">\n {record.symptoms.map((symptom) => (\n <span\n key={symptom.symptomId}\n className=\"bg-yellow-100 text-yellow-800 px-3 py-1 rounded-full text-sm font-normal\"\n >\n {symptom.symptomName}\n </span>\n ))}\n </div>\n </div>\n )}\n\n {/* Allergies */}\n {record.allergies && record.allergies.length > 0 && (\n <div className=\"bg-white rounded-lg shadow p-6\">\n <h3 className=\"font-normal\" style={{ fontSize: '20px', marginBottom: '16px' }}>Allergies</h3>\n <div className=\"space-y-3\">\n {record.allergies.map((allergy) => (\n <div key={allergy.allergyId} className=\"border-l-4 border-red-500 pl-4 py-2\">\n <p className=\"font-normal\">{allergy.allergyName}</p>\n <p className=\"font-normal\" style={{ fontSize: '14px' }}>\n <span\n className=\"font-normal\"\n style={{\n padding: '4px 8px',\n borderRadius: '4px',\n color: 'white',\n fontSize: '12px',\n background: allergy.severity === 'CRITICAL' ? '#dc2626' : allergy.severity === 'HIGH' ? '#ef4444' : allergy.severity === 'MEDIUM' ? '#eab308' : '#22c55e'\n }}\n >\n {allergy.severity} Severity\n </span>\n </p>\n {allergy.reaction && (\n <p className=\"font-normal text-gray-600 text-sm\">Reaction: {allergy.reaction}</p>\n )}\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* Prescriptions */}\n {record.prescriptions && record.prescriptions.length > 0 && (\n <div className=\"bg-white rounded-lg shadow p-6\">\n <h3 className=\"font-normal\" style={{ fontSize: '20px', marginBottom: '16px' }}>Prescriptions</h3>\n <div className=\"space-y-3\">\n {record.prescriptions.map((prescription) => (\n <div key={prescription.prescriptionId} className=\"border-l-4 border-purple-500 pl-4 py-2\">\n <p className=\"font-normal\">{prescription.medicationName}</p>\n <p className=\"font-normal text-sm text-gray-600\">Dosage: {prescription.dosage}</p>\n <p className=\"font-normal text-sm text-gray-600\">Frequency: {prescription.frequency}</p>\n <p className=\"font-normal text-sm text-gray-600\">Duration: {prescription.duration}</p>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* Reports */}\n {record.reports && record.reports.length > 0 && (\n <div className=\"bg-white rounded-lg shadow p-6\">\n <h3 className=\"font-normal\" style={{ fontSize: '20px', marginBottom: '16px' }}>Medical Reports</h3>\n <div className=\"space-y-3\">\n {record.reports.map((report) => (\n <div key={report.reportId} className=\"border-l-4 border-green-500 pl-4 py-2\">\n <p style={{ fontWeight: 'normal' }}>Report from {report.doctorName}</p>\n <p className=\"font-normal text-gray-600 text-sm\">{report.description}</p>\n <p className=\"font-normal text-xs text-gray-500\">Date: {report.reportDate}</p>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* Lab Results */}\n {labResults && labResults.length > 0 && (\n <div className=\"bg-white rounded-lg shadow p-6\">\n <h3 className=\"font-normal\" style={{ fontSize: '20px', marginBottom: '16px' }}>Lab Test Results</h3>\n <div className=\"space-y-3\">\n {labResults.map((result) => (\n <div key={result.resultId} className=\"border-l-4 border-cyan-500 pl-4 py-3 bg-cyan-50 rounded\">\n <p className=\"font-normal\" style={{ fontSize: '18px', color: '#0891b2' }}>{result.testName}</p>\n <p className=\"font-normal text-sm text-gray-700 mt-2\">Results: {result.results}</p>\n <p className=\"font-normal text-sm text-gray-600\">Result Date: {result.resultDate}</p>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* Procedure Results */}\n {procedureResults && procedureResults.length > 0 && (\n <div className=\"bg-white rounded-lg shadow p-6\">\n <h3 className=\"font-normal\" style={{ fontSize: '20px', marginBottom: '16px' }}>Procedure Results</h3>\n <div className=\"space-y-3\">\n {procedureResults.map((result) => (\n <div key={result.resultId} className=\"border-l-4 border-orange-500 pl-4 py-3 bg-orange-50 rounded\">\n <p className=\"font-normal\" style={{ fontSize: '18px', color: '#b45309' }}>{result.procedure?.procedureType || 'Procedure'}</p>\n <p className=\"font-normal text-sm text-gray-700 mt-2\">Outcome: {result.resultDescription}</p>\n <p className=\"font-normal text-sm text-gray-600\">Result Date: {result.resultDate}</p>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {(!record.diagnoses || record.diagnoses.length === 0) &&\n (!record.symptoms || record.symptoms.length === 0) &&\n (!record.allergies || record.allergies.length === 0) &&\n (!record.reports || record.reports.length === 0) &&\n (!labResults || labResults.length === 0) &&\n (!procedureResults || procedureResults.length === 0) && (\n <div className=\"bg-blue-50 rounded-lg p-6 text-center\">\n <p className=\"text-gray-600\">No medical data recorded yet</p>\n </div>\n )}\n </div>\n )}\n\n {/* Record Diagnosis Tab */}\n {activeTab === 'diagnosis' && (\n <div className=\"bg-white rounded-lg shadow p-6\">\n <h3 style={{ fontSize: '20px', fontWeight: 'normal', marginBottom: '16px' }}>Record New Diagnosis</h3>\n <form onSubmit={handleAddDiagnosis} className=\"space-y-4 max-w-2xl\">\n <div>\n <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Doctor *</label>\n {isDoctor ? (\n <p className=\"px-4 py-2 bg-gray-100 rounded-lg text-gray-700\">\n Dr. {user.firstName} {user.lastName}\n </p>\n ) : (\n <select\n value={selectedDoctorId}\n onChange={(e) => setSelectedDoctorId(e.target.value)}\n className=\"w-full px-4 py-2 border rounded-lg\"\n required\n >\n <option value=\"\">Select doctor</option>\n {doctors.map((doc) => (\n <option key={doc.doctorId} value={doc.doctorId}>\n Dr. {doc.firstName} {doc.lastName}\n </option>\n ))}\n </select>\n )}\n </div>\n <div>\n <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Diagnosis *</label>\n <select\n value={diagnosisForm.diagnosisId}\n onChange={(e) => setDiagnosisForm({ ...diagnosisForm, diagnosisId: e.target.value })}\n className=\"w-full px-4 py-2 border rounded-lg\"\n required\n >\n <option value=\"\">{diagnoses.length === 0 ? 'Loading diagnoses...' : 'Select diagnosis'}</option>\n {diagnoses && diagnoses.length > 0 && diagnoses.map((diagnosis) => (\n <option key={diagnosis.id} value={diagnosis.id}>\n {diagnosis.name}\n </option>\n ))}\n </select>\n {diagnoses.length === 0 && (\n <p className=\"text-sm text-gray-500 mt-1\">No diagnoses available. Please wait...</p>\n )}\n </div>\n <button\n type=\"submit\"\n style={{background: '#9333ea', color: 'white', padding: '6px 14px', borderRadius: '6px', border: 'none', cursor: 'pointer', fontSize: '14px', fontWeight: '600'}} onMouseEnter={(e) => e.currentTarget.style.background = '#7e22ce'} onMouseLeave={(e) => e.currentTarget.style.background = '#9333ea'}\n >\n Record Diagnosis\n </button>\n </form>\n </div>\n )}\n\n {/* Record Symptoms Tab */}\n {activeTab === 'symptoms' && (\n <div className=\"bg-white rounded-lg shadow p-6\">\n <h3 style={{ fontSize: '20px', fontWeight: 'normal', marginBottom: '16px' }}>Record Patient Symptoms</h3>\n <form onSubmit={handleAddSymptom} className=\"space-y-4 max-w-2xl\">\n <div>\n <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Doctor *</label>\n {isDoctor ? (\n <p className=\"px-4 py-2 bg-gray-100 rounded-lg text-gray-700\">\n Dr. {user.firstName} {user.lastName}\n </p>\n ) : (\n <select\n value={selectedDoctorId}\n onChange={(e) => setSelectedDoctorId(e.target.value)}\n className=\"w-full px-4 py-2 border rounded-lg\"\n required\n >\n <option value=\"\">Select doctor</option>\n {doctors.map((doc) => (\n <option key={doc.doctorId} value={doc.doctorId}>\n Dr. {doc.firstName} {doc.lastName}\n </option>\n ))}\n </select>\n )}\n </div>\n <div>\n <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Symptom *</label>\n <select\n value={symptomsForm.symptomId}\n onChange={(e) => setSymptomsForm({ ...symptomsForm, symptomId: e.target.value })}\n className=\"w-full px-4 py-2 border rounded-lg\"\n required\n >\n <option value=\"\">Select symptom</option>\n {symptoms.filter(s => !record.symptoms?.some(rs => rs.symptomId === s.id)).map((symptom) => (\n <option key={symptom.id} value={symptom.id}>\n {symptom.name}\n </option>\n ))}\n </select>\n </div>\n <button\n type=\"submit\"\n style={{background: '#9333ea', color: 'white', padding: '6px 14px', borderRadius: '6px', border: 'none', cursor: 'pointer', fontSize: '14px', fontWeight: '600'}} onMouseEnter={(e) => e.currentTarget.style.background = '#7e22ce'} onMouseLeave={(e) => e.currentTarget.style.background = '#9333ea'}\n >\n Record Symptom\n </button>\n </form>\n </div>\n )}\n\n {/* Record Allergies Tab */}\n {activeTab === 'allergies' && (\n <div className=\"bg-white rounded-lg shadow p-6\">\n <h3 style={{ fontSize: '20px', fontWeight: 'normal', marginBottom: '16px' }}>Record Patient Allergies</h3>\n <form onSubmit={handleAddAllergy} className=\"space-y-4 max-w-2xl\">\n <div>\n <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Doctor *</label>\n {isDoctor ? (\n <p className=\"px-4 py-2 bg-gray-100 rounded-lg text-gray-700\">\n Dr. {user.firstName} {user.lastName}\n </p>\n ) : (\n <select\n value={selectedDoctorId}\n onChange={(e) => setSelectedDoctorId(e.target.value)}\n className=\"w-full px-4 py-2 border rounded-lg\"\n required\n >\n <option value=\"\">Select doctor</option>\n {doctors.map((doc) => (\n <option key={doc.doctorId} value={doc.doctorId}>\n Dr. {doc.firstName} {doc.lastName}\n </option>\n ))}\n </select>\n )}\n </div>\n <div>\n <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Allergy *</label>\n <select\n value={allergyForm.allergyId}\n onChange={(e) => setAllergyForm({ ...allergyForm, allergyId: e.target.value })}\n className=\"w-full px-4 py-2 border rounded-lg\"\n required\n >\n <option value=\"\">Select allergy</option>\n {allergies.filter(a => !record.allergies?.some(ra => ra.allergyId === a.id)).map((allergy) => (\n <option key={allergy.id} value={allergy.id}>\n {allergy.name}\n </option>\n ))}\n </select>\n </div>\n <div>\n <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Severity *</label>\n <select\n value={allergyForm.severity}\n onChange={(e) => setAllergyForm({ ...allergyForm, severity: e.target.value })}\n className=\"w-full px-4 py-2 border rounded-lg\"\n >\n <option value=\"LOW\">Low</option>\n <option value=\"MEDIUM\">Medium</option>\n <option value=\"HIGH\">High</option>\n <option value=\"CRITICAL\">Critical</option>\n </select>\n </div>\n <div>\n <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Reaction</label>\n <textarea\n value={allergyForm.reaction}\n onChange={(e) => setAllergyForm({ ...allergyForm, reaction: e.target.value })}\n placeholder=\"Describe the allergic reaction\"\n className=\"w-full px-4 py-2 border rounded-lg\"\n rows=\"3\"\n />\n </div>\n <button\n type=\"submit\"\n style={{background: '#9333ea', color: 'white', padding: '6px 14px', borderRadius: '6px', border: 'none', cursor: 'pointer', fontSize: '14px', fontWeight: '600'}} onMouseEnter={(e) => e.currentTarget.style.background = '#7e22ce'} onMouseLeave={(e) => e.currentTarget.style.background = '#9333ea'}\n >\n Record Allergy\n </button>\n </form>\n </div>\n )}\n\n {/* Record Prescription Tab */}\n {activeTab === 'prescription' && (\n <div className=\"bg-white rounded-lg shadow p-6\">\n <h3 style={{ fontSize: '20px', fontWeight: 'normal', marginBottom: '16px' }}>Record Prescription</h3>\n <form onSubmit={handleAddPrescription} className=\"space-y-4 max-w-2xl\">\n <div>\n <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Doctor *</label>\n {isDoctor ? (\n <p className=\"px-4 py-2 bg-gray-100 rounded-lg text-gray-700\">\n Dr. {user.firstName} {user.lastName}\n </p>\n ) : (\n <select\n value={selectedDoctorId}\n onChange={(e) => setSelectedDoctorId(e.target.value)}\n className=\"w-full px-4 py-2 border rounded-lg\"\n required\n >\n <option value=\"\">Select doctor</option>\n {doctors.map((doc) => (\n <option key={doc.doctorId} value={doc.doctorId}>\n Dr. {doc.firstName} {doc.lastName}\n </option>\n ))}\n </select>\n )}\n </div>\n <div>\n <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Medication *</label>\n <select\n value={prescriptionForm.prescriptionId}\n onChange={(e) =>\n setPrescriptionForm({ ...prescriptionForm, prescriptionId: e.target.value })\n }\n className=\"w-full px-4 py-2 border rounded-lg\"\n required\n >\n <option value=\"\">Select medication</option>\n {prescriptions.map((prescription) => (\n <option key={prescription.id} value={prescription.id}>\n {prescription.name}\n </option>\n ))}\n </select>\n </div>\n <div className=\"grid grid-cols-2 gap-4\">\n <div>\n <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Dosage *</label>\n <input\n type=\"text\"\n value={prescriptionForm.dosage}\n onChange={(e) =>\n setPrescriptionForm({ ...prescriptionForm, dosage: e.target.value })\n }\n placeholder=\"e.g., 500mg\"\n className=\"w-full px-4 py-2 border rounded-lg\"\n required\n />\n </div>\n <div>\n <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Frequency *</label>\n <input\n type=\"text\"\n value={prescriptionForm.frequency}\n onChange={(e) =>\n setPrescriptionForm({ ...prescriptionForm, frequency: e.target.value })\n }\n placeholder=\"e.g., Twice daily\"\n className=\"w-full px-4 py-2 border rounded-lg\"\n required\n />\n </div>\n <div>\n <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Duration *</label>\n <input\n type=\"text\"\n value={prescriptionForm.duration}\n onChange={(e) =>\n setPrescriptionForm({ ...prescriptionForm, duration: e.target.value })\n }\n placeholder=\"e.g., 7 days\"\n className=\"w-full px-4 py-2 border rounded-lg\"\n required\n />\n </div>\n </div>\n <div>\n <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Reason for Prescription</label>\n <textarea\n value={prescriptionForm.reason}\n onChange={(e) => setPrescriptionForm({ ...prescriptionForm, reason: e.target.value })}\n placeholder=\"Describe why this medication is prescribed\"\n className=\"w-full px-4 py-2 border rounded-lg\"\n rows=\"3\"\n />\n </div>\n <button\n type=\"submit\"\n style={{background: '#9333ea', color: 'white', padding: '6px 14px', borderRadius: '6px', border: 'none', cursor: 'pointer', fontSize: '14px', fontWeight: '600'}} onMouseEnter={(e) => e.currentTarget.style.background = '#7e22ce'} onMouseLeave={(e) => e.currentTarget.style.background = '#9333ea'}\n >\n Record Prescription\n </button>\n </form>\n </div>\n )}\n\n {/* Procedure Request Tab */}\n {activeTab === 'procedures' && (\n <div className=\"bg-white rounded-lg shadow p-6\">\n <h3 style={{ fontSize: '20px', fontWeight: 'normal', marginBottom: '16px' }}>Request Procedure</h3>\n <form onSubmit={async (e) => {\n e.preventDefault();\n setError(null);\n\n if (!procedureForm.procedureId) {\n setError('Please select a procedure');\n return;\n }\n\n try {\n setLoading(true);\n const doctorId = user.doctorId || 1;\n\n const request = {\n patientId: record.patientId,\n doctorId: parseInt(doctorId),\n procedureId: parseInt(procedureForm.procedureId),\n procedureDate: procedureForm.procedureDate,\n notes: procedureForm.notes,\n diagnosisId: procedureForm.diagnosisId ? parseInt(procedureForm.diagnosisId) : null,\n };\n\n await procedureService.requestProcedure(request);\n\n setSuccess('Procedure requested successfully');\n setProcedureForm({\n procedureId: '',\n procedureDate: new Date().toISOString().split('T')[0],\n notes: '',\n diagnosisId: '',\n });\n\n setTimeout(() => setSuccess(null), 3000);\n } catch (err) {\n setError('Failed to request procedure: ' + (err.response?.data?.error || err.message));\n } finally {\n setLoading(false);\n }\n }} className=\"space-y-4\">\n <div className=\"grid grid-cols-2 gap-4\">\n <div>\n <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Procedure *</label>\n <select\n value={procedureForm.procedureId}\n onChange={(e) => setProcedureForm({ ...procedureForm, procedureId: e.target.value })}\n className=\"w-full px-4 py-2 border rounded-lg\"\n required\n >\n <option value=\"\">Select a procedure</option>\n {procedures.map((proc) => (\n <option key={proc.procedureId} value={proc.procedureId}>\n {proc.procedureType} (${proc.cost})\n </option>\n ))}\n </select>\n </div>\n <div>\n <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Procedure Date *</label>\n <input\n type=\"date\"\n value={procedureForm.procedureDate}\n onChange={(e) => setProcedureForm({ ...procedureForm, procedureDate: e.target.value })}\n className=\"w-full px-4 py-2 border rounded-lg\"\n required\n />\n </div>\n </div>\n <div>\n <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Related Diagnosis (Optional)</label>\n <select\n value={procedureForm.diagnosisId}\n onChange={(e) => setProcedureForm({ ...procedureForm, diagnosisId: e.target.value })}\n className=\"w-full px-4 py-2 border rounded-lg\"\n >\n <option value=\"\">Select diagnosis (optional)</option>\n {diagnoses.map((diagnosis) => (\n <option key={diagnosis.id} value={diagnosis.id}>\n {diagnosis.name}\n </option>\n ))}\n </select>\n </div>\n <div>\n <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Notes</label>\n <textarea\n value={procedureForm.notes}\n onChange={(e) => setProcedureForm({ ...procedureForm, notes: e.target.value })}\n placeholder=\"Pre-procedure instructions or special notes\"\n className=\"w-full px-4 py-2 border rounded-lg\"\n rows=\"3\"\n />\n </div>\n <button\n type=\"submit\"\n disabled={loading}\n style={{background: loading ? '#9ca3af' : '#9333ea', color: 'white', padding: '6px 14px', borderRadius: '6px', border: 'none', cursor: 'pointer', fontSize: '14px', fontWeight: '600'}} onMouseEnter={(e) => !loading && (e.currentTarget.style.background = '#7e22ce')} onMouseLeave={(e) => !loading && (e.currentTarget.style.background = '#9333ea')}\n >\n {loading ? 'Requesting...' : 'Request Procedure'}\n </button>\n </form>\n </div>\n )}\n\n {/* Lab Test Tab */}\n {activeTab === 'lab-tests' && (\n <div className=\"bg-white rounded-lg shadow p-6\">\n <h3 style={{ fontSize: '20px', fontWeight: 'normal', marginBottom: '16px' }}>Request Lab Test</h3>\n <form onSubmit={async (e) => {\n e.preventDefault();\n setError(null);\n\n if (!labTestForm.testId) {\n setError('Please select a test');\n return;\n }\n\n try {\n setLoading(true);\n const doctorId = user.doctorId || 1;\n\n const request = {\n patientId: record.patientId,\n medicalRecordId: record.recordId,\n doctorId: parseInt(doctorId),\n testId: parseInt(labTestForm.testId),\n testDate: labTestForm.testDate,\n notes: labTestForm.notes,\n };\n\n await labService.requestLabTest(request);\n\n setSuccess('Lab test requested successfully');\n setLabTestForm({\n testId: '',\n testDate: new Date().toISOString().split('T')[0],\n notes: '',\n });\n\n setTimeout(() => setSuccess(null), 3000);\n } catch (err) {\n setError('Failed to request lab test: ' + (err.response?.data?.error || err.message));\n } finally {\n setLoading(false);\n }\n }} className=\"space-y-4\">\n <div className=\"grid grid-cols-2 gap-4\">\n <div>\n <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Test</label>\n <select\n value={labTestForm.testId}\n onChange={(e) => setLabTestForm({ ...labTestForm, testId: e.target.value })}\n className=\"w-full px-4 py-2 border rounded-lg\"\n required\n >\n <option value=\"\">Select a test</option>\n {labTests.map((test) => (\n <option key={test.testId} value={test.testId}>\n {test.testName} (${test.cost})\n </option>\n ))}\n </select>\n </div>\n <div>\n <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Test Date</label>\n <input\n type=\"date\"\n value={labTestForm.testDate}\n onChange={(e) => setLabTestForm({ ...labTestForm, testDate: e.target.value })}\n className=\"w-full px-4 py-2 border rounded-lg\"\n />\n </div>\n </div>\n <div>\n <label style={{ fontWeight: 'normal' }} className=\"block text-sm mb-2\">Notes</label>\n <textarea\n value={labTestForm.notes}\n onChange={(e) => setLabTestForm({ ...labTestForm, notes: e.target.value })}\n placeholder=\"Additional notes for the lab technician\"\n className=\"w-full px-4 py-2 border rounded-lg\"\n rows=\"3\"\n />\n </div>\n <button\n type=\"submit\"\n disabled={loading}\n style={{background: loading ? '#9ca3af' : '#9333ea', color: 'white', padding: '6px 14px', borderRadius: '6px', border: 'none', cursor: 'pointer', fontSize: '14px', fontWeight: '600'}} onMouseEnter={(e) => !loading && (e.currentTarget.style.background = '#7e22ce')} onMouseLeave={(e) => !loading && (e.currentTarget.style.background = '#9333ea')}\n >\n {loading ? 'Requesting...' : 'Request Test'}\n </button>\n </form>\n </div>\n )}\n </div>\n );\n}\n\nexport default MedicalRecordDetail;\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,EAAEC,WAAW,QAAQ,OAAO;AAC/D,SAASC,SAAS,EAAEC,WAAW,QAAQ,kBAAkB;AACzD,SAASC,oBAAoB,QAAQ,qCAAqC;AAC1E,SAASC,aAAa,QAAQ,8BAA8B;AAC5D,SAASC,UAAU,QAAQ,2BAA2B;AACtD,SAASC,gBAAgB,QAAQ,iCAAiC;AAClE,OAAOC,UAAU,MAAM,6BAA6B;AACpD,OAAOC,YAAY,MAAM,+BAA+B;AACxD,OAAOC,OAAO,MAAM,0BAA0B;AAC9C,OAAOC,SAAS,MAAM,oBAAoB;AAAC,SAAAC,MAAA,IAAAC,OAAA;AAE3C,SAASC,mBAAmBA,CAAA,EAAG;EAAAC,EAAA;EAC7B,MAAM;IAAEC;EAAG,CAAC,GAAGd,SAAS,CAAC,CAAC;EAC1B,MAAMe,QAAQ,GAAGd,WAAW,CAAC,CAAC;EAC9B,MAAMe,IAAI,GAAGC,IAAI,CAACC,KAAK,CAACC,YAAY,CAACC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;EAC7D,MAAMC,QAAQ,GAAGL,IAAI,CAACM,IAAI,KAAK,QAAQ;EAEvC,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG3B,QAAQ,CAAC,IAAI,CAAC;EAC1C,MAAM,CAAC4B,OAAO,EAAEC,UAAU,CAAC,GAAG7B,QAAQ,CAAC,IAAI,CAAC;EAC5C,MAAM,CAAC8B,KAAK,EAAEC,QAAQ,CAAC,GAAG/B,QAAQ,CAAC,IAAI,CAAC;EACxC,MAAM,CAACgC,OAAO,EAAEC,UAAU,CAAC,GAAGjC,QAAQ,CAAC,IAAI,CAAC;EAC5C,MAAM,CAACkC,SAAS,EAAEC,YAAY,CAAC,GAAGnC,QAAQ,CAAC,MAAM,CAAC;EAClD,MAAM,CAACoC,OAAO,EAAEC,UAAU,CAAC,GAAGrC,QAAQ,CAAC,EAAE,CAAC;EAC1C,MAAM,CAACsC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGvC,QAAQ,CAACwB,QAAQ,GAAGL,IAAI,CAACqB,QAAQ,GAAG,EAAE,CAAC;;EAEvF;EACA,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAG1C,QAAQ,CAAC;IACjD2C,WAAW,EAAE,EAAE;IACfH,QAAQ,EAAE;EACZ,CAAC,CAAC;;EAEF;EACA,MAAM,CAACI,YAAY,EAAEC,eAAe,CAAC,GAAG7C,QAAQ,CAAC;IAC/C8C,SAAS,EAAE;EACb,CAAC,CAAC;;EAEF;EACA,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGhD,QAAQ,CAAC;IAC7CiD,SAAS,EAAE,EAAE;IACbC,QAAQ,EAAE,QAAQ;IAClBC,QAAQ,EAAE;EACZ,CAAC,CAAC;;EAEF;EACA,MAAM,CAACC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGrD,QAAQ,CAAC;IACvDsD,cAAc,EAAE,EAAE;IAClBC,MAAM,EAAE,EAAE;IACVC,SAAS,EAAE,EAAE;IACbC,QAAQ,EAAE,EAAE;IACZC,MAAM,EAAE;EACV,CAAC,CAAC;;EAEF;EACA,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAG5D,QAAQ,CAAC,EAAE,CAAC;EAC9C,MAAM,CAAC6D,QAAQ,EAAEC,WAAW,CAAC,GAAG9D,QAAQ,CAAC,EAAE,CAAC;EAC5C,MAAM,CAAC+D,SAAS,EAAEC,YAAY,CAAC,GAAGhE,QAAQ,CAAC,EAAE,CAAC;EAC9C,MAAM,CAACiE,aAAa,EAAEC,gBAAgB,CAAC,GAAGlE,QAAQ,CAAC,EAAE,CAAC;EACtD,MAAM,CAACmE,QAAQ,EAAEC,WAAW,CAAC,GAAGpE,QAAQ,CAAC,EAAE,CAAC;EAC5C,MAAM,CAACqE,UAAU,EAAEC,aAAa,CAAC,GAAGtE,QAAQ,CAAC,EAAE,CAAC;;EAEhD;EACA,MAAM,CAACuE,WAAW,EAAEC,cAAc,CAAC,GAAGxE,QAAQ,CAAC;IAC7CyE,MAAM,EAAE,EAAE;IACVC,QAAQ,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChDC,KAAK,EAAE;EACT,CAAC,CAAC;;EAEF;EACA,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGhF,QAAQ,CAAC;IACjDiF,WAAW,EAAE,EAAE;IACfC,aAAa,EAAE,IAAIP,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrDC,KAAK,EAAE,EAAE;IACTnC,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,MAAM,CAACwC,UAAU,EAAEC,aAAa,CAAC,GAAGpF,QAAQ,CAAC,EAAE,CAAC;EAChD,MAAM,CAACqF,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGtF,QAAQ,CAAC,EAAE,CAAC;EAE5D,MAAMuF,WAAW,GAAGrF,WAAW,CAAC,YAAY;IAC1C,IAAI;MACF2B,UAAU,CAAC,IAAI,CAAC;MAChB,MAAM2D,QAAQ,GAAG,MAAMnF,oBAAoB,CAACoF,2BAA2B,CAACxE,EAAE,CAAC;MAC3EU,SAAS,CAAC6D,QAAQ,CAACE,IAAI,CAAC;;MAExB;MACA,IAAI;QACF,MAAMC,eAAe,GAAG,MAAMpF,UAAU,CAACqF,6BAA6B,CAACJ,QAAQ,CAACE,IAAI,CAACG,QAAQ,CAAC;QAC9FT,aAAa,CAACO,eAAe,CAACD,IAAI,IAAI,EAAE,CAAC;MAC3C,CAAC,CAAC,OAAOI,GAAG,EAAE;QACZC,OAAO,CAACjE,KAAK,CAAC,8BAA8B,EAAEgE,GAAG,CAAC;QAClDV,aAAa,CAAC,EAAE,CAAC;MACnB;;MAEA;MACA,IAAI;QACF,MAAMY,wBAAwB,GAAG,MAAMxF,gBAAgB,CAACyF,mCAAmC,CAACT,QAAQ,CAACE,IAAI,CAACG,QAAQ,CAAC;QACnHP,mBAAmB,CAACU,wBAAwB,CAACN,IAAI,IAAI,EAAE,CAAC;MAC1D,CAAC,CAAC,OAAOI,GAAG,EAAE;QACZC,OAAO,CAACjE,KAAK,CAAC,oCAAoC,EAAEgE,GAAG,CAAC;QACxDR,mBAAmB,CAAC,EAAE,CAAC;MACzB;IACF,CAAC,CAAC,OAAOQ,GAAG,EAAE;MACZ/D,QAAQ,CAAC,gCAAgC,CAAC;MAC1CgE,OAAO,CAACjE,KAAK,CAACgE,GAAG,CAAC;IACpB,CAAC,SAAS;MACRjE,UAAU,CAAC,KAAK,CAAC;IACnB;EACF,CAAC,EAAE,CAACZ,EAAE,CAAC,CAAC;EAERhB,SAAS,CAAC,MAAM;IACd,MAAMiG,YAAY,GAAG,MAAAA,CAAA,KAAY;MAC/B,IAAI;QACF,IAAI,CAAC1E,QAAQ,EAAE;UACb,MAAMgE,QAAQ,GAAG,MAAMlF,aAAa,CAAC6F,aAAa,CAAC,CAAC;UACpD9D,UAAU,CAACmD,QAAQ,CAACE,IAAI,CAAC;UACzB,IAAIF,QAAQ,CAACE,IAAI,CAACU,MAAM,GAAG,CAAC,IAAI,CAAC9D,gBAAgB,EAAE;YACjDC,mBAAmB,CAACiD,QAAQ,CAACE,IAAI,CAAC,CAAC,CAAC,CAAClD,QAAQ,CAAC;UAChD;QACF;MACF,CAAC,CAAC,OAAOsD,GAAG,EAAE;QACZC,OAAO,CAACjE,KAAK,CAAC,yBAAyB,EAAEgE,GAAG,CAAC;MAC/C;IACF,CAAC;IAED,MAAMO,oBAAoB,GAAG,MAAAA,CAAA,KAAY;MACvC,IAAI;QACFN,OAAO,CAACO,GAAG,CAAC,8BAA8B,CAAC;QAC3C,MAAMC,YAAY,GAAG,MAAM3F,SAAS,CAAC4F,GAAG,CAAC,qCAAqC,CAAC;QAC/ET,OAAO,CAACO,GAAG,CAAC,YAAY,EAAEC,YAAY,CAACb,IAAI,CAAC;QAE5C,MAAMe,WAAW,GAAG,MAAM7F,SAAS,CAAC4F,GAAG,CAAC,oCAAoC,CAAC;QAC7ET,OAAO,CAACO,GAAG,CAAC,WAAW,EAAEG,WAAW,CAACf,IAAI,CAAC;QAE1C,MAAMgB,YAAY,GAAG,MAAM9F,SAAS,CAAC4F,GAAG,CAAC,qCAAqC,CAAC;QAC/ET,OAAO,CAACO,GAAG,CAAC,YAAY,EAAEI,YAAY,CAAChB,IAAI,CAAC;QAE5C,MAAMiB,gBAAgB,GAAG,MAAM/F,SAAS,CAAC4F,GAAG,CAAC,yCAAyC,CAAC;QACvFT,OAAO,CAACO,GAAG,CAAC,gBAAgB,EAAEK,gBAAgB,CAACjB,IAAI,CAAC;QAEpD,MAAMkB,QAAQ,GAAG,MAAMrG,UAAU,CAACsG,cAAc,CAAC,CAAC;QAClDd,OAAO,CAACO,GAAG,CAAC,YAAY,EAAEM,QAAQ,CAAClB,IAAI,CAAC;QAExC,MAAMoB,aAAa,GAAG,MAAMtG,gBAAgB,CAACuG,gBAAgB,CAAC,CAAC;QAC/DhB,OAAO,CAACO,GAAG,CAAC,aAAa,EAAEQ,aAAa,CAACpB,IAAI,CAAC;QAE9C9B,YAAY,CAAC2C,YAAY,CAACb,IAAI,IAAI,EAAE,CAAC;QACrC5B,WAAW,CAAC2C,WAAW,CAACf,IAAI,IAAI,EAAE,CAAC;QACnC1B,YAAY,CAAC0C,YAAY,CAAChB,IAAI,IAAI,EAAE,CAAC;QACrCxB,gBAAgB,CAACyC,gBAAgB,CAACjB,IAAI,IAAI,EAAE,CAAC;QAC7CtB,WAAW,CAACwC,QAAQ,CAAClB,IAAI,IAAI,EAAE,CAAC;QAChCpB,aAAa,CAACwC,aAAa,CAACpB,IAAI,IAAI,EAAE,CAAC;QACvCK,OAAO,CAACO,GAAG,CAAC,mCAAmC,CAAC;MAClD,CAAC,CAAC,OAAOR,GAAG,EAAE;QAAA,IAAAkB,aAAA,EAAAC,kBAAA;QACZlB,OAAO,CAACjE,KAAK,CAAC,kCAAkC,EAAEgE,GAAG,CAAC;QACtD/D,QAAQ,CAAC,mCAAmC,IAAI,EAAAiF,aAAA,GAAAlB,GAAG,CAACN,QAAQ,cAAAwB,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAActB,IAAI,cAAAuB,kBAAA,uBAAlBA,kBAAA,CAAoBnF,KAAK,KAAIgE,GAAG,CAACoB,OAAO,CAAC,CAAC;MAC5F;IACF,CAAC;IAED3B,WAAW,CAAC,CAAC;IACbW,YAAY,CAAC,CAAC;IACdG,oBAAoB,CAAC,CAAC;EACxB,CAAC,EAAE,CAACpF,EAAE,EAAEO,QAAQ,EAAE+D,WAAW,EAAEjD,gBAAgB,CAAC,CAAC;EAEjD,MAAM6E,kBAAkB,GAAG,MAAOC,CAAC,IAAK;IACtCA,CAAC,CAACC,cAAc,CAAC,CAAC;IAClB,IAAI;MACF,IAAI,CAAC5E,aAAa,CAACE,WAAW,EAAE;QAC9BZ,QAAQ,CAAC,2BAA2B,CAAC;QACrC;MACF;MACA,IAAI,CAACO,gBAAgB,EAAE;QACrBP,QAAQ,CAAC,wBAAwB,CAAC;QAClC;MACF;MACA,MAAMuF,iBAAiB,GAAG3D,SAAS,CAAC4D,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACvG,EAAE,KAAKwG,QAAQ,CAAChF,aAAa,CAACE,WAAW,CAAC,CAAC;MAC3F,MAAM/B,SAAS,CAAC8G,IAAI,CAAC,YAAY,EAAE;QACjCC,SAAS,EAAEF,QAAQ,CAAC/F,MAAM,CAACiG,SAAS,CAAC;QACrCnF,QAAQ,EAAEiF,QAAQ,CAACnF,gBAAgB,CAAC;QACpCsF,IAAI,EAAEN,iBAAiB,CAACM,IAAI;QAC5BC,WAAW,EAAE;MACf,CAAC,CAAC;MACF5F,UAAU,CAAC,iCAAiC,CAAC;MAC7CS,gBAAgB,CAAC;QAAEC,WAAW,EAAE,EAAE;QAAEH,QAAQ,EAAE;MAAG,CAAC,CAAC;MACnDsF,UAAU,CAAC,MAAMvC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC;IACvC,CAAC,CAAC,OAAOO,GAAG,EAAE;MAAA,IAAAiC,cAAA,EAAAC,mBAAA;MACZjG,QAAQ,CAAC,EAAAgG,cAAA,GAAAjC,GAAG,CAACN,QAAQ,cAAAuC,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAcrC,IAAI,cAAAsC,mBAAA,uBAAlBA,mBAAA,CAAoBlG,KAAK,KAAI,4BAA4B,CAAC;IACrE;EACF,CAAC;EAED,MAAMmG,gBAAgB,GAAG,MAAOb,CAAC,IAAK;IACpCA,CAAC,CAACC,cAAc,CAAC,CAAC;IAClB,IAAI;MACF,IAAI,CAACzE,YAAY,CAACE,SAAS,EAAE;QAC3Bf,QAAQ,CAAC,yBAAyB,CAAC;QACnC;MACF;MACA,MAAMnB,SAAS,CAAC8G,IAAI,CAAC,oBAAoBhG,MAAM,CAACmE,QAAQ,WAAW,EAAE;QACnE/C,SAAS,EAAE2E,QAAQ,CAAC7E,YAAY,CAACE,SAAS,CAAC;QAC3CI,QAAQ,EAAE;MACZ,CAAC,CAAC;MACFjB,UAAU,CAAC,+BAA+B,CAAC;MAC3CY,eAAe,CAAC;QAAEC,SAAS,EAAE;MAAG,CAAC,CAAC;MAClCgF,UAAU,CAAC,MAAMvC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC;IACvC,CAAC,CAAC,OAAOO,GAAG,EAAE;MAAA,IAAAoC,cAAA,EAAAC,mBAAA;MACZpG,QAAQ,CAAC,EAAAmG,cAAA,GAAApC,GAAG,CAACN,QAAQ,cAAA0C,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAcxC,IAAI,cAAAyC,mBAAA,uBAAlBA,mBAAA,CAAoBrG,KAAK,KAAI,0BAA0B,CAAC;IACnE;EACF,CAAC;EAED,MAAMsG,gBAAgB,GAAG,MAAOhB,CAAC,IAAK;IACpCA,CAAC,CAACC,cAAc,CAAC,CAAC;IAClB,IAAI;MACF,IAAI,CAACtE,WAAW,CAACE,SAAS,EAAE;QAC1BlB,QAAQ,CAAC,0BAA0B,CAAC;QACpC;MACF;MACA,MAAMnB,SAAS,CAAC8G,IAAI,CAAC,oBAAoBhG,MAAM,CAACmE,QAAQ,YAAY,EAAE;QACpE5C,SAAS,EAAEwE,QAAQ,CAAC1E,WAAW,CAACE,SAAS,CAAC;QAC1CC,QAAQ,EAAEH,WAAW,CAACG,QAAQ;QAC9BC,QAAQ,EAAEJ,WAAW,CAACI;MACxB,CAAC,CAAC;MACFlB,UAAU,CAAC,+BAA+B,CAAC;MAC3Ce,cAAc,CAAC;QAAEC,SAAS,EAAE,EAAE;QAAEC,QAAQ,EAAE,QAAQ;QAAEC,QAAQ,EAAE;MAAG,CAAC,CAAC;MACnE2E,UAAU,CAAC,MAAMvC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC;IACvC,CAAC,CAAC,OAAOO,GAAG,EAAE;MAAA,IAAAuC,cAAA,EAAAC,mBAAA;MACZvG,QAAQ,CAAC,EAAAsG,cAAA,GAAAvC,GAAG,CAACN,QAAQ,cAAA6C,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc3C,IAAI,cAAA4C,mBAAA,uBAAlBA,mBAAA,CAAoBxG,KAAK,KAAI,0BAA0B,CAAC;IACnE;EACF,CAAC;EAED,MAAMyG,qBAAqB,GAAG,MAAOnB,CAAC,IAAK;IACzCA,CAAC,CAACC,cAAc,CAAC,CAAC;IAClB,IAAI;MACF,IAAI,CAACjE,gBAAgB,CAACE,cAAc,EAAE;QACpCvB,QAAQ,CAAC,yCAAyC,CAAC;QACnD;MACF;MACA,IAAI,CAACqB,gBAAgB,CAACG,MAAM,CAACiF,IAAI,CAAC,CAAC,EAAE;QACnCzG,QAAQ,CAAC,oBAAoB,CAAC;QAC9B;MACF;MACA,IAAI,CAACqB,gBAAgB,CAACI,SAAS,CAACgF,IAAI,CAAC,CAAC,EAAE;QACtCzG,QAAQ,CAAC,uBAAuB,CAAC;QACjC;MACF;MACA,IAAI,CAACqB,gBAAgB,CAACK,QAAQ,CAAC+E,IAAI,CAAC,CAAC,EAAE;QACrCzG,QAAQ,CAAC,sBAAsB,CAAC;QAChC;MACF;MACA,MAAM0G,oBAAoB,GAAGxE,aAAa,CAACsD,IAAI,CAACmB,CAAC,IAAIA,CAAC,CAACzH,EAAE,KAAKwG,QAAQ,CAACrE,gBAAgB,CAACE,cAAc,CAAC,CAAC;MACxG,MAAM1C,SAAS,CAAC8G,IAAI,CAAC,gBAAgB,EAAE;QACrCiB,eAAe,EAAEjH,MAAM,CAACmE,QAAQ;QAChC+C,cAAc,EAAEH,oBAAoB,CAACb,IAAI;QACzCrE,MAAM,EAAEH,gBAAgB,CAACG,MAAM;QAC/BC,SAAS,EAAEJ,gBAAgB,CAACI,SAAS;QACrCC,QAAQ,EAAEL,gBAAgB,CAACK,QAAQ;QACnCqB,KAAK,EAAE1B,gBAAgB,CAACM;MAC1B,CAAC,CAAC;MACFzB,UAAU,CAAC,oCAAoC,CAAC;MAChDoB,mBAAmB,CAAC;QAClBC,cAAc,EAAE,EAAE;QAClBC,MAAM,EAAE,EAAE;QACVC,SAAS,EAAE,EAAE;QACbC,QAAQ,EAAE,EAAE;QACZC,MAAM,EAAE;MACV,CAAC,CAAC;MACFoE,UAAU,CAAC,MAAMvC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC;IACvC,CAAC,CAAC,OAAOO,GAAG,EAAE;MAAA,IAAA+C,cAAA,EAAAC,mBAAA;MACZ/G,QAAQ,CAAC,EAAA8G,cAAA,GAAA/C,GAAG,CAACN,QAAQ,cAAAqD,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAcnD,IAAI,cAAAoD,mBAAA,uBAAlBA,mBAAA,CAAoBhH,KAAK,KAAI,+BAA+B,CAAC;IACxE;EACF,CAAC;EAED,IAAIF,OAAO,EAAE,oBAAOd,OAAA,CAACH,OAAO;IAAAoI,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OAAE,CAAC;EAE/B,IAAI,CAACxH,MAAM,EAAE;IACX,oBACEZ,OAAA;MAAAqI,QAAA,eACErI,OAAA,CAACL,UAAU;QAACyG,OAAO,EAAC,0BAA0B;QAACkC,OAAO,EAAEA,CAAA,KAAMlI,QAAQ,CAAC,kBAAkB;MAAE;QAAA6H,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAC3F,CAAC;EAEV;EAEA,oBACEpI,OAAA;IAAAqI,QAAA,gBACErI,OAAA;MAAKuI,SAAS,EAAC,wCAAwC;MAAAF,QAAA,gBACrDrI,OAAA;QAAIwI,KAAK,EAAE;UAAEC,QAAQ,EAAE,MAAM;UAAEC,UAAU,EAAE;QAAS,CAAE;QAAAL,QAAA,EAAC;MAAc;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAI,CAAC,eAC1EpI,OAAA;QACE2I,OAAO,EAAEA,CAAA,KAAMvI,QAAQ,CAAC,kBAAkB,CAAE;QAC5CmI,SAAS,EAAC,+DAA+D;QAAAF,QAAA,EAC1E;MAED;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACN,CAAC,EAELpH,KAAK,iBAAIhB,OAAA,CAACL,UAAU;MAACyG,OAAO,EAAEpF,KAAM;MAACsH,OAAO,EAAEA,CAAA,KAAMrH,QAAQ,CAAC,IAAI;IAAE;MAAAgH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,EACtElH,OAAO,iBAAIlB,OAAA,CAACJ,YAAY;MAACwG,OAAO,EAAElF,OAAQ;MAACoH,OAAO,EAAEA,CAAA,KAAMnH,UAAU,CAAC,IAAI;IAAE;MAAA8G,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC,eAG/EpI,OAAA;MAAKuI,SAAS,EAAC,qCAAqC;MAAAF,QAAA,gBAClDrI,OAAA;QAAIwI,KAAK,EAAE;UAAEC,QAAQ,EAAE,MAAM;UAAEC,UAAU,EAAE,QAAQ;UAAEE,YAAY,EAAE;QAAO,CAAE;QAAAP,QAAA,EAAC;MAAmB;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAI,CAAC,eACrGpI,OAAA;QAAKuI,SAAS,EAAC,wBAAwB;QAAAF,QAAA,gBACrCrI,OAAA;UAAAqI,QAAA,gBACErI,OAAA;YAAGuI,SAAS,EAAC,mCAAmC;YAAAF,QAAA,EAAC;UAAY;YAAAJ,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACjEpI,OAAA;YAAGuI,SAAS,EAAC,aAAa;YAAAF,QAAA,EAAEzH,MAAM,CAACiI;UAAW;YAAAZ,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAI,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAChD,CAAC,eACNpI,OAAA;UAAAqI,QAAA,gBACErI,OAAA;YAAGuI,SAAS,EAAC,mCAAmC;YAAAF,QAAA,EAAC;UAAI;YAAAJ,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eACzDpI,OAAA;YAAGuI,SAAS,EAAC,aAAa;YAAAF,QAAA,EAAEzH,MAAM,CAACkI;UAAI;YAAAb,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAI,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACzC,CAAC,eACNpI,OAAA;UAAAqI,QAAA,gBACErI,OAAA;YAAGuI,SAAS,EAAC,mCAAmC;YAAAF,QAAA,EAAC;UAAS;YAAAJ,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eAC9DpI,OAAA;YAAGuI,SAAS,EAAC,aAAa;YAAAF,QAAA,EAAEzH,MAAM,CAACmE;UAAQ;YAAAkD,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAI,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAC7C,CAAC,eACNpI,OAAA;UAAAqI,QAAA,gBACErI,OAAA;YAAGuI,SAAS,EAAC,mCAAmC;YAAAF,QAAA,EAAC;UAAU;YAAAJ,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CAAC,eAC/DpI,OAAA;YAAGuI,SAAS,EAAC,aAAa;YAAAF,QAAA,EAAEzH,MAAM,CAACiG;UAAS;YAAAoB,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAI,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAC9C,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACH,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACH,CAAC,eAGNpI,OAAA;MAAKuI,SAAS,EAAC,0BAA0B;MAAAF,QAAA,gBACvCrI,OAAA;QACE2I,OAAO,EAAEA,CAAA,KAAMtH,YAAY,CAAC,MAAM,CAAE;QACpCmH,KAAK,EAAE;UAAEE,UAAU,EAAE;QAAS,CAAE;QAChCH,SAAS,EAAE,aACTnH,SAAS,KAAK,MAAM,GAChB,8CAA8C,GAC9C,uCAAuC,EAC1C;QAAAiH,QAAA,EACJ;MAED;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ,CAAC,eACTpI,OAAA;QAAMuI,SAAS,EAAC,oBAAoB;QAACC,KAAK,EAAE;UAAEE,UAAU,EAAE;QAAS,CAAE;QAAAL,QAAA,EAAC;MAAC;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAM,CAAC,eAC9EpI,OAAA;QACE2I,OAAO,EAAEA,CAAA,KAAMtH,YAAY,CAAC,WAAW,CAAE;QACzCmH,KAAK,EAAE;UAAEE,UAAU,EAAE;QAAS,CAAE;QAChCH,SAAS,EAAE,aACTnH,SAAS,KAAK,WAAW,GACrB,8CAA8C,GAC9C,uCAAuC,EAC1C;QAAAiH,QAAA,EACJ;MAED;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ,CAAC,eACTpI,OAAA;QAAMuI,SAAS,EAAC,oBAAoB;QAACC,KAAK,EAAE;UAAEE,UAAU,EAAE;QAAS,CAAE;QAAAL,QAAA,EAAC;MAAC;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAM,CAAC,eAC9EpI,OAAA;QACE2I,OAAO,EAAEA,CAAA,KAAMtH,YAAY,CAAC,UAAU,CAAE;QACxCmH,KAAK,EAAE;UAAEE,UAAU,EAAE;QAAS,CAAE;QAChCH,SAAS,EAAE,aACTnH,SAAS,KAAK,UAAU,GACpB,8CAA8C,GAC9C,uCAAuC,EAC1C;QAAAiH,QAAA,EACJ;MAED;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ,CAAC,eACTpI,OAAA;QAAMuI,SAAS,EAAC,oBAAoB;QAACC,KAAK,EAAE;UAAEE,UAAU,EAAE;QAAS,CAAE;QAAAL,QAAA,EAAC;MAAC;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAM,CAAC,eAC9EpI,OAAA;QACE2I,OAAO,EAAEA,CAAA,KAAMtH,YAAY,CAAC,WAAW,CAAE;QACzCmH,KAAK,EAAE;UAAEE,UAAU,EAAE;QAAS,CAAE;QAChCH,SAAS,EAAE,aACTnH,SAAS,KAAK,WAAW,GACrB,8CAA8C,GAC9C,uCAAuC,EAC1C;QAAAiH,QAAA,EACJ;MAED;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ,CAAC,eACTpI,OAAA;QAAMuI,SAAS,EAAC,oBAAoB;QAACC,KAAK,EAAE;UAAEE,UAAU,EAAE;QAAS,CAAE;QAAAL,QAAA,EAAC;MAAC;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAM,CAAC,eAC9EpI,OAAA;QACE2I,OAAO,EAAEA,CAAA,KAAMtH,YAAY,CAAC,cAAc,CAAE;QAC5CmH,KAAK,EAAE;UAAEE,UAAU,EAAE;QAAS,CAAE;QAChCH,SAAS,EAAE,aACTnH,SAAS,KAAK,cAAc,GACxB,8CAA8C,GAC9C,uCAAuC,EAC1C;QAAAiH,QAAA,EACJ;MAED;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ,CAAC,eACTpI,OAAA;QAAMuI,SAAS,EAAC,oBAAoB;QAACC,KAAK,EAAE;UAAEE,UAAU,EAAE;QAAS,CAAE;QAAAL,QAAA,EAAC;MAAC;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAM,CAAC,eAC9EpI,OAAA;QACE2I,OAAO,EAAEA,CAAA,KAAMtH,YAAY,CAAC,WAAW,CAAE;QACzCmH,KAAK,EAAE;UAAEE,UAAU,EAAE;QAAS,CAAE;QAChCH,SAAS,EAAE,aACTnH,SAAS,KAAK,WAAW,GACrB,8CAA8C,GAC9C,uCAAuC,EAC1C;QAAAiH,QAAA,EACJ;MAED;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ,CAAC,eACTpI,OAAA;QAAMuI,SAAS,EAAC,oBAAoB;QAACC,KAAK,EAAE;UAAEE,UAAU,EAAE;QAAS,CAAE;QAAAL,QAAA,EAAC;MAAC;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAM,CAAC,eAC9EpI,OAAA;QACE2I,OAAO,EAAEA,CAAA,KAAMtH,YAAY,CAAC,YAAY,CAAE;QAC1CmH,KAAK,EAAE;UAAEE,UAAU,EAAE;QAAS,CAAE;QAChCH,SAAS,EAAE,aACTnH,SAAS,KAAK,YAAY,GACtB,8CAA8C,GAC9C,uCAAuC,EAC1C;QAAAiH,QAAA,EACJ;MAED;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAQ,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACN,CAAC,EAGLhH,SAAS,KAAK,MAAM,iBACnBpB,OAAA;MAAKuI,SAAS,EAAC,WAAW;MAAAF,QAAA,GAEvBzH,MAAM,CAACiC,SAAS,IAAIjC,MAAM,CAACiC,SAAS,CAACyC,MAAM,GAAG,CAAC,iBAC9CtF,OAAA;QAAKuI,SAAS,EAAC,gCAAgC;QAAAF,QAAA,gBAC7CrI,OAAA;UAAIuI,SAAS,EAAC,aAAa;UAACC,KAAK,EAAE;YAAEC,QAAQ,EAAE,MAAM;YAAEG,YAAY,EAAE;UAAO,CAAE;UAAAP,QAAA,EAAC;QAAS;UAAAJ,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAI,CAAC,eAC7FpI,OAAA;UAAKuI,SAAS,EAAC,WAAW;UAAAF,QAAA,EACvBzH,MAAM,CAACiC,SAAS,CAACkG,GAAG,CAAEC,SAAS,iBAC9BhJ,OAAA;YAAiCuI,SAAS,EAAC,wCAAwC;YAAAF,QAAA,gBACjFrI,OAAA;cAAGuI,SAAS,EAAC,aAAa;cAACC,KAAK,EAAE;gBAAEC,QAAQ,EAAE;cAAO,CAAE;cAAAJ,QAAA,EAAEW,SAAS,CAAClC;YAAI;cAAAmB,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI,CAAC,EAC3EY,SAAS,CAACjC,WAAW,iBACpB/G,OAAA;cAAGuI,SAAS,EAAC,mCAAmC;cAAAF,QAAA,EAAEW,SAAS,CAACjC;YAAW;cAAAkB,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI,CAC5E,eACDpI,OAAA;cAAGuI,SAAS,EAAC,mCAAmC;cAAAF,QAAA,GAAC,MAAI,EAACW,SAAS,CAACC,UAAU;YAAA;cAAAhB,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI,CAAC;UAAA,GALvEY,SAAS,CAACnH,WAAW;YAAAoG,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAM1B,CACN;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACC,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACH,CACN,EAGAxH,MAAM,CAACmC,QAAQ,IAAInC,MAAM,CAACmC,QAAQ,CAACuC,MAAM,GAAG,CAAC,iBAC5CtF,OAAA;QAAKuI,SAAS,EAAC,gCAAgC;QAAAF,QAAA,gBAC7CrI,OAAA;UAAIuI,SAAS,EAAC,aAAa;UAACC,KAAK,EAAE;YAAEC,QAAQ,EAAE,MAAM;YAAEG,YAAY,EAAE;UAAO,CAAE;UAAAP,QAAA,EAAC;QAAQ;UAAAJ,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAI,CAAC,eAC5FpI,OAAA;UAAKuI,SAAS,EAAC,sBAAsB;UAAAF,QAAA,EAClCzH,MAAM,CAACmC,QAAQ,CAACgG,GAAG,CAAEG,OAAO,iBAC3BlJ,OAAA;YAEEuI,SAAS,EAAC,0EAA0E;YAAAF,QAAA,EAEnFa,OAAO,CAACC;UAAW,GAHfD,OAAO,CAAClH,SAAS;YAAAiG,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAIlB,CACP;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACC,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACH,CACN,EAGAxH,MAAM,CAACqC,SAAS,IAAIrC,MAAM,CAACqC,SAAS,CAACqC,MAAM,GAAG,CAAC,iBAC9CtF,OAAA;QAAKuI,SAAS,EAAC,gCAAgC;QAAAF,QAAA,gBAC7CrI,OAAA;UAAIuI,SAAS,EAAC,aAAa;UAACC,KAAK,EAAE;YAAEC,QAAQ,EAAE,MAAM;YAAEG,YAAY,EAAE;UAAO,CAAE;UAAAP,QAAA,EAAC;QAAS;UAAAJ,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAI,CAAC,eAC7FpI,OAAA;UAAKuI,SAAS,EAAC,WAAW;UAAAF,QAAA,EACvBzH,MAAM,CAACqC,SAAS,CAAC8F,GAAG,CAAEK,OAAO,iBAC5BpJ,OAAA;YAA6BuI,SAAS,EAAC,qCAAqC;YAAAF,QAAA,gBAC1ErI,OAAA;cAAGuI,SAAS,EAAC,aAAa;cAAAF,QAAA,EAAEe,OAAO,CAACC;YAAW;cAAApB,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI,CAAC,eACpDpI,OAAA;cAAGuI,SAAS,EAAC,aAAa;cAACC,KAAK,EAAE;gBAAEC,QAAQ,EAAE;cAAO,CAAE;cAAAJ,QAAA,eACrDrI,OAAA;gBACEuI,SAAS,EAAC,aAAa;gBACvBC,KAAK,EAAE;kBACLc,OAAO,EAAE,SAAS;kBAClBC,YAAY,EAAE,KAAK;kBACnBC,KAAK,EAAE,OAAO;kBACdf,QAAQ,EAAE,MAAM;kBAChBgB,UAAU,EAAEL,OAAO,CAAChH,QAAQ,KAAK,UAAU,GAAG,SAAS,GAAGgH,OAAO,CAAChH,QAAQ,KAAK,MAAM,GAAG,SAAS,GAAGgH,OAAO,CAAChH,QAAQ,KAAK,QAAQ,GAAG,SAAS,GAAG;gBAClJ,CAAE;gBAAAiG,QAAA,GAEDe,OAAO,CAAChH,QAAQ,EAAC,WACpB;cAAA;gBAAA6F,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAM;YAAC;cAAAH,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OACN,CAAC,EACHgB,OAAO,CAAC/G,QAAQ,iBACfrC,OAAA;cAAGuI,SAAS,EAAC,mCAAmC;cAAAF,QAAA,GAAC,YAAU,EAACe,OAAO,CAAC/G,QAAQ;YAAA;cAAA4F,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI,CACjF;UAAA,GAlBOgB,OAAO,CAACjH,SAAS;YAAA8F,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAmBtB,CACN;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACC,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACH,CACN,EAGAxH,MAAM,CAACuC,aAAa,IAAIvC,MAAM,CAACuC,aAAa,CAACmC,MAAM,GAAG,CAAC,iBACtDtF,OAAA;QAAKuI,SAAS,EAAC,gCAAgC;QAAAF,QAAA,gBAC7CrI,OAAA;UAAIuI,SAAS,EAAC,aAAa;UAACC,KAAK,EAAE;YAAEC,QAAQ,EAAE,MAAM;YAAEG,YAAY,EAAE;UAAO,CAAE;UAAAP,QAAA,EAAC;QAAa;UAAAJ,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAI,CAAC,eACjGpI,OAAA;UAAKuI,SAAS,EAAC,WAAW;UAAAF,QAAA,EACvBzH,MAAM,CAACuC,aAAa,CAAC4F,GAAG,CAAEW,YAAY,iBACrC1J,OAAA;YAAuCuI,SAAS,EAAC,wCAAwC;YAAAF,QAAA,gBACvFrI,OAAA;cAAGuI,SAAS,EAAC,aAAa;cAAAF,QAAA,EAAEqB,YAAY,CAAC5B;YAAc;cAAAG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI,CAAC,eAC5DpI,OAAA;cAAGuI,SAAS,EAAC,mCAAmC;cAAAF,QAAA,GAAC,UAAQ,EAACqB,YAAY,CAACjH,MAAM;YAAA;cAAAwF,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI,CAAC,eAClFpI,OAAA;cAAGuI,SAAS,EAAC,mCAAmC;cAAAF,QAAA,GAAC,aAAW,EAACqB,YAAY,CAAChH,SAAS;YAAA;cAAAuF,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI,CAAC,eACxFpI,OAAA;cAAGuI,SAAS,EAAC,mCAAmC;cAAAF,QAAA,GAAC,YAAU,EAACqB,YAAY,CAAC/G,QAAQ;YAAA;cAAAsF,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI,CAAC;UAAA,GAJ9EsB,YAAY,CAAClH,cAAc;YAAAyF,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAKhC,CACN;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACC,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACH,CACN,EAGAxH,MAAM,CAAC+I,OAAO,IAAI/I,MAAM,CAAC+I,OAAO,CAACrE,MAAM,GAAG,CAAC,iBAC1CtF,OAAA;QAAKuI,SAAS,EAAC,gCAAgC;QAAAF,QAAA,gBAC7CrI,OAAA;UAAIuI,SAAS,EAAC,aAAa;UAACC,KAAK,EAAE;YAAEC,QAAQ,EAAE,MAAM;YAAEG,YAAY,EAAE;UAAO,CAAE;UAAAP,QAAA,EAAC;QAAe;UAAAJ,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAI,CAAC,eACnGpI,OAAA;UAAKuI,SAAS,EAAC,WAAW;UAAAF,QAAA,EACvBzH,MAAM,CAAC+I,OAAO,CAACZ,GAAG,CAAEa,MAAM,iBACzB5J,OAAA;YAA2BuI,SAAS,EAAC,uCAAuC;YAAAF,QAAA,gBAC1ErI,OAAA;cAAGwI,KAAK,EAAE;gBAAEE,UAAU,EAAE;cAAS,CAAE;cAAAL,QAAA,GAAC,cAAY,EAACuB,MAAM,CAACX,UAAU;YAAA;cAAAhB,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI,CAAC,eACvEpI,OAAA;cAAGuI,SAAS,EAAC,mCAAmC;cAAAF,QAAA,EAAEuB,MAAM,CAAC7C;YAAW;cAAAkB,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI,CAAC,eACzEpI,OAAA;cAAGuI,SAAS,EAAC,mCAAmC;cAAAF,QAAA,GAAC,QAAM,EAACuB,MAAM,CAACC,UAAU;YAAA;cAAA5B,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI,CAAC;UAAA,GAHtEwB,MAAM,CAACE,QAAQ;YAAA7B,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAIpB,CACN;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACC,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACH,CACN,EAGA/D,UAAU,IAAIA,UAAU,CAACiB,MAAM,GAAG,CAAC,iBAClCtF,OAAA;QAAKuI,SAAS,EAAC,gCAAgC;QAAAF,QAAA,gBAC7CrI,OAAA;UAAIuI,SAAS,EAAC,aAAa;UAACC,KAAK,EAAE;YAAEC,QAAQ,EAAE,MAAM;YAAEG,YAAY,EAAE;UAAO,CAAE;UAAAP,QAAA,EAAC;QAAgB;UAAAJ,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAI,CAAC,eACpGpI,OAAA;UAAKuI,SAAS,EAAC,WAAW;UAAAF,QAAA,EACvBhE,UAAU,CAAC0E,GAAG,CAAEgB,MAAM,iBACrB/J,OAAA;YAA2BuI,SAAS,EAAC,yDAAyD;YAAAF,QAAA,gBAC5FrI,OAAA;cAAGuI,SAAS,EAAC,aAAa;cAACC,KAAK,EAAE;gBAAEC,QAAQ,EAAE,MAAM;gBAAEe,KAAK,EAAE;cAAU,CAAE;cAAAnB,QAAA,EAAE0B,MAAM,CAACC;YAAQ;cAAA/B,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI,CAAC,eAC/FpI,OAAA;cAAGuI,SAAS,EAAC,wCAAwC;cAAAF,QAAA,GAAC,WAAS,EAAC0B,MAAM,CAACE,OAAO;YAAA;cAAAhC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI,CAAC,eACnFpI,OAAA;cAAGuI,SAAS,EAAC,mCAAmC;cAAAF,QAAA,GAAC,eAAa,EAAC0B,MAAM,CAACG,UAAU;YAAA;cAAAjC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAI,CAAC;UAAA,GAH7E2B,MAAM,CAACI,QAAQ;YAAAlC,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAIpB,CACN;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACC,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACH,CACN,EAGA7D,gBAAgB,IAAIA,gBAAgB,CAACe,MAAM,GAAG,CAAC,iBAC9CtF,OAAA;QAAKuI,SAAS,EAAC,gCAAgC;QAAAF,QAAA,gBAC7CrI,OAAA;UAAIuI,SAAS,EAAC,aAAa;UAACC,KAAK,EAAE;YAAEC,QAAQ,EAAE,MAAM;YAAEG,YAAY,EAAE;UAAO,CAAE;UAAAP,QAAA,EAAC;QAAiB;UAAAJ,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAI,CAAC,eACrGpI,OAAA;UAAKuI,SAAS,EAAC,WAAW;UAAAF,QAAA,EACvB9D,gBAAgB,CAACwE,GAAG,CAAEgB,MAAM;YAAA,IAAAK,iBAAA;YAAA,oBAC3BpK,OAAA;cAA2BuI,SAAS,EAAC,6DAA6D;cAAAF,QAAA,gBAChGrI,OAAA;gBAAGuI,SAAS,EAAC,aAAa;gBAACC,KAAK,EAAE;kBAAEC,QAAQ,EAAE,MAAM;kBAAEe,KAAK,EAAE;gBAAU,CAAE;gBAAAnB,QAAA,EAAE,EAAA+B,iBAAA,GAAAL,MAAM,CAACM,SAAS,cAAAD,iBAAA,uBAAhBA,iBAAA,CAAkBE,aAAa,KAAI;cAAW;gBAAArC,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAI,CAAC,eAC9HpI,OAAA;gBAAGuI,SAAS,EAAC,wCAAwC;gBAAAF,QAAA,GAAC,WAAS,EAAC0B,MAAM,CAACQ,iBAAiB;cAAA;gBAAAtC,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAI,CAAC,eAC7FpI,OAAA;gBAAGuI,SAAS,EAAC,mCAAmC;gBAAAF,QAAA,GAAC,eAAa,EAAC0B,MAAM,CAACG,UAAU;cAAA;gBAAAjC,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAI,CAAC;YAAA,GAH7E2B,MAAM,CAACI,QAAQ;cAAAlC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAIpB,CAAC;UAAA,CACP;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACC,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACH,CACN,EAEA,CAAC,CAACxH,MAAM,CAACiC,SAAS,IAAIjC,MAAM,CAACiC,SAAS,CAACyC,MAAM,KAAK,CAAC,MACjD,CAAC1E,MAAM,CAACmC,QAAQ,IAAInC,MAAM,CAACmC,QAAQ,CAACuC,MAAM,KAAK,CAAC,CAAC,KACjD,CAAC1E,MAAM,CAACqC,SAAS,IAAIrC,MAAM,CAACqC,SAAS,CAACqC,MAAM,KAAK,CAAC,CAAC,KACnD,CAAC1E,MAAM,CAAC+I,OAAO,IAAI/I,MAAM,CAAC+I,OAAO,CAACrE,MAAM,KAAK,CAAC,CAAC,KAC/C,CAACjB,UAAU,IAAIA,UAAU,CAACiB,MAAM,KAAK,CAAC,CAAC,KACvC,CAACf,gBAAgB,IAAIA,gBAAgB,CAACe,MAAM,KAAK,CAAC,CAAC,iBAClDtF,OAAA;QAAKuI,SAAS,EAAC,uCAAuC;QAAAF,QAAA,eACpDrI,OAAA;UAAGuI,SAAS,EAAC,eAAe;UAAAF,QAAA,EAAC;QAA4B;UAAAJ,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAG;MAAC;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAC1D,CACN;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACA,CACN,EAGAhH,SAAS,KAAK,WAAW,iBACxBpB,OAAA;MAAKuI,SAAS,EAAC,gCAAgC;MAAAF,QAAA,gBAC7CrI,OAAA;QAAIwI,KAAK,EAAE;UAAEC,QAAQ,EAAE,MAAM;UAAEC,UAAU,EAAE,QAAQ;UAAEE,YAAY,EAAE;QAAO,CAAE;QAAAP,QAAA,EAAC;MAAoB;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAI,CAAC,eACtGpI,OAAA;QAAMwK,QAAQ,EAAEnE,kBAAmB;QAACkC,SAAS,EAAC,qBAAqB;QAAAF,QAAA,gBACjErI,OAAA;UAAAqI,QAAA,gBACErI,OAAA;YAAOwI,KAAK,EAAE;cAAEE,UAAU,EAAE;YAAS,CAAE;YAACH,SAAS,EAAC,oBAAoB;YAAAF,QAAA,EAAC;UAAQ;YAAAJ,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAO,CAAC,EACtF1H,QAAQ,gBACPV,OAAA;YAAGuI,SAAS,EAAC,gDAAgD;YAAAF,QAAA,GAAC,MACxD,EAAChI,IAAI,CAACoK,SAAS,EAAC,GAAC,EAACpK,IAAI,CAACqK,QAAQ;UAAA;YAAAzC,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAClC,CAAC,gBAEJpI,OAAA;YACE2K,KAAK,EAAEnJ,gBAAiB;YACxBoJ,QAAQ,EAAGtE,CAAC,IAAK7E,mBAAmB,CAAC6E,CAAC,CAACuE,MAAM,CAACF,KAAK,CAAE;YACrDpC,SAAS,EAAC,oCAAoC;YAC9CuC,QAAQ;YAAAzC,QAAA,gBAERrI,OAAA;cAAQ2K,KAAK,EAAC,EAAE;cAAAtC,QAAA,EAAC;YAAa;cAAAJ,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,EACtC9G,OAAO,CAACyH,GAAG,CAAEgC,GAAG,iBACf/K,OAAA;cAA2B2K,KAAK,EAAEI,GAAG,CAACrJ,QAAS;cAAA2G,QAAA,GAAC,MAC1C,EAAC0C,GAAG,CAACN,SAAS,EAAC,GAAC,EAACM,GAAG,CAACL,QAAQ;YAAA,GADtBK,GAAG,CAACrJ,QAAQ;cAAAuG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAEjB,CACT,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACI,CACT;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACE,CAAC,eACNpI,OAAA;UAAAqI,QAAA,gBACErI,OAAA;YAAOwI,KAAK,EAAE;cAAEE,UAAU,EAAE;YAAS,CAAE;YAACH,SAAS,EAAC,oBAAoB;YAAAF,QAAA,EAAC;UAAW;YAAAJ,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAO,CAAC,eAC1FpI,OAAA;YACE2K,KAAK,EAAEhJ,aAAa,CAACE,WAAY;YACjC+I,QAAQ,EAAGtE,CAAC,IAAK1E,gBAAgB,CAAC;cAAE,GAAGD,aAAa;cAAEE,WAAW,EAAEyE,CAAC,CAACuE,MAAM,CAACF;YAAM,CAAC,CAAE;YACrFpC,SAAS,EAAC,oCAAoC;YAC9CuC,QAAQ;YAAAzC,QAAA,gBAERrI,OAAA;cAAQ2K,KAAK,EAAC,EAAE;cAAAtC,QAAA,EAAExF,SAAS,CAACyC,MAAM,KAAK,CAAC,GAAG,sBAAsB,GAAG;YAAkB;cAAA2C,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAS,CAAC,EAC/FvF,SAAS,IAAIA,SAAS,CAACyC,MAAM,GAAG,CAAC,IAAIzC,SAAS,CAACkG,GAAG,CAAEC,SAAS,iBAC5DhJ,OAAA;cAA2B2K,KAAK,EAAE3B,SAAS,CAAC7I,EAAG;cAAAkI,QAAA,EAC5CW,SAAS,CAAClC;YAAI,GADJkC,SAAS,CAAC7I,EAAE;cAAA8H,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAEjB,CACT,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACI,CAAC,EACRvF,SAAS,CAACyC,MAAM,KAAK,CAAC,iBACrBtF,OAAA;YAAGuI,SAAS,EAAC,4BAA4B;YAAAF,QAAA,EAAC;UAAsC;YAAAJ,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAG,CACpF;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACE,CAAC,eACNpI,OAAA;UACEgL,IAAI,EAAC,QAAQ;UACbxC,KAAK,EAAE;YAACiB,UAAU,EAAE,SAAS;YAAED,KAAK,EAAE,OAAO;YAAEF,OAAO,EAAE,UAAU;YAAEC,YAAY,EAAE,KAAK;YAAE0B,MAAM,EAAE,MAAM;YAAEC,MAAM,EAAE,SAAS;YAAEzC,QAAQ,EAAE,MAAM;YAAEC,UAAU,EAAE;UAAK,CAAE;UAACyC,YAAY,EAAG7E,CAAC,IAAKA,CAAC,CAAC8E,aAAa,CAAC5C,KAAK,CAACiB,UAAU,GAAG,SAAU;UAAC4B,YAAY,EAAG/E,CAAC,IAAKA,CAAC,CAAC8E,aAAa,CAAC5C,KAAK,CAACiB,UAAU,GAAG,SAAU;UAAApB,QAAA,EACxS;QAED;UAAAJ,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAQ,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACL,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACJ,CACN,EAGAhH,SAAS,KAAK,UAAU,iBACvBpB,OAAA;MAAKuI,SAAS,EAAC,gCAAgC;MAAAF,QAAA,gBAC7CrI,OAAA;QAAIwI,KAAK,EAAE;UAAEC,QAAQ,EAAE,MAAM;UAAEC,UAAU,EAAE,QAAQ;UAAEE,YAAY,EAAE;QAAO,CAAE;QAAAP,QAAA,EAAC;MAAuB;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAI,CAAC,eACzGpI,OAAA;QAAMwK,QAAQ,EAAErD,gBAAiB;QAACoB,SAAS,EAAC,qBAAqB;QAAAF,QAAA,gBAC/DrI,OAAA;UAAAqI,QAAA,gBACErI,OAAA;YAAOwI,KAAK,EAAE;cAAEE,UAAU,EAAE;YAAS,CAAE;YAACH,SAAS,EAAC,oBAAoB;YAAAF,QAAA,EAAC;UAAQ;YAAAJ,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAO,CAAC,EACtF1H,QAAQ,gBACPV,OAAA;YAAGuI,SAAS,EAAC,gDAAgD;YAAAF,QAAA,GAAC,MACxD,EAAChI,IAAI,CAACoK,SAAS,EAAC,GAAC,EAACpK,IAAI,CAACqK,QAAQ;UAAA;YAAAzC,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAClC,CAAC,gBAEJpI,OAAA;YACE2K,KAAK,EAAEnJ,gBAAiB;YACxBoJ,QAAQ,EAAGtE,CAAC,IAAK7E,mBAAmB,CAAC6E,CAAC,CAACuE,MAAM,CAACF,KAAK,CAAE;YACrDpC,SAAS,EAAC,oCAAoC;YAC9CuC,QAAQ;YAAAzC,QAAA,gBAERrI,OAAA;cAAQ2K,KAAK,EAAC,EAAE;cAAAtC,QAAA,EAAC;YAAa;cAAAJ,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,EACtC9G,OAAO,CAACyH,GAAG,CAAEgC,GAAG,iBACf/K,OAAA;cAA2B2K,KAAK,EAAEI,GAAG,CAACrJ,QAAS;cAAA2G,QAAA,GAAC,MAC1C,EAAC0C,GAAG,CAACN,SAAS,EAAC,GAAC,EAACM,GAAG,CAACL,QAAQ;YAAA,GADtBK,GAAG,CAACrJ,QAAQ;cAAAuG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAEjB,CACT,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACI,CACT;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACE,CAAC,eACNpI,OAAA;UAAAqI,QAAA,gBACErI,OAAA;YAAOwI,KAAK,EAAE;cAAEE,UAAU,EAAE;YAAS,CAAE;YAACH,SAAS,EAAC,oBAAoB;YAAAF,QAAA,EAAC;UAAS;YAAAJ,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAO,CAAC,eACxFpI,OAAA;YACE2K,KAAK,EAAE7I,YAAY,CAACE,SAAU;YAC9B4I,QAAQ,EAAGtE,CAAC,IAAKvE,eAAe,CAAC;cAAE,GAAGD,YAAY;cAAEE,SAAS,EAAEsE,CAAC,CAACuE,MAAM,CAACF;YAAM,CAAC,CAAE;YACjFpC,SAAS,EAAC,oCAAoC;YAC9CuC,QAAQ;YAAAzC,QAAA,gBAERrI,OAAA;cAAQ2K,KAAK,EAAC,EAAE;cAAAtC,QAAA,EAAC;YAAc;cAAAJ,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,EACvCrF,QAAQ,CAACuI,MAAM,CAACC,CAAC;cAAA,IAAAC,gBAAA;cAAA,OAAI,GAAAA,gBAAA,GAAC5K,MAAM,CAACmC,QAAQ,cAAAyI,gBAAA,eAAfA,gBAAA,CAAiBC,IAAI,CAACC,EAAE,IAAIA,EAAE,CAAC1J,SAAS,KAAKuJ,CAAC,CAACpL,EAAE,CAAC;YAAA,EAAC,CAAC4I,GAAG,CAAEG,OAAO,iBACrFlJ,OAAA;cAAyB2K,KAAK,EAAEzB,OAAO,CAAC/I,EAAG;cAAAkI,QAAA,EACxCa,OAAO,CAACpC;YAAI,GADFoC,OAAO,CAAC/I,EAAE;cAAA8H,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAEf,CACT,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACI,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACN,CAAC,eACNpI,OAAA;UACEgL,IAAI,EAAC,QAAQ;UACbxC,KAAK,EAAE;YAACiB,UAAU,EAAE,SAAS;YAAED,KAAK,EAAE,OAAO;YAAEF,OAAO,EAAE,UAAU;YAAEC,YAAY,EAAE,KAAK;YAAE0B,MAAM,EAAE,MAAM;YAAEC,MAAM,EAAE,SAAS;YAAEzC,QAAQ,EAAE,MAAM;YAAEC,UAAU,EAAE;UAAK,CAAE;UAACyC,YAAY,EAAG7E,CAAC,IAAKA,CAAC,CAAC8E,aAAa,CAAC5C,KAAK,CAACiB,UAAU,GAAG,SAAU;UAAC4B,YAAY,EAAG/E,CAAC,IAAKA,CAAC,CAAC8E,aAAa,CAAC5C,KAAK,CAACiB,UAAU,GAAG,SAAU;UAAApB,QAAA,EACxS;QAED;UAAAJ,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAQ,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACL,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACJ,CACN,EAGAhH,SAAS,KAAK,WAAW,iBACxBpB,OAAA;MAAKuI,SAAS,EAAC,gCAAgC;MAAAF,QAAA,gBAC7CrI,OAAA;QAAIwI,KAAK,EAAE;UAAEC,QAAQ,EAAE,MAAM;UAAEC,UAAU,EAAE,QAAQ;UAAEE,YAAY,EAAE;QAAO,CAAE;QAAAP,QAAA,EAAC;MAAwB;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAI,CAAC,eAC1GpI,OAAA;QAAMwK,QAAQ,EAAElD,gBAAiB;QAACiB,SAAS,EAAC,qBAAqB;QAAAF,QAAA,gBAC/DrI,OAAA;UAAAqI,QAAA,gBACErI,OAAA;YAAOwI,KAAK,EAAE;cAAEE,UAAU,EAAE;YAAS,CAAE;YAACH,SAAS,EAAC,oBAAoB;YAAAF,QAAA,EAAC;UAAQ;YAAAJ,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAO,CAAC,EACtF1H,QAAQ,gBACPV,OAAA;YAAGuI,SAAS,EAAC,gDAAgD;YAAAF,QAAA,GAAC,MACxD,EAAChI,IAAI,CAACoK,SAAS,EAAC,GAAC,EAACpK,IAAI,CAACqK,QAAQ;UAAA;YAAAzC,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAClC,CAAC,gBAEJpI,OAAA;YACE2K,KAAK,EAAEnJ,gBAAiB;YACxBoJ,QAAQ,EAAGtE,CAAC,IAAK7E,mBAAmB,CAAC6E,CAAC,CAACuE,MAAM,CAACF,KAAK,CAAE;YACrDpC,SAAS,EAAC,oCAAoC;YAC9CuC,QAAQ;YAAAzC,QAAA,gBAERrI,OAAA;cAAQ2K,KAAK,EAAC,EAAE;cAAAtC,QAAA,EAAC;YAAa;cAAAJ,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,EACtC9G,OAAO,CAACyH,GAAG,CAAEgC,GAAG,iBACf/K,OAAA;cAA2B2K,KAAK,EAAEI,GAAG,CAACrJ,QAAS;cAAA2G,QAAA,GAAC,MAC1C,EAAC0C,GAAG,CAACN,SAAS,EAAC,GAAC,EAACM,GAAG,CAACL,QAAQ;YAAA,GADtBK,GAAG,CAACrJ,QAAQ;cAAAuG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAEjB,CACT,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACI,CACT;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACE,CAAC,eACNpI,OAAA;UAAAqI,QAAA,gBACErI,OAAA;YAAOwI,KAAK,EAAE;cAAEE,UAAU,EAAE;YAAS,CAAE;YAACH,SAAS,EAAC,oBAAoB;YAAAF,QAAA,EAAC;UAAS;YAAAJ,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAO,CAAC,eACxFpI,OAAA;YACE2K,KAAK,EAAE1I,WAAW,CAACE,SAAU;YAC7ByI,QAAQ,EAAGtE,CAAC,IAAKpE,cAAc,CAAC;cAAE,GAAGD,WAAW;cAAEE,SAAS,EAAEmE,CAAC,CAACuE,MAAM,CAACF;YAAM,CAAC,CAAE;YAC/EpC,SAAS,EAAC,oCAAoC;YAC9CuC,QAAQ;YAAAzC,QAAA,gBAERrI,OAAA;cAAQ2K,KAAK,EAAC,EAAE;cAAAtC,QAAA,EAAC;YAAc;cAAAJ,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,EACvCnF,SAAS,CAACqI,MAAM,CAACK,CAAC;cAAA,IAAAC,iBAAA;cAAA,OAAI,GAAAA,iBAAA,GAAChL,MAAM,CAACqC,SAAS,cAAA2I,iBAAA,eAAhBA,iBAAA,CAAkBH,IAAI,CAACI,EAAE,IAAIA,EAAE,CAAC1J,SAAS,KAAKwJ,CAAC,CAACxL,EAAE,CAAC;YAAA,EAAC,CAAC4I,GAAG,CAAEK,OAAO,iBACvFpJ,OAAA;cAAyB2K,KAAK,EAAEvB,OAAO,CAACjJ,EAAG;cAAAkI,QAAA,EACxCe,OAAO,CAACtC;YAAI,GADFsC,OAAO,CAACjJ,EAAE;cAAA8H,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAEf,CACT,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACI,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACN,CAAC,eACNpI,OAAA;UAAAqI,QAAA,gBACErI,OAAA;YAAOwI,KAAK,EAAE;cAAEE,UAAU,EAAE;YAAS,CAAE;YAACH,SAAS,EAAC,oBAAoB;YAAAF,QAAA,EAAC;UAAU;YAAAJ,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAO,CAAC,eACzFpI,OAAA;YACE2K,KAAK,EAAE1I,WAAW,CAACG,QAAS;YAC5BwI,QAAQ,EAAGtE,CAAC,IAAKpE,cAAc,CAAC;cAAE,GAAGD,WAAW;cAAEG,QAAQ,EAAEkE,CAAC,CAACuE,MAAM,CAACF;YAAM,CAAC,CAAE;YAC9EpC,SAAS,EAAC,oCAAoC;YAAAF,QAAA,gBAE9CrI,OAAA;cAAQ2K,KAAK,EAAC,KAAK;cAAAtC,QAAA,EAAC;YAAG;cAAAJ,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,eAChCpI,OAAA;cAAQ2K,KAAK,EAAC,QAAQ;cAAAtC,QAAA,EAAC;YAAM;cAAAJ,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,eACtCpI,OAAA;cAAQ2K,KAAK,EAAC,MAAM;cAAAtC,QAAA,EAAC;YAAI;cAAAJ,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,eAClCpI,OAAA;cAAQ2K,KAAK,EAAC,UAAU;cAAAtC,QAAA,EAAC;YAAQ;cAAAJ,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACpC,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACN,CAAC,eACNpI,OAAA;UAAAqI,QAAA,gBACErI,OAAA;YAAOwI,KAAK,EAAE;cAAEE,UAAU,EAAE;YAAS,CAAE;YAACH,SAAS,EAAC,oBAAoB;YAAAF,QAAA,EAAC;UAAQ;YAAAJ,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAO,CAAC,eACvFpI,OAAA;YACE2K,KAAK,EAAE1I,WAAW,CAACI,QAAS;YAC5BuI,QAAQ,EAAGtE,CAAC,IAAKpE,cAAc,CAAC;cAAE,GAAGD,WAAW;cAAEI,QAAQ,EAAEiE,CAAC,CAACuE,MAAM,CAACF;YAAM,CAAC,CAAE;YAC9EmB,WAAW,EAAC,gCAAgC;YAC5CvD,SAAS,EAAC,oCAAoC;YAC9CwD,IAAI,EAAC;UAAG;YAAA9D,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACT,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACC,CAAC,eACNpI,OAAA;UACEgL,IAAI,EAAC,QAAQ;UACbxC,KAAK,EAAE;YAACiB,UAAU,EAAE,SAAS;YAAED,KAAK,EAAE,OAAO;YAAEF,OAAO,EAAE,UAAU;YAAEC,YAAY,EAAE,KAAK;YAAE0B,MAAM,EAAE,MAAM;YAAEC,MAAM,EAAE,SAAS;YAAEzC,QAAQ,EAAE,MAAM;YAAEC,UAAU,EAAE;UAAK,CAAE;UAACyC,YAAY,EAAG7E,CAAC,IAAKA,CAAC,CAAC8E,aAAa,CAAC5C,KAAK,CAACiB,UAAU,GAAG,SAAU;UAAC4B,YAAY,EAAG/E,CAAC,IAAKA,CAAC,CAAC8E,aAAa,CAAC5C,KAAK,CAACiB,UAAU,GAAG,SAAU;UAAApB,QAAA,EACxS;QAED;UAAAJ,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAQ,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACL,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACJ,CACN,EAGAhH,SAAS,KAAK,cAAc,iBAC3BpB,OAAA;MAAKuI,SAAS,EAAC,gCAAgC;MAAAF,QAAA,gBAC7CrI,OAAA;QAAIwI,KAAK,EAAE;UAAEC,QAAQ,EAAE,MAAM;UAAEC,UAAU,EAAE,QAAQ;UAAEE,YAAY,EAAE;QAAO,CAAE;QAAAP,QAAA,EAAC;MAAmB;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAI,CAAC,eACrGpI,OAAA;QAAMwK,QAAQ,EAAE/C,qBAAsB;QAACc,SAAS,EAAC,qBAAqB;QAAAF,QAAA,gBACpErI,OAAA;UAAAqI,QAAA,gBACErI,OAAA;YAAOwI,KAAK,EAAE;cAAEE,UAAU,EAAE;YAAS,CAAE;YAACH,SAAS,EAAC,oBAAoB;YAAAF,QAAA,EAAC;UAAQ;YAAAJ,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAO,CAAC,EACtF1H,QAAQ,gBACPV,OAAA;YAAGuI,SAAS,EAAC,gDAAgD;YAAAF,QAAA,GAAC,MACxD,EAAChI,IAAI,CAACoK,SAAS,EAAC,GAAC,EAACpK,IAAI,CAACqK,QAAQ;UAAA;YAAAzC,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAClC,CAAC,gBAEJpI,OAAA;YACE2K,KAAK,EAAEnJ,gBAAiB;YACxBoJ,QAAQ,EAAGtE,CAAC,IAAK7E,mBAAmB,CAAC6E,CAAC,CAACuE,MAAM,CAACF,KAAK,CAAE;YACrDpC,SAAS,EAAC,oCAAoC;YAC9CuC,QAAQ;YAAAzC,QAAA,gBAERrI,OAAA;cAAQ2K,KAAK,EAAC,EAAE;cAAAtC,QAAA,EAAC;YAAa;cAAAJ,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,EACtC9G,OAAO,CAACyH,GAAG,CAAEgC,GAAG,iBACf/K,OAAA;cAA2B2K,KAAK,EAAEI,GAAG,CAACrJ,QAAS;cAAA2G,QAAA,GAAC,MAC1C,EAAC0C,GAAG,CAACN,SAAS,EAAC,GAAC,EAACM,GAAG,CAACL,QAAQ;YAAA,GADtBK,GAAG,CAACrJ,QAAQ;cAAAuG,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAEjB,CACT,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACI,CACT;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACE,CAAC,eACNpI,OAAA;UAAAqI,QAAA,gBACErI,OAAA;YAAOwI,KAAK,EAAE;cAAEE,UAAU,EAAE;YAAS,CAAE;YAACH,SAAS,EAAC,oBAAoB;YAAAF,QAAA,EAAC;UAAY;YAAAJ,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAO,CAAC,eAC3FpI,OAAA;YACE2K,KAAK,EAAErI,gBAAgB,CAACE,cAAe;YACvCoI,QAAQ,EAAGtE,CAAC,IACV/D,mBAAmB,CAAC;cAAE,GAAGD,gBAAgB;cAAEE,cAAc,EAAE8D,CAAC,CAACuE,MAAM,CAACF;YAAM,CAAC,CAC5E;YACDpC,SAAS,EAAC,oCAAoC;YAC9CuC,QAAQ;YAAAzC,QAAA,gBAERrI,OAAA;cAAQ2K,KAAK,EAAC,EAAE;cAAAtC,QAAA,EAAC;YAAiB;cAAAJ,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,EAC1CjF,aAAa,CAAC4F,GAAG,CAAEW,YAAY,iBAC9B1J,OAAA;cAA8B2K,KAAK,EAAEjB,YAAY,CAACvJ,EAAG;cAAAkI,QAAA,EAClDqB,YAAY,CAAC5C;YAAI,GADP4C,YAAY,CAACvJ,EAAE;cAAA8H,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAEpB,CACT,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACI,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACN,CAAC,eACNpI,OAAA;UAAKuI,SAAS,EAAC,wBAAwB;UAAAF,QAAA,gBACrCrI,OAAA;YAAAqI,QAAA,gBACErI,OAAA;cAAOwI,KAAK,EAAE;gBAAEE,UAAU,EAAE;cAAS,CAAE;cAACH,SAAS,EAAC,oBAAoB;cAAAF,QAAA,EAAC;YAAQ;cAAAJ,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAO,CAAC,eACvFpI,OAAA;cACEgL,IAAI,EAAC,MAAM;cACXL,KAAK,EAAErI,gBAAgB,CAACG,MAAO;cAC/BmI,QAAQ,EAAGtE,CAAC,IACV/D,mBAAmB,CAAC;gBAAE,GAAGD,gBAAgB;gBAAEG,MAAM,EAAE6D,CAAC,CAACuE,MAAM,CAACF;cAAM,CAAC,CACpE;cACDmB,WAAW,EAAC,aAAa;cACzBvD,SAAS,EAAC,oCAAoC;cAC9CuC,QAAQ;YAAA;cAAA7C,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OACT,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACC,CAAC,eACNpI,OAAA;YAAAqI,QAAA,gBACErI,OAAA;cAAOwI,KAAK,EAAE;gBAAEE,UAAU,EAAE;cAAS,CAAE;cAACH,SAAS,EAAC,oBAAoB;cAAAF,QAAA,EAAC;YAAW;cAAAJ,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAO,CAAC,eAC1FpI,OAAA;cACEgL,IAAI,EAAC,MAAM;cACXL,KAAK,EAAErI,gBAAgB,CAACI,SAAU;cAClCkI,QAAQ,EAAGtE,CAAC,IACV/D,mBAAmB,CAAC;gBAAE,GAAGD,gBAAgB;gBAAEI,SAAS,EAAE4D,CAAC,CAACuE,MAAM,CAACF;cAAM,CAAC,CACvE;cACDmB,WAAW,EAAC,mBAAmB;cAC/BvD,SAAS,EAAC,oCAAoC;cAC9CuC,QAAQ;YAAA;cAAA7C,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OACT,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACC,CAAC,eACNpI,OAAA;YAAAqI,QAAA,gBACErI,OAAA;cAAOwI,KAAK,EAAE;gBAAEE,UAAU,EAAE;cAAS,CAAE;cAACH,SAAS,EAAC,oBAAoB;cAAAF,QAAA,EAAC;YAAU;cAAAJ,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAO,CAAC,eACzFpI,OAAA;cACEgL,IAAI,EAAC,MAAM;cACXL,KAAK,EAAErI,gBAAgB,CAACK,QAAS;cACjCiI,QAAQ,EAAGtE,CAAC,IACV/D,mBAAmB,CAAC;gBAAE,GAAGD,gBAAgB;gBAAEK,QAAQ,EAAE2D,CAAC,CAACuE,MAAM,CAACF;cAAM,CAAC,CACtE;cACDmB,WAAW,EAAC,cAAc;cAC1BvD,SAAS,EAAC,oCAAoC;cAC9CuC,QAAQ;YAAA;cAAA7C,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OACT,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACC,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACH,CAAC,eACNpI,OAAA;UAAAqI,QAAA,gBACErI,OAAA;YAAOwI,KAAK,EAAE;cAAEE,UAAU,EAAE;YAAS,CAAE;YAACH,SAAS,EAAC,oBAAoB;YAAAF,QAAA,EAAC;UAAuB;YAAAJ,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAO,CAAC,eACtGpI,OAAA;YACE2K,KAAK,EAAErI,gBAAgB,CAACM,MAAO;YAC/BgI,QAAQ,EAAGtE,CAAC,IAAK/D,mBAAmB,CAAC;cAAE,GAAGD,gBAAgB;cAAEM,MAAM,EAAE0D,CAAC,CAACuE,MAAM,CAACF;YAAM,CAAC,CAAE;YACtFmB,WAAW,EAAC,4CAA4C;YACxDvD,SAAS,EAAC,oCAAoC;YAC9CwD,IAAI,EAAC;UAAG;YAAA9D,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACT,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACC,CAAC,eACNpI,OAAA;UACEgL,IAAI,EAAC,QAAQ;UACbxC,KAAK,EAAE;YAACiB,UAAU,EAAE,SAAS;YAAED,KAAK,EAAE,OAAO;YAAEF,OAAO,EAAE,UAAU;YAAEC,YAAY,EAAE,KAAK;YAAE0B,MAAM,EAAE,MAAM;YAAEC,MAAM,EAAE,SAAS;YAAEzC,QAAQ,EAAE,MAAM;YAAEC,UAAU,EAAE;UAAK,CAAE;UAACyC,YAAY,EAAG7E,CAAC,IAAKA,CAAC,CAAC8E,aAAa,CAAC5C,KAAK,CAACiB,UAAU,GAAG,SAAU;UAAC4B,YAAY,EAAG/E,CAAC,IAAKA,CAAC,CAAC8E,aAAa,CAAC5C,KAAK,CAACiB,UAAU,GAAG,SAAU;UAAApB,QAAA,EACxS;QAED;UAAAJ,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAQ,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACL,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACJ,CACN,EAGAhH,SAAS,KAAK,YAAY,iBACzBpB,OAAA;MAAKuI,SAAS,EAAC,gCAAgC;MAAAF,QAAA,gBAC7CrI,OAAA;QAAIwI,KAAK,EAAE;UAAEC,QAAQ,EAAE,MAAM;UAAEC,UAAU,EAAE,QAAQ;UAAEE,YAAY,EAAE;QAAO,CAAE;QAAAP,QAAA,EAAC;MAAiB;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAI,CAAC,eACnGpI,OAAA;QAAMwK,QAAQ,EAAE,MAAOlE,CAAC,IAAK;UAC3BA,CAAC,CAACC,cAAc,CAAC,CAAC;UAClBtF,QAAQ,CAAC,IAAI,CAAC;UAEd,IAAI,CAACgD,aAAa,CAACE,WAAW,EAAE;YAC9BlD,QAAQ,CAAC,2BAA2B,CAAC;YACrC;UACF;UAEA,IAAI;YACFF,UAAU,CAAC,IAAI,CAAC;YAChB,MAAMW,QAAQ,GAAGrB,IAAI,CAACqB,QAAQ,IAAI,CAAC;YAEnC,MAAMsK,OAAO,GAAG;cACdnF,SAAS,EAAEjG,MAAM,CAACiG,SAAS;cAC3BnF,QAAQ,EAAEiF,QAAQ,CAACjF,QAAQ,CAAC;cAC5ByC,WAAW,EAAEwC,QAAQ,CAAC1C,aAAa,CAACE,WAAW,CAAC;cAChDC,aAAa,EAAEH,aAAa,CAACG,aAAa;cAC1CJ,KAAK,EAAEC,aAAa,CAACD,KAAK;cAC1BnC,WAAW,EAAEoC,aAAa,CAACpC,WAAW,GAAG8E,QAAQ,CAAC1C,aAAa,CAACpC,WAAW,CAAC,GAAG;YACjF,CAAC;YAED,MAAMnC,gBAAgB,CAACuM,gBAAgB,CAACD,OAAO,CAAC;YAEhD7K,UAAU,CAAC,kCAAkC,CAAC;YAC9C+C,gBAAgB,CAAC;cACfC,WAAW,EAAE,EAAE;cACfC,aAAa,EAAE,IAAIP,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;cACrDC,KAAK,EAAE,EAAE;cACTnC,WAAW,EAAE;YACf,CAAC,CAAC;YAEFmF,UAAU,CAAC,MAAM7F,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;UAC1C,CAAC,CAAC,OAAO6D,GAAG,EAAE;YAAA,IAAAkH,cAAA,EAAAC,mBAAA;YACZlL,QAAQ,CAAC,+BAA+B,IAAI,EAAAiL,cAAA,GAAAlH,GAAG,CAACN,QAAQ,cAAAwH,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAActH,IAAI,cAAAuH,mBAAA,uBAAlBA,mBAAA,CAAoBnL,KAAK,KAAIgE,GAAG,CAACoB,OAAO,CAAC,CAAC;UACxF,CAAC,SAAS;YACRrF,UAAU,CAAC,KAAK,CAAC;UACnB;QACF,CAAE;QAACwH,SAAS,EAAC,WAAW;QAAAF,QAAA,gBACtBrI,OAAA;UAAKuI,SAAS,EAAC,wBAAwB;UAAAF,QAAA,gBACrCrI,OAAA;YAAAqI,QAAA,gBACErI,OAAA;cAAOwI,KAAK,EAAE;gBAAEE,UAAU,EAAE;cAAS,CAAE;cAACH,SAAS,EAAC,oBAAoB;cAAAF,QAAA,EAAC;YAAW;cAAAJ,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAO,CAAC,eAC1FpI,OAAA;cACE2K,KAAK,EAAE1G,aAAa,CAACE,WAAY;cACjCyG,QAAQ,EAAGtE,CAAC,IAAKpC,gBAAgB,CAAC;gBAAE,GAAGD,aAAa;gBAAEE,WAAW,EAAEmC,CAAC,CAACuE,MAAM,CAACF;cAAM,CAAC,CAAE;cACrFpC,SAAS,EAAC,oCAAoC;cAC9CuC,QAAQ;cAAAzC,QAAA,gBAERrI,OAAA;gBAAQ2K,KAAK,EAAC,EAAE;gBAAAtC,QAAA,EAAC;cAAkB;gBAAAJ,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAQ,CAAC,EAC3C7E,UAAU,CAACwF,GAAG,CAAEqD,IAAI,iBACnBpM,OAAA;gBAA+B2K,KAAK,EAAEyB,IAAI,CAACjI,WAAY;gBAAAkE,QAAA,GACpD+D,IAAI,CAAC9B,aAAa,EAAC,KAAG,EAAC8B,IAAI,CAACC,IAAI,EAAC,GACpC;cAAA,GAFaD,IAAI,CAACjI,WAAW;gBAAA8D,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAErB,CACT,CAAC;YAAA;cAAAH,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OACI,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACN,CAAC,eACNpI,OAAA;YAAAqI,QAAA,gBACErI,OAAA;cAAOwI,KAAK,EAAE;gBAAEE,UAAU,EAAE;cAAS,CAAE;cAACH,SAAS,EAAC,oBAAoB;cAAAF,QAAA,EAAC;YAAgB;cAAAJ,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAO,CAAC,eAC/FpI,OAAA;cACEgL,IAAI,EAAC,MAAM;cACXL,KAAK,EAAE1G,aAAa,CAACG,aAAc;cACnCwG,QAAQ,EAAGtE,CAAC,IAAKpC,gBAAgB,CAAC;gBAAE,GAAGD,aAAa;gBAAEG,aAAa,EAAEkC,CAAC,CAACuE,MAAM,CAACF;cAAM,CAAC,CAAE;cACvFpC,SAAS,EAAC,oCAAoC;cAC9CuC,QAAQ;YAAA;cAAA7C,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OACT,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACC,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACH,CAAC,eACNpI,OAAA;UAAAqI,QAAA,gBACErI,OAAA;YAAOwI,KAAK,EAAE;cAAEE,UAAU,EAAE;YAAS,CAAE;YAACH,SAAS,EAAC,oBAAoB;YAAAF,QAAA,EAAC;UAA4B;YAAAJ,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAO,CAAC,eAC3GpI,OAAA;YACE2K,KAAK,EAAE1G,aAAa,CAACpC,WAAY;YACjC+I,QAAQ,EAAGtE,CAAC,IAAKpC,gBAAgB,CAAC;cAAE,GAAGD,aAAa;cAAEpC,WAAW,EAAEyE,CAAC,CAACuE,MAAM,CAACF;YAAM,CAAC,CAAE;YACrFpC,SAAS,EAAC,oCAAoC;YAAAF,QAAA,gBAE9CrI,OAAA;cAAQ2K,KAAK,EAAC,EAAE;cAAAtC,QAAA,EAAC;YAA2B;cAAAJ,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ,CAAC,EACpDvF,SAAS,CAACkG,GAAG,CAAEC,SAAS,iBACvBhJ,OAAA;cAA2B2K,KAAK,EAAE3B,SAAS,CAAC7I,EAAG;cAAAkI,QAAA,EAC5CW,SAAS,CAAClC;YAAI,GADJkC,SAAS,CAAC7I,EAAE;cAAA8H,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAEjB,CACT,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACI,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACN,CAAC,eACNpI,OAAA;UAAAqI,QAAA,gBACErI,OAAA;YAAOwI,KAAK,EAAE;cAAEE,UAAU,EAAE;YAAS,CAAE;YAACH,SAAS,EAAC,oBAAoB;YAAAF,QAAA,EAAC;UAAK;YAAAJ,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAO,CAAC,eACpFpI,OAAA;YACE2K,KAAK,EAAE1G,aAAa,CAACD,KAAM;YAC3B4G,QAAQ,EAAGtE,CAAC,IAAKpC,gBAAgB,CAAC;cAAE,GAAGD,aAAa;cAAED,KAAK,EAAEsC,CAAC,CAACuE,MAAM,CAACF;YAAM,CAAC,CAAE;YAC/EmB,WAAW,EAAC,6CAA6C;YACzDvD,SAAS,EAAC,oCAAoC;YAC9CwD,IAAI,EAAC;UAAG;YAAA9D,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACT,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACC,CAAC,eACNpI,OAAA;UACEgL,IAAI,EAAC,QAAQ;UACbsB,QAAQ,EAAExL,OAAQ;UAClB0H,KAAK,EAAE;YAACiB,UAAU,EAAE3I,OAAO,GAAG,SAAS,GAAG,SAAS;YAAE0I,KAAK,EAAE,OAAO;YAAEF,OAAO,EAAE,UAAU;YAAEC,YAAY,EAAE,KAAK;YAAE0B,MAAM,EAAE,MAAM;YAAEC,MAAM,EAAE,SAAS;YAAEzC,QAAQ,EAAE,MAAM;YAAEC,UAAU,EAAE;UAAK,CAAE;UAACyC,YAAY,EAAG7E,CAAC,IAAK,CAACxF,OAAO,KAAKwF,CAAC,CAAC8E,aAAa,CAAC5C,KAAK,CAACiB,UAAU,GAAG,SAAS,CAAE;UAAC4B,YAAY,EAAG/E,CAAC,IAAK,CAACxF,OAAO,KAAKwF,CAAC,CAAC8E,aAAa,CAAC5C,KAAK,CAACiB,UAAU,GAAG,SAAS,CAAE;UAAApB,QAAA,EAExVvH,OAAO,GAAG,eAAe,GAAG;QAAmB;UAAAmH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAC1C,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACL,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACJ,CACN,EAGAhH,SAAS,KAAK,WAAW,iBACxBpB,OAAA;MAAKuI,SAAS,EAAC,gCAAgC;MAAAF,QAAA,gBAC7CrI,OAAA;QAAIwI,KAAK,EAAE;UAAEC,QAAQ,EAAE,MAAM;UAAEC,UAAU,EAAE,QAAQ;UAAEE,YAAY,EAAE;QAAO,CAAE;QAAAP,QAAA,EAAC;MAAgB;QAAAJ,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAI,CAAC,eAClGpI,OAAA;QAAMwK,QAAQ,EAAE,MAAOlE,CAAC,IAAK;UAC3BA,CAAC,CAACC,cAAc,CAAC,CAAC;UAClBtF,QAAQ,CAAC,IAAI,CAAC;UAEd,IAAI,CAACwC,WAAW,CAACE,MAAM,EAAE;YACvB1C,QAAQ,CAAC,sBAAsB,CAAC;YAChC;UACF;UAEA,IAAI;YACFF,UAAU,CAAC,IAAI,CAAC;YAChB,MAAMW,QAAQ,GAAGrB,IAAI,CAACqB,QAAQ,IAAI,CAAC;YAEnC,MAAMsK,OAAO,GAAG;cACdnF,SAAS,EAAEjG,MAAM,CAACiG,SAAS;cAC3BgB,eAAe,EAAEjH,MAAM,CAACmE,QAAQ;cAChCrD,QAAQ,EAAEiF,QAAQ,CAACjF,QAAQ,CAAC;cAC5BiC,MAAM,EAAEgD,QAAQ,CAAClD,WAAW,CAACE,MAAM,CAAC;cACpCC,QAAQ,EAAEH,WAAW,CAACG,QAAQ;cAC9BI,KAAK,EAAEP,WAAW,CAACO;YACrB,CAAC;YAED,MAAMvE,UAAU,CAAC8M,cAAc,CAACP,OAAO,CAAC;YAExC7K,UAAU,CAAC,iCAAiC,CAAC;YAC7CuC,cAAc,CAAC;cACbC,MAAM,EAAE,EAAE;cACVC,QAAQ,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;cAChDC,KAAK,EAAE;YACT,CAAC,CAAC;YAEFgD,UAAU,CAAC,MAAM7F,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;UAC1C,CAAC,CAAC,OAAO6D,GAAG,EAAE;YAAA,IAAAwH,cAAA,EAAAC,mBAAA;YACZxL,QAAQ,CAAC,8BAA8B,IAAI,EAAAuL,cAAA,GAAAxH,GAAG,CAACN,QAAQ,cAAA8H,cAAA,wBAAAC,mBAAA,GAAZD,cAAA,CAAc5H,IAAI,cAAA6H,mBAAA,uBAAlBA,mBAAA,CAAoBzL,KAAK,KAAIgE,GAAG,CAACoB,OAAO,CAAC,CAAC;UACvF,CAAC,SAAS;YACRrF,UAAU,CAAC,KAAK,CAAC;UACnB;QACF,CAAE;QAACwH,SAAS,EAAC,WAAW;QAAAF,QAAA,gBACtBrI,OAAA;UAAKuI,SAAS,EAAC,wBAAwB;UAAAF,QAAA,gBACrCrI,OAAA;YAAAqI,QAAA,gBACErI,OAAA;cAAOwI,KAAK,EAAE;gBAAEE,UAAU,EAAE;cAAS,CAAE;cAACH,SAAS,EAAC,oBAAoB;cAAAF,QAAA,EAAC;YAAI;cAAAJ,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAO,CAAC,eACnFpI,OAAA;cACE2K,KAAK,EAAElH,WAAW,CAACE,MAAO;cAC1BiH,QAAQ,EAAGtE,CAAC,IAAK5C,cAAc,CAAC;gBAAE,GAAGD,WAAW;gBAAEE,MAAM,EAAE2C,CAAC,CAACuE,MAAM,CAACF;cAAM,CAAC,CAAE;cAC5EpC,SAAS,EAAC,oCAAoC;cAC9CuC,QAAQ;cAAAzC,QAAA,gBAERrI,OAAA;gBAAQ2K,KAAK,EAAC,EAAE;gBAAAtC,QAAA,EAAC;cAAa;gBAAAJ,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAAQ,CAAC,EACtC/E,QAAQ,CAAC0F,GAAG,CAAE2D,IAAI,iBACjB1M,OAAA;gBAA0B2K,KAAK,EAAE+B,IAAI,CAAC/I,MAAO;gBAAA0E,QAAA,GAC1CqE,IAAI,CAAC1C,QAAQ,EAAC,KAAG,EAAC0C,IAAI,CAACL,IAAI,EAAC,GAC/B;cAAA,GAFaK,IAAI,CAAC/I,MAAM;gBAAAsE,QAAA,EAAAC,YAAA;gBAAAC,UAAA;gBAAAC,YAAA;cAAA,OAEhB,CACT,CAAC;YAAA;cAAAH,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OACI,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACN,CAAC,eACNpI,OAAA;YAAAqI,QAAA,gBACErI,OAAA;cAAOwI,KAAK,EAAE;gBAAEE,UAAU,EAAE;cAAS,CAAE;cAACH,SAAS,EAAC,oBAAoB;cAAAF,QAAA,EAAC;YAAS;cAAAJ,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAO,CAAC,eACxFpI,OAAA;cACEgL,IAAI,EAAC,MAAM;cACXL,KAAK,EAAElH,WAAW,CAACG,QAAS;cAC5BgH,QAAQ,EAAGtE,CAAC,IAAK5C,cAAc,CAAC;gBAAE,GAAGD,WAAW;gBAAEG,QAAQ,EAAE0C,CAAC,CAACuE,MAAM,CAACF;cAAM,CAAC,CAAE;cAC9EpC,SAAS,EAAC;YAAoC;cAAAN,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAC/C,CAAC;UAAA;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACC,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACH,CAAC,eACNpI,OAAA;UAAAqI,QAAA,gBACErI,OAAA;YAAOwI,KAAK,EAAE;cAAEE,UAAU,EAAE;YAAS,CAAE;YAACH,SAAS,EAAC,oBAAoB;YAAAF,QAAA,EAAC;UAAK;YAAAJ,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAO,CAAC,eACpFpI,OAAA;YACE2K,KAAK,EAAElH,WAAW,CAACO,KAAM;YACzB4G,QAAQ,EAAGtE,CAAC,IAAK5C,cAAc,CAAC;cAAE,GAAGD,WAAW;cAAEO,KAAK,EAAEsC,CAAC,CAACuE,MAAM,CAACF;YAAM,CAAC,CAAE;YAC3EmB,WAAW,EAAC,yCAAyC;YACrDvD,SAAS,EAAC,oCAAoC;YAC9CwD,IAAI,EAAC;UAAG;YAAA9D,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACT,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACC,CAAC,eACNpI,OAAA;UACEgL,IAAI,EAAC,QAAQ;UACbsB,QAAQ,EAAExL,OAAQ;UAClB0H,KAAK,EAAE;YAACiB,UAAU,EAAE3I,OAAO,GAAG,SAAS,GAAG,SAAS;YAAE0I,KAAK,EAAE,OAAO;YAAEF,OAAO,EAAE,UAAU;YAAEC,YAAY,EAAE,KAAK;YAAE0B,MAAM,EAAE,MAAM;YAAEC,MAAM,EAAE,SAAS;YAAEzC,QAAQ,EAAE,MAAM;YAAEC,UAAU,EAAE;UAAK,CAAE;UAACyC,YAAY,EAAG7E,CAAC,IAAK,CAACxF,OAAO,KAAKwF,CAAC,CAAC8E,aAAa,CAAC5C,KAAK,CAACiB,UAAU,GAAG,SAAS,CAAE;UAAC4B,YAAY,EAAG/E,CAAC,IAAK,CAACxF,OAAO,KAAKwF,CAAC,CAAC8E,aAAa,CAAC5C,KAAK,CAACiB,UAAU,GAAG,SAAS,CAAE;UAAApB,QAAA,EAExVvH,OAAO,GAAG,eAAe,GAAG;QAAc;UAAAmH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACrC,CAAC;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACL,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACJ,CACN;EAAA;IAAAH,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OACE,CAAC;AAEV;AAAClI,EAAA,CAtgCQD,mBAAmB;EAAA,QACXZ,SAAS,EACPC,WAAW;AAAA;AAAAqN,EAAA,GAFrB1M,mBAAmB;AAwgC5B,eAAeA,mBAAmB;AAAC,IAAA0M,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} |
|---|