أنت تعمل في مشروع يتضمن تحليل الحمولات ومعالجتها. يتطلب أحد أجزاء المشروع منك تحليل الحمولة واستخراج معلومات معينة منها.

تتكون الحمولة من أحرف سداسية عشرية. يمثل كل زوج من الأحرف بايت. تحتاج إلى تنفيذ وظيفة `parse(payload: str) -> PayloadData` التي تأخذ الحمولة كمدخلات وترجع كائنًا من الفئة `PayloadData` بالمعلومات التي تم تحليلها. يمكنك أن تفترض أن الحمولة جيدة التكوين وتتبع تنسيقًا محددًا.

تنسيق الحمولة هو كما يلي:
- البايتات الستة الأولى تمثل رأسًا.
- البايت التالي يمثل مظهر الحمولة.
- البايتات المتبقية تمثل معلومات إضافية.

تحتوي فئة `PayloadData` على السمات التالية:
- `header: str` - أول 6 بايت من الحمولة كسلسلة.
- `المظهر: str` - مظهر الحمولة كسلسلة.
- `additional_info: str` - المعلومات الإضافية من الحمولة كسلسلة.

تحتاج إلى تنفيذ وظيفة "تحليل" لتحليل الحمولة بشكل صحيح وإرجاع كائن "PayloadData" مع ملء السمات المناسبة.

اكتب الدالة "تحليل" وأي فئات أخرى ضرورية، إذا لزم الأمر، لحل المشكلة.
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}