Ë
    sPêj+4  ã                   ó<  — d dl mZ d dlmZmZmZ d dlZd dlm	Z	 ddl
mZ ddlmZ ddlmZmZmZ d	d
lmZ d	dlmZ  ej0                  d¬«       G d„ d«      «       Z ej0                  d¬«       G d„ d«      «       Z ej0                  d¬«       G d„ d«      «       Zy)é    )ÚIterable)ÚAnyÚOptionalÚUnionN)Ú	SortedSeté   )Úbom_ref_from_str)ÚComparableTuple)ÚSchemaVersion1Dot5ÚSchemaVersion1Dot6ÚSchemaVersion1Dot7é   )ÚXsUri)ÚBomRefT)Ú%ignore_unknown_during_deserializationc                   óZ  — e Zd ZdZddddddddœdeeeef      dee   dee   dee   dee   d	ee   d
ee   ddfd„Ze	 e
j                  e«       e
j                  «        e
j                  d«       e
j                  d«      defd„«       «       «       «       «       Ze	 e
j                   d«      dee   fd„«       «       Zej$                  dee   ddfd„«       Ze	 e
j                   d«      dee   fd„«       «       Zej$                  dee   ddfd„«       Ze	 e
j                   d«      dee   fd„«       «       Zej$                  dee   ddfd„«       Ze	 e
j                   d«      dee   fd„«       «       Zej$                  dee   ddfd„«       Ze	 e
j                   d«      dee   fd„«       «       Zej$                  d	ee   ddfd„«       Ze	 e
j                   d«      dee   fd„«       «       Zej$                  d
ee   ddfd „«       Zdefd!„Zd"edefd#„Zd"edefd$„Zdefd%„Z defd&„Z!y)'ÚPostalAddressa  
    This is our internal representation of the `postalAddressType` complex type that can be used in multiple places
    within a CycloneDX BOM document.

    .. note::
        See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.7/xml/#type_postalAddressType
    N)Úbom_refÚcountryÚregionÚlocalityÚpost_office_box_numberÚpostal_codeÚstreet_addressr   r   r   r   r   r   r   Úreturnc                óx   — t        |«      | _        || _        || _        || _        || _        || _        || _        y ©N)Ú_bom_ref_from_strÚ_bom_refr   r   r   r   r   r   )Úselfr   r   r   r   r   r   r   s           ú\/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/cyclonedx/model/contact.pyÚ__init__zPostalAddress.__init__*   s=   € ô *¨'Ó2ˆŒØˆŒØˆŒØ ˆŒØ&<ˆÔ#Ø&ˆÔØ,ˆÕó    úbom-refc                 ó   — | j                   S ©zÇ
        An optional identifier which can be used to reference the component elsewhere in the BOM. Every bom-ref MUST be
        unique within the BOM.

        Returns:
            `BomRef`
        ©r   ©r    s    r!   r   zPostalAddress.bom_ref<   s   € ð �}‰}Ðr#   é
   c                 ó   — | j                   S )z|
        The country name or the two-letter ISO 3166-1 country code.

        Returns:
             `str` or `None`
        ©Ú_countryr(   s    r!   r   zPostalAddress.countryK   s   € ð �}‰}Ðr#   c                 ó   — || _         y r   r+   )r    r   s     r!   r   zPostalAddress.countryV   ó	   € àˆ�r#   é   c                 ó   — | j                   S )zx
        The region or state in the country. For example, Texas.

        Returns:
             `str` or `None`
        ©Ú_regionr(   s    r!   r   zPostalAddress.regionZ   s   € ð �|‰|Ðr#   c                 ó   — || _         y r   r1   )r    r   s     r!   r   zPostalAddress.regione   s	   € àˆ�r#   é   c                 ó   — | j                   S )z~
        The locality or city within the country. For example, Austin.

        Returns:
             `str` or `None`
        ©Ú	_localityr(   s    r!   r   zPostalAddress.localityi   s   € ð �~‰~Ðr#   c                 ó   — || _         y r   r6   )r    r   s     r!   r   zPostalAddress.localityt   s	   € à!ˆ�r#   é(   c                 ó   — | j                   S )zn
        The post office box number. For example, 901.

        Returns:
             `str` or `None`
        ©Ú_post_office_box_numberr(   s    r!   r   z$PostalAddress.post_office_box_numberx   s   € ð ×+Ñ+Ð+r#   c                 ó   — || _         y r   r;   )r    r   s     r!   r   z$PostalAddress.post_office_box_numberƒ   s
   € à'=ˆÕ$r#   é<   c                 ó   — | j                   S )ze
        The postal code. For example, 78758.

        Returns:
             `str` or `None`
        ©Ú_postal_coder(   s    r!   r   zPostalAddress.postal_code‡   s   € ð × Ñ Ð r#   c                 ó   — || _         y r   r@   )r    r   s     r!   r   zPostalAddress.postal_code’   s
   € à'ˆÕr#   éF   c                 ó   — | j                   S )zr
        The street address. For example, 100 Main Street.

        Returns:
             `str` or `None`
        ©Ú_street_addressr(   s    r!   r   zPostalAddress.street_address–   s   € ð ×#Ñ#Ð#r#   c                 ó   — || _         y r   rE   )r    r   s     r!   r   zPostalAddress.street_address¡   s
   € à-ˆÕr#   c           	      óÆ   — t        | j                  | j                  | j                  | j                  | j
                  | j                  | j                  j                  f«      S r   )	Ú_ComparableTupler   r   r   r   r   r   r   Úvaluer(   s    r!   Ú__comparable_tuplez PostalAddress.__comparable_tuple¥   sN   € ÜØ�L‰L˜$Ÿ+™+ t§}¡}°d×6FÑ6FØ×'Ñ'Ø×ÑØ�M‰M×Ñð	!
ó ð 	r#   Úotherc                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S y©NF)Ú
isinstancer   Ú _PostalAddress__comparable_tuple©r    rL   s     r!   Ú__eq__zPostalAddress.__eq__­   s,   € Ü�eœ]Ô+Ø×*Ñ*Ó,°×0HÑ0HÓ0JÑJÐJØr#   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k  S t        S r   )rO   r   rP   ÚNotImplementedrQ   s     r!   Ú__lt__zPostalAddress.__lt__²   s/   € Ü�eœ]Ô+Ø×*Ñ*Ó,¨u×/GÑ/GÓ/IÑIÐIÜÐr#   c                 ó4   — t        | j                  «       «      S r   )ÚhashrP   r(   s    r!   Ú__hash__zPostalAddress.__hash__·   ó   € Ü�D×+Ñ+Ó-Ó.Ð.r#   c                 óV   — d| j                   › d| j                  › d| j                  › d�S )Nz<PostalAddress bom-ref=z, street_address=z
, country=ú>)r   r   r   r(   s    r!   Ú__repr__zPostalAddress.__repr__º   s3   € Ø(¨¯©¨Ð6GÈ×H[ÑH[ÐG\Ð\fÐgk×gsÑgsÐftÐtuÐvÐvr#   )"Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ústrr   r"   ÚpropertyÚserializableÚtype_mappingÚxml_attributeÚxml_nameÚ	json_namer   Úxml_sequencer   Úsetterr   r   r   r   r   rI   rP   ÚobjectÚboolrR   r   rU   ÚintrX   r\   © r#   r!   r   r       s‹  „ ñð 15Ø!%Ø $Ø"&Ø04Ø%)Ø(,ò-à˜%  V Ñ,Ñ-ð-ð ˜#‘ð-ð ˜‘ð	-ð
 ˜3‘-ð-ð !)¨¡ð-ð ˜c‘]ð-ð ! ™ð-ð 
ó-ð$ Ø€\×Ñ˜vÓ&Ø€\×ÑÓ!Ø€\×Ñ˜9Ó%Ø€\×Ñ˜IÓ&ð˜ò ó 'ó &ó "ó 'ó ð
ð Ø€\×Ñ˜rÓ"ð˜ #™ò ó #ó ðð ‡^�^ð ˜x¨™}ð  °ò  ó ð ð Ø€\×Ñ˜rÓ"ð˜ ™ò ó #ó ðð ‡]�]ð˜X c™]ð ¨tò ó ðð Ø€\×Ñ˜rÓ"ð˜( 3™-ò ó #ó ðð ‡_�_ð" ¨#¡ð "°4ò "ó ð"ð Ø€\×Ñ˜rÓ"ð,¨°©ò ,ó #ó ð,ð ×"Ñ"ð>¸XÀc¹]ð >Ètò >ó #ð>ð Ø€\×Ñ˜rÓ"ð!˜X c™]ò !ó #ó ð!ð ×Ñð( x°¡}ð (¸ò (ó ð(ð Ø€\×Ñ˜rÓ"ð$ ¨¡ò $ó #ó ð$ð ×Ñð.¨X°c©]ð .¸tò .ó ð.ðÐ$4ó ð˜Fð  tó ð
˜Cð  Dó ð
/˜#ó /ðw˜#ô wr#   r   c                   ó<  — e Zd ZdZdddddœdeeeef      dee   dee   dee   ddf
d	„Ze	 e
j                  e«       e
j                  e«       e
j                  e«       e
j                  e«       e
j                   «        e
j"                  d
«       e
j$                  d
«      defd„«       «       «       «       «       «       «       «       Ze	 e
j(                  d«       e
j*                  e
j,                  j.                  «      dee   fd„«       «       «       Zej2                  dee   ddfd„«       Ze	 e
j(                  d«       e
j*                  e
j,                  j.                  «      dee   fd„«       «       «       Zej2                  dee   ddfd„«       Ze	 e
j(                  d«       e
j*                  e
j,                  j.                  «      dee   fd„«       «       «       Zej2                  dee   ddfd„«       Zdefd„Zdedefd„Z de!defd„Z"de#fd„Z$defd„Z%y)ÚOrganizationalContacta  
    This is our internal representation of the `organizationalContact` complex type that can be used in multiple places
    within a CycloneDX BOM document.

    .. note::
        See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.7/xml/#type_organizationalContact
    N)r   ÚnameÚphoneÚemailr   rp   rq   rr   r   c                óN   — t        |«      | _        || _        || _        || _        y r   )r   r   rp   rr   rq   )r    r   rp   rq   rr   s        r!   r"   zOrganizationalContact.__init__È   s%   € ô *¨'Ó2ˆŒØˆŒ	ØˆŒ
Øˆ�
r#   r$   c                 ó   — | j                   S r&   r'   r(   s    r!   r   zOrganizationalContact.bom_refÔ   ó   € ð  �}‰}Ðr#   r   c                 ó   — | j                   S )ze
        Get the name of the contact.

        Returns:
            `str` if set else `None`
        ©Ú_namer(   s    r!   rp   zOrganizationalContact.nameæ   ó   € ð �z‰zÐr#   c                 ó   — || _         y r   rw   ©r    rp   s     r!   rp   zOrganizationalContact.nameò   ó	   € àˆ�
r#   r   c                 ó   — | j                   S )zf
        Get the email of the contact.

        Returns:
            `str` if set else `None`
        ©Ú_emailr(   s    r!   rr   zOrganizationalContact.emailö   ó   € ð �{‰{Ðr#   c                 ó   — || _         y r   r~   )r    rr   s     r!   rr   zOrganizationalContact.email  ó	   € àˆ�r#   é   c                 ó   — | j                   S )zf
        Get the phone of the contact.

        Returns:
            `str` if set else `None`
        ©Ú_phoner(   s    r!   rq   zOrganizationalContact.phone  r€   r#   c                 ó   — || _         y r   r…   )r    rq   s     r!   rq   zOrganizationalContact.phone  r‚   r#   c                 ó„   — t        | j                  | j                  | j                  | j                  j
                  f«      S r   )rI   rp   rr   rq   r   rJ   r(   s    r!   rK   z(OrganizationalContact.__comparable_tuple  s4   € ÜØ�I‰I�t—z‘z 4§:¡:Ø�M‰M×Ñð!
ó ð 	r#   rL   c                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S yrN   )rO   ro   Ú(_OrganizationalContact__comparable_tuplerQ   s     r!   rR   zOrganizationalContact.__eq__  s-   € Ü�eÔ2Ô3Ø×*Ñ*Ó,°×0HÑ0HÓ0JÑJÐJØr#   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k  S t        S r   )rO   ro   rŠ   rT   rQ   s     r!   rU   zOrganizationalContact.__lt__!  s0   € Ü�eÔ2Ô3Ø×*Ñ*Ó,¨u×/GÑ/GÓ/IÑIÐIÜÐr#   c                 ó4   — t        | j                  «       «      S r   )rW   rŠ   r(   s    r!   rX   zOrganizationalContact.__hash__&  rY   r#   c                 óV   — d| j                   › d| j                  › d| j                  › d�S )Nz<OrganizationalContact name=z, email=z, phone=r[   )rp   rr   rq   r(   s    r!   r\   zOrganizationalContact.__repr__)  s.   € Ø-¨d¯i©i¨[¸ÀÇÁÀÈHÐUY×U_ÑU_ÐT`Ð`aÐbÐbr#   )&r]   r^   r_   r`   r   r   ra   r   r"   rb   rc   Úviewr   r   r   rd   re   rf   rg   r   rh   Ú
xml_stringÚXmlStringSerializationTypeÚNORMALIZED_STRINGrp   ri   rr   rq   rI   rŠ   rj   rk   rR   r   rU   rl   rX   r\   rm   r#   r!   ro   ro   ¾   sà  „ ñð 15Ø"Ø#Ø#ò
à˜%  V Ñ,Ñ-ð
ð �s‰mð
ð ˜‰}ð	
ð
 ˜‰}ð
ð 
ó
ð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜vÓ&Ø€\×ÑÓ!Ø€\×Ñ˜9Ó%Ø€\×Ñ˜IÓ&ð˜ò ó 'ó &ó "ó 'ó +ó +ó +ó ðð Ø€\×Ñ˜qÓ!Ø€\×Ñ˜\×DÑD×VÑVÓWð�h˜s‘mò ó Xó "ó ðð 
‡[�[ð˜ #™ð ¨4ò ó ðð Ø€\×Ñ˜qÓ!Ø€\×Ñ˜\×DÑD×VÑVÓWð�x ‘}ò ó Xó "ó ðð ‡\�\ð˜8 C™=ð ¨Tò ó ðð Ø€\×Ñ˜qÓ!Ø€\×Ñ˜\×DÑD×VÑVÓWð�x ‘}ò ó Xó "ó ðð ‡\�\ð˜8 C™=ð ¨Tò ó ððÐ$4ó ð˜Fð  tó ð
˜Cð  Dó ð
/˜#ó /ðc˜#ô cr#   ro   c                   óf  — e Zd ZdZddddddœdeeeef      dee   deee	      deee
      dee   d	dfd
„Ze ej                  e«       ej                  e«       ej                  e«       ej&                  e«       ej(                  «        ej*                  d«       ej,                  d«      d	efd„«       «       «       «       «       «       «       «       Ze ej0                  d«       ej2                  ej4                  j6                  «      d	ee   fd„«       «       «       Zej:                  dee   d	dfd„«       Ze ej                  e«       ej                  e«       ej0                  d«      d	ee   fd„«       «       «       «       Zej:                  dee   d	dfd„«       Ze ej,                  d«       ej>                  ej@                  jB                  d«       ej0                  d«      d!d„«       «       «       «       Z"e"j:                  dee	   d	dfd„«       Z"e ej,                  d«       ej>                  ej@                  jB                  d«       ej0                  d«      d"d„«       «       «       «       Z#e#j:                  dee
   d	dfd„«       Z#d	e$fd„Z%de&d	e'fd„Z(de)d	e'fd„Z*d	e+fd„Z,d	efd „Z-y)#ÚOrganizationalEntitya  
    This is our internal representation of the `organizationalEntity` complex type that can be used in multiple places
    within a CycloneDX BOM document.

    .. note::
        See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.7/xml/#type_organizationalEntity
    N)r   rp   ÚurlsÚcontactsÚaddressr   rp   r”   r•   r–   r   c                ól   — t        |«      | _        || _        || _        |xs g | _        |xs g | _        y r   )r   r   rp   r–   r”   r•   )r    r   rp   r”   r•   r–   s         r!   r"   zOrganizationalEntity.__init__7  s4   € ô *¨'Ó2ˆŒØˆŒ	ØˆŒØ’J˜BˆŒ	Ø š Bˆ�r#   r$   c                 ó   — | j                   S r&   r'   r(   s    r!   r   zOrganizationalEntity.bom_refE  ru   r#   r)   c                 ó   — | j                   S )zj
        Get the name of the organization.

        Returns:
            `str` if set else `None`
        rw   r(   s    r!   rp   zOrganizationalEntity.nameW  ry   r#   c                 ó   — || _         y r   rw   r{   s     r!   rp   zOrganizationalEntity.namec  r|   r#   r/   c                 ó   — | j                   S )z~
        The physical address (location) of the organization.

        Returns:
            `PostalAddress` or `None`
        ©Ú_addressr(   s    r!   r–   zOrganizationalEntity.addressg  s   € ð �}‰}Ðr#   c                 ó   — || _         y r   rœ   )r    r–   s     r!   r–   zOrganizationalEntity.addresst  r.   r#   Úurlr4   c                 ó   — | j                   S )z�
        Get a list of URLs of the organization. Multiple URLs are allowed.

        Returns:
            Set of `XsUri`
        )Ú_urlsr(   s    r!   r”   zOrganizationalEntity.urlsx  s   € ð �z‰zÐr#   c                 ó$   — t        |«      | _        y r   )r   r¡   )r    r”   s     r!   r”   zOrganizationalEntity.urls…  s   € ä˜t“_ˆ�
r#   Úcontactr9   c                 ó   — | j                   S )zŸ
        Get a list of contact person at the organization. Multiple contacts are allowed.

        Returns:
            Set of `OrganizationalContact`
        )Ú	_contactsr(   s    r!   r•   zOrganizationalEntity.contacts‰  s   € ð �~‰~Ðr#   c                 ó$   — t        |«      | _        y r   )r   r¥   )r    r•   s     r!   r•   zOrganizationalEntity.contacts–  s   € ä" 8Ó,ˆ�r#   c                 ó¨   — t        | j                  t        | j                  «      t        | j                  «      | j                  j
                  f«      S r   )rI   rp   r”   r•   r   rJ   r(   s    r!   rK   z'OrganizationalEntity.__comparable_tupleš  s@   € ÜØ�I‰IÔ'¨¯	©	Ó2Ô4DÀTÇ]Á]Ó4SØ�M‰M×Ñð!
ó ð 	r#   rL   c                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S yrN   )rO   r“   Ú'_OrganizationalEntity__comparable_tuplerQ   s     r!   rR   zOrganizationalEntity.__eq__   s-   € Ü�eÔ1Ô2Ø×*Ñ*Ó,°×0HÑ0HÓ0JÑJÐJØr#   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k  S t        S r   )rO   r“   r©   rT   rQ   s     r!   rU   zOrganizationalEntity.__lt__¥  s0   € Ü�eÔ1Ô2Ø×*Ñ*Ó,¨u×/GÑ/GÓ/IÑIÐIÜÐr#   c                 ó4   — t        | j                  «       «      S r   )rW   r©   r(   s    r!   rX   zOrganizationalEntity.__hash__ª  rY   r#   c                 ó"   — d| j                   › d�S )Nz<OrganizationalEntity name=r[   )rp   r(   s    r!   r\   zOrganizationalEntity.__repr__­  s   € Ø,¨T¯Y©Y¨K°qÐ9Ð9r#   )r   zSortedSet[XsUri])r   z SortedSet[OrganizationalContact]).r]   r^   r_   r`   r   r   ra   r   r   r   ro   r   r"   rb   rc   rŽ   r   r   r   rd   re   rf   rg   r   rh   r�   r�   r‘   rp   ri   r–   Ú	xml_arrayÚXmlArraySerializationTypeÚFLATr”   r•   rI   r©   rj   rk   rR   r   rU   rl   rX   r\   rm   r#   r!   r“   r“   -  s¢  „ ñð 15Ø"Ø*.Ø>BØ+/ò'à˜%  V Ñ,Ñ-ð'ð �s‰mð'ð �x ‘Ñ'ð	'ð
 ˜8Ð$9Ñ:Ñ;ð'ð ˜-Ñ(ð'ð 
ó'ð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜vÓ&Ø€\×ÑÓ!Ø€\×Ñ˜9Ó%Ø€\×Ñ˜IÓ&ð˜ò ó 'ó &ó "ó 'ó +ó +ó +ó ðð Ø€\×Ñ˜rÓ"Ø€\×Ñ˜\×DÑD×VÑVÓWð�h˜s‘mò ó Xó #ó ðð 
‡[�[ð˜ #™ð ¨4ò ó ðð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜rÓ"ð˜ -Ñ0ò ó #ó +ó +ó ðð ‡^�^ð ˜x¨Ñ6ð  ¸4ò  ó ð ð Ø€\×Ñ˜EÓ"Ø€\×Ñ˜L×BÑB×GÑGÈÓOØ€\×Ñ˜rÓ"òó #ó Pó #ó ðð 
‡[�[ð%˜ %™ð %¨Tò %ó ð%ð Ø€\×Ñ˜IÓ&Ø€\×Ñ˜L×BÑB×GÑGÈÓSØ€\×Ñ˜rÓ"òó #ó Tó 'ó ðð ‡_�_ð- Ð*?Ñ!@ð -ÀTò -ó ð-ðÐ$4ó ð˜Fð  tó ð
˜Cð  Dó ð
/˜#ó /ð:˜#ô :r#   r“   )Úcollections.abcr   Útypingr   r   r   Úpy_serializablerc   Úsortedcontainersr   Ú_internal.bom_refr	   r   Ú_internal.comparer
   rI   Úschema.schemar   r   r   Ú r   r   r   Úserializable_classr   ro   r“   rm   r#   r!   ú<module>r¹      s®   ðõ& %ß 'Ñ 'ã &Ý &å EÝ Cß VÑ VÝ Ý ð !€× Ñ ÀtÔL÷Zwð Zwó MðZwðz !€× Ñ ÀtÔL÷kcð kcó Mðkcð\ !€× Ñ ÀtÔL÷@:ð @:ó Mñ@:r#   