+
    |w¼jà  ã                   óR  a € R t0 t R t^ RIHtHt ^ RIHtHtHt ^ RI	H
t
  ! R R]4      t ! R R]4      t]! RR	7       ! R
 R4      4       t ! R R]4      t]! RR	7       ! R R4      4       t] ! R R4      4       t/ t] ^ k R R ltRR R lltR R ltR R lt]! RR]
4       R# )zÛSafe OLT integration boundary.

The registry contains only explicitly registered adapters.  Configuration
rendering is separate from hardware I/O; the bundled ZTE adapter renders text
only and never connects to an OLT.
)Ú	dataclassÚfield)ÚAnyÚCallableÚProtocol)Úgenerate_zte_c320_configc                   ó   € ] tR t^tRtRtR# )ÚUnsupportedOLTErrorz;Raised when no safe adapter exists for a vendor/model pair.© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r
   ó    Ú./var/www/html/bestweb/app/core/olt_adapters.pyr	   r	      ó   † ÝEr   r	   c                   ó   € ] tR t^tRtRtR# )ÚONTNotFoundErrorz;The adapter could not discover the requested serial number.r
   Nr   r
   r   r   r   r      r   r   r   T)Úfrozenc                   ó,   a € ] tR t^t o V 3R ltRtV tR# )ÚONTDiscoveryc                ó>   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   # )é   Úserial_numberÚbrandÚport)Ústr)ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚONTDiscovery.__annotate__   s(   ø‡ ‚ áÑñ ñ �Jñ ñ �Iò	 r   r
   N)r   r   r   r   Ú__annotate_func__r   Ú__classdictcell__©r!   s   @r   r   r      s   ø‡ ‡ „ r   r   c                   óL   a € ] tR t^t o RtV 3R lR ltRV 3R lR lltRtV tR# )	ÚOLTDiscoveryAdapterz5The minimum hardware boundary needed by provisioning.c                ó&   <€ V ^8„  d   QhRS[ RS[/# ©r   r   Úreturn©r   r   )r    r!   s   "€r   r"   Ú OLTDiscoveryAdapter.__annotate__   s   ø€ ×CÑC©#ÐC±,ÑCr   c                ó   € R # ©Nr
   ©Úselfr   s   &&r   Údiscover_ontÚ OLTDiscoveryAdapter.discover_ont   s   € Ár   Nc                óJ   <€ V ^8„  d   QhRS[ RS[S[,          R,          RS[/# ©r   r   Úused_idsNr+   ©r   ÚsetÚint)r    r!   s   "€r   r"   r-   !   s    ø€ ×VÑV¡CÐV±3±sµ8¸dµ?ÐVÉcÑVr   c                ó   € R # r/   r
   ©r1   r   r6   s   &&&r   Úallocate_onu_idÚ#OLTDiscoveryAdapter.allocate_onu_id!   s   € ÑSVr   r
   r/   )	r   r   r   r   r   r2   r<   r   r%   r&   s   @r   r(   r(      s   ø‡ € Ù?çCÐCçV×VÐVr   r(   c                   ój   a € ] tR t^$t o RtV 3R lR ltV 3R lR ltR
V 3R lR lltV 3R ltR	t	V t
R# )Ú
OLTAdapterNc                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   Údatar+   )r   r   )r    r!   s   "€r   r"   ÚOLTAdapter.__annotate__+   s   ø€ ÷ +ñ +¡Cð +©Cñ +r   c                ó$   € V P                  V4      # r/   )Úconfig_generator)r1   rA   s   &&r   Úgenerate_configÚOLTAdapter.generate_config+   s   € Ø×$Ñ$ TÓ*Ð*r   c                ó&   <€ V ^8„  d   QhRS[ RS[/# r*   r,   )r    r!   s   "€r   r"   rB   .   s   ø€ ÷ :ñ :©#ð :±,ñ :r   c                ó    € V P                   f'   \        RV P                   RV P                   R24      hV P                   P	                  V4      # )NúAdapter OLT Ú z$ belum mendukung discovery hardware.)Ú	discoveryr	   ÚvendorÚmodelr2   r0   s   &&r   r2   ÚOLTAdapter.discover_ont.   sK   € Ø�>‰>Ò!Ü%Ø˜tŸ{™{˜m¨1¨T¯Z©Z¨LÐ8\Ð]óð ð �~‰~×*Ñ*¨=Ó9Ð9r   c                óJ   <€ V ^8„  d   QhRS[ RS[S[,          R,          RS[/# r5   r7   )r    r!   s   "€r   r"   rB   5   s*   ø€ ÷ >ñ >¡Cð >±3±sµ8¸dµ?ð >Écñ >r   c                ó    € V P                   f'   \        RV P                   RV P                   R24      hV P                   P	                  W4      # )NrI   rJ   z) belum mendukung alokasi ONU ID hardware.)rK   r	   rL   rM   r<   r;   s   &&&r   r<   ÚOLTAdapter.allocate_onu_id5   sK   € Ø�>‰>Ò!Ü%Ø˜tŸ{™{˜m¨1¨T¯Z©Z¨LÐ8aÐbóð ð �~‰~×-Ñ-¨dÓ=Ð=r   c                óp   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[S[.S[ 3,          ;R&   S[R,          ;R&   # )r   rL   rM   rD   NrK   ©r   r   r   r(   )r    r!   s   "€r   r"   rB   $   sE   ø‡ ‚ á�Kñ ñ �Jñ ñ ¡˜u¡c˜zÕ*Ñ*ñ	 ñ
 # TÕ)Ñ0ò r   r
   r/   )r   r   r   r   rK   rE   r2   r<   r$   r   r%   r&   s   @r   r?   r?   $   s1   ø‡ € ð
 -1€I÷+ð +÷:ð :÷>ò >÷# ƒ r   r?   c                   óŒ   a € ] tR t^=t o RtRtRt]! ]R7      t	]! ]R7      t
^t^€tV 3R lR ltRV 3R lR	 lltV 3R
 ltRtV tR# )ÚMockOLTAdapterzMDeterministic simulation; it never opens a socket or claims hardware success.ÚMOCKÚ	SIMULATOR)Údefault_factoryc                ó&   <€ V ^8„  d   QhRS[ RS[/# r*   r,   )r    r!   s   "€r   r"   ÚMockOLTAdapter.__annotate__H   s   ø€ ÷ lñ l©#ð l±,ñ lr   c                ó¨   €  V P                   VP                  4       P                  4       ,          #   \         d   p\	        R T R24      ThRp?ii ; i)zONT dengan SN z tidak ditemukan di simulator.N)ÚontsÚstripÚupperÚKeyErrorr   )r1   r   Úexcs   && r   r2   ÚMockOLTAdapter.discover_ontH   sS   € ð	lØ—9‘9˜]×0Ñ0Ó2×8Ñ8Ó:Õ;Ð;øÜô 	lÜ" ^°M°?ÐB`Ð#aÓbÐhkÐkûð	lús   ‚.1 ±A¼AÁANc                óJ   <€ V ^8„  d   QhRS[ RS[S[,          R,          RS[/# r5   r7   )r    r!   s   "€r   r"   rZ   N   s/   ø€ ÷ Iñ I¡Cð I±3±sµ8¸dµ?ð IÉcñ Ir   c                ó”  € \        V P                  P                  V\        4       4      4      \        T;'       g    \        4       4      ,          p\        V P                  V P
                  ^,           4       F@  pWC9  g   K  V P                  P                  V\        4       4      P                  V4       Vu # 	  \        RV R24      h)é   z"Tidak ada ONU ID kosong pada port Ú.)	r8   Úused_ids_by_portÚgetÚrangeÚ
min_onu_idÚ
max_onu_idÚ
setdefaultÚaddÚRuntimeError)r1   r   r6   ÚoccupiedÚonu_ids   &&&  r   r<   ÚMockOLTAdapter.allocate_onu_idN   s›   € Ü�t×,Ñ,×0Ñ0°´s³uÓ=Ó>ÄÀX×EVÐEVÔQTÓQVÓAWÕWˆÜ˜DŸO™O¨T¯_©_¸qÕ-@ÖAˆFØÖ%Ø×%Ñ%×0Ñ0°´s³uÓ=×AÑAÀ&ÔIØ’ñ Bô Ð?À¸vÀQÐGÓHÐHr   c                óž   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[S[ S[3,          ;R&   S[S[ S[S[,          3,          ;R&   S[;R&   S[;R&   # )r   rL   rM   r\   rf   ri   rj   )r   Údictr   r8   r9   )r    r!   s   "€r   r"   rZ   =   sj   ø‡ ‚ ñ Ññ	 ñ
 Ññ ñ ‰s‘LÐ Õ
!Ñ?ñ ñ ™3¡¡C¥˜=Õ)ÑGñ ñ Ññ ñ Ñò r   r
   r/   )r   r   r   r   r   rL   rM   r   rr   r\   rf   ri   rj   r2   r<   r$   r   r%   r&   s   @r   rU   rU   =   sP   ø‡ € áWà€FØ€EÙ$)¸$Ô$?€DÙ,1À$Ô,GÐØ€JØ€J÷lð l÷Iò I÷# ƒ r   rU   c                óz   € V ^8„  d   QhR\         R,          R\         R,          R\        \         \         3,          /# ©r   rL   NrM   r+   )r   Útuple)r    s   "r   r"   r"   Z   s6   € ÷ Kñ K”�t•ð K¤C¨$¥Jð K´5¼¼c¸µ?ñ Kr   c                 ó¢   € T ;'       g    R P                  4       P                  4       T;'       g    R P                  4       P                  4       3# )Ú )r]   Úlower©rL   rM   s   &&r   Ú_keyrz   Z   s=   € Ø�\ˆ\�r× Ñ Ó"×(Ñ(Ó*¨U¯[¨[°b×,?Ñ,?Ó,A×,GÑ,GÓ,IÐJÐJr   Nc          
      ó~   € V ^8„  d   QhR\         R\         R\        \        .\         3,          R\        R,          RR/# )r   rL   rM   rD   rK   Nr+   rS   )r    s   "r   r"   r"   ^   sQ   € ÷ \ñ \Üð\äð\ô ¤˜u¤c˜zÕ*ð\ô # TÕ)ð	\ð
 
ñ\r   c                ó>   € \        WW#4      \        \        W4      &   R# )zIRegister an adapter. Discovery is opt-in and must be supplied explicitly.N)r?   Ú	_REGISTRYrz   )rL   rM   rD   rK   s   &&&&r   Úregister_olt_adapterr~   ^   s   € ô &0°Ð?OÓ%[„IŒd�6Ó!Ó"r   c                óX   € V ^8„  d   QhR\         R,          R\         R,          R\        /# rt   )r   r?   )r    s   "r   r"   r"   h   s)   € ÷ ñ œC $�Jð ¬s°T­zð ¼jñ r   c                 óž   € \         P                  \        W4      4      pVf+   T ;'       g    R RT;'       g    R 2p\        RV R24      hV# )Nzvendor kosongrJ   zmodel kosongzAdapter OLT untuk z; belum tersedia. Perangkat tidak akan dikirimi konfigurasi.)r}   rg   rz   r	   )rL   rM   ÚadapterÚlabels   &&  r   Úget_olt_adapterrƒ   h   s]   € Ü�m‰mœD Ó/Ó0€GØ‚Ø×,Ð,˜_Ð-¨Q¨u×/FÐ/F¸Ð.GÐHˆÜ!Ø   Ð'bÐcó
ð 	
ð €Nr   c                ó\   € V ^8„  d   QhR\         \        \        \        3,          ,          /# )r   r+   )Úlistrr   r   )r    s   "r   r"   r"   r   s#   € ÷ Pñ P¤¤T¬#¬s¨(¥^Õ 4ñ Pr   c                  ó„   € \         P                  4        U u. uF  p R V P                  RV P                  /NK  	  up # u up i ry   )r}   ÚvaluesrL   rM   )Úas    r   Úsupported_olt_adaptersr‰   r   s6   € Ü<E×<LÑ<LÔ<NÓOÑ<N°qˆX�q—x‘x ¨!¯'©'Ó2Ñ<NÑOÐOùÒOs   —#=ÚZTEÚC320c                ó„   € V ^8„  d   Qh/ ^ \         9   d,   \        \        \        \        3,          \        3,          ;R&   # )r   r}   )Ú__conditional_annotations__rr   ru   r   r?   )r    s   "r   r"   r"      s2   € ÷ ñ ÷l 2Ò 1Œ4””cœ3�h•¤Ð+Õ,Ñ 1òmr   r/   )r�   r   Údataclassesr   r   Útypingr   r   r   Úapp.core.zte_c320r   Ú
ValueErrorr	   ÚLookupErrorr   r   r(   r?   rU   r}   rz   r~   rƒ   r‰   r"   )r�   s   @r   Ú<module>r“      sË   øðö÷ )ß *Ñ *å 6ôF˜*ô FôF�{ô Fñ �$Ô÷ð ó ðôW˜(ô Wñ �$Ô÷>ð >ó ð>ð0 ÷Ið Ió ðIð2 02€	Ó 1õK÷\õõPñ �U˜FÐ$<Ö =r   