+
    |w¼jß  ã                  óÄ  € R t ^ RIHt ^ RIt^ RIHt ^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIHt ^ RIHt  ! R R]4      t ! R R	]4      t]! R
R7       ! R R4      4       t]P(                  ! R]P*                  4      t]P(                  ! R4      t]P(                  ! R]P0                  4      t]P(                  ! R]P0                  4      tR R ltR R ltR R ltR R ltR# )z:Pinned, read-only Auto SN discovery for C-DATA FD1601S-B1.)ÚannotationsN)Ú	dataclass)Údecrypt_secret)Ú_normalize_sha256_fingerprintc                  ó   € ] tR t^tRtR# )ÚInvalidPonPortError© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r   ó    Ú9/var/www/html/bestweb/app/core/cdata_fd1601s_discovery.pyr   r      ó   † Ûr   r   c                  ó   € ] tR t^tRtR# )ÚDiscoveryUnavailableErrorr   Nr	   r   r   r   r   r      r   r   r   T)Úfrozenc                  óL   € ] tR t^t$ R]R&   RtR]R&   RtR]R&   RtR]R&   R	tR# )
ÚAutoSnResultÚstrÚserial_numberNú
str | NoneÚbrandÚportz
int | NoneÚonu_idr   )	r
   r   r   r   Ú__annotations__r   r   r   r   r   r   r   r   r      s&   ‡ àÓØ€Eˆ:ÓØ€Dˆ*ÓØ€FˆJ×r   r   z^(?:GPON\s+)?0/0/([1-9]\d?)$z
^[1-9]\d?$z*^\s*SN\s*:\s*([A-Za-z0-9_-]{8,64})(?:\s|$)z-^\s*Vendor ID\s*:\s*([A-Za-z0-9_-]{1,64})\s*$c               ó    € V ^8„  d   QhRRRR/# )é   Úvaluer   Úreturnr   r   )Úformats   "r   Ú__annotate__r#   &   s   € ÷ #ñ #˜jð #¨Sñ #r   c                óî   € T ;'       g    R P                  4       p\        P                  V4      '       d   RV 2# \        P                  V4      pV'       g   \	        R4      hRVP                  ^4       2# )Ú z0/0/zAGPON/PON harus 0/0/n atau cukup nomor PON, misalnya 0/0/1 atau 1.)ÚstripÚ	_PON_ONLYÚ	fullmatchÚ	_PON_PORTr   Úgroup)r    ÚrawÚmatchs   &  r   Únormalize_pon_portr-   &   sh   € Ø�;ˆ;�B×
Ñ
Ó
€CÜ×Ñ˜3×ÒØ�c�Uˆ|ÐÜ×Ñ Ó$€EßÜ!Ð"eÓfÐfØ�%—+‘+˜a“.Ð!Ð"Ð"r   c               ó    € V ^8„  d   QhRRRR/# )r   ÚkeyÚobjectr!   r   r   )r"   s   "r   r#   r#   0   s   € ÷ `ñ `�fð ` ñ `r   c                óÊ   € \         P                  ! \        P                  ! V P	                  4       4      P                  4       4      P                  R 4      P                  R4      # )ÚasciiÚ=)Úbase64Ú	b64encodeÚhashlibÚsha256ÚasbytesÚdigestÚdecodeÚrstrip)r/   s   &r   Ú_fingerprintr<   0   sB   € Ü×ÒœGŸNšN¨3¯;©;«=Ó9×@Ñ@ÓBÓC×JÑJÈ7ÓS×ZÑZÐ[^Ó_Ð_r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úchannelr0   ÚsecondsÚfloatr!   r   r   )r"   s   "r   r#   r#   4   s!   € ÷ 	>ñ 	>�6ð 	> Eð 	>¨cñ 	>r   c                óŽ  € \         P                  ! 4       V,           p. p\         P                  ! 4       V8  dm   V P                  4       '       d?   VP                  V P	                  R 4      4       \         P                  ! 4       R,           pKn  \         P
                  ! R4       K†  RP                  V4      P                  RRR7      # )éÿÿ  g      Ð?gš™™™™™©?r   zutf-8Úreplace)Úerrors)ÚtimeÚ	monotonicÚ
recv_readyÚappendÚrecvÚsleepÚjoinr:   )r>   r?   ÚdeadlineÚchunkss   &&  r   Ú_readrN   4   s‡   € Ü�~Š~Ó 'Õ)€HØ€FÜ
�.Š.Ó
˜XÔ
%Ø×Ñ×ÒØ�M‰M˜'Ÿ,™, uÓ-Ô.Ü—~’~Ó'¨$Õ.ŠHä�JŠJ�tÖØ�8‰8�FÓ×"Ñ" 7°9Ð"Ó=Ð=r   c               ó4   € V ^8„  d   QhRRRRRRRRRRR	RR
R/# )r   Úhostr   r   ÚintÚusernameÚencrypted_secretÚpinned_host_keyr   Úpon_portr!   zlist[AutoSnResult]r   )r"   s   "r   r#   r#   @   sR   € ÷ Kñ K¨ð K°3ð KÀ#ð KÐY\ð KÐoyð Kð  FIð Kð  N`ñ Kr   c           	     ój	  aa€ \        V4      pVP                  R^4      ^,          p\        V4      pVf   \        R4      hV '       d   ^Tu;8:  d   R8:  g   M \        R4      hRp	Rp
Rp ^ RIp\
        P                  ! W3^R7      pVP                  V4      p	^V	n        ^V	n	        V	P                  ^R7       \        P                  ! \        V	P                  4       4      V4      '       g   \        R4      h\        V4      p V	P!                  W-RR	7       R
pV	P#                  4       '       g   \        R4      hV	P%                  ^R7      p
V
P'                  R^ ^(R7       V
P)                  4        \+        V
R4       R
oRR R!RV R2R3RV R2R33 F/  w  rïV
P-                  VR,           4       S\+        W¯4      ,          oK1  	  \.        ;QJ d    V3R lR" 4       F  '       g   K   RM	  RM! V3R lR" 4       4      '       d   \        R4      hSP                  RV R2^4      R#,          p\0        P2                  ! RV\0        P4                  4       Uu0 uF  p\7        VP9                  ^4      4      kK  	  upo\;        V3R l\=        ^^�4       4       R4      pVf   \        R4      h\0        P>                  ! RS\0        P4                  R7      p. p\A        4       pV EF  p\B        PE                  V4      pVf   K  VP9                  ^4      pVV9   d   K9  VPG                  V4       \H        PE                  V4      p\0        PD                  ! RV\0        P4                  4      p\0        PD                  ! RV\0        P4                  4      pV'       d.   V'       d&   VP9                  ^4       RVP9                  ^4       2MTpTPK                  \M        TV'       d   VP9                  ^4      MRVV4      4       EK  	  TV
e   V
PO                  4        V	e   V	PO                  4        # Ve   VPO                  4        # #   R
pi ; iu upi   \         d    h \P         d   p\        R4      ThRp?ii ; i  T
e   T
PO                  4        T	e   T	PO                  4        i Te   TPO                  4        i i ; i)$zÉRun only the reviewed read-only FD1601S-B1 command sequence.

No caller CLI fragments are accepted. The only variable, PON, is bounded
by ``normalize_pon_port`` and converted to its numeric component.
Ú/Nz7Auto SN diblokir: fingerprint host key SSH belum dipin.rB   z6Auto SN diblokir: endpoint management OLT tidak valid.)ÚtimeoutzLAuto SN diblokir: fingerprint server tidak cocok dengan host key yang dipin.F)Úfallbackr%   z'Auto SN gagal: autentikasi SSH ditolak.Úvt100)ÚtermÚwidthÚheightç333333ó?zshow ont autofind z allg      @zshow ont info Úc              3  óH   <"  € T F  qSP                  4       9   x € K  	  R # 5i©N)Úlower)Ú.0ÚmarkerÚ
transcripts   & €r   Ú	<genexpr>Ú-discover_unregistered_onts.<locals>.<genexpr>i   s   øé € ÐuÑ:t°˜×)Ñ)Ó+Ö+Ó:tùs   ƒ"Tz@Auto SN gagal: respons CLI OLT tidak sesuai grammar tervalidasi.z^\s*\d+/\d+\s+\d+\s+(\d+)\s+c              3  ó8   <"  € T F  qS9  g   K  Vx € K  	  R # 5ira   r   )rc   Ú	candidateÚused_onu_idss   & €r   rf   rg   m   s   øé € Ðf±}¨)ÐYeÑHeŸIšI³}ùs   ƒ�
z4Auto SN gagal: tidak ada ONU ID kosong pada PON ini.z(?=^\s*Frame/Slot\s*:))Úflagsz(^\s*Frame/Slot\s*:\s*([0-9]+/[0-9]+)\s*$z^\s*Port\s*:\s*([1-9]\d*)\s*$zIAuto SN gagal saat sesi SSH read-only. Tidak ada provisioning dijalankan.)Úenabler^   )Úconfigr^   )zinterface gpon 0/0r^   )zinvalid inputzincomplete commandzunknown commandéÿÿÿÿ))r-   Úrsplitr   r   ÚparamikoÚsocketÚcreate_connectionÚ	TransportÚbanner_timeoutÚauth_timeoutÚstart_clientÚhmacÚcompare_digestr<   Úget_remote_server_keyr   Úauth_passwordÚis_authenticatedÚopen_sessionÚget_ptyÚinvoke_shellrN   ÚsendÚanyÚreÚfinditerÚ	MULTILINErQ   r*   ÚnextÚrangeÚsplitÚsetÚ_SERIALÚsearchÚaddÚ_VENDORrH   r   ÚcloseÚ	Exception) rP   r   rR   rS   rT   rU   Ú
normalizedÚponÚexpectedÚ	transportr>   Úsockrp   ÚsecretÚcommandÚwaitÚinfo_responser,   Únext_onu_idÚblocksÚresultsÚseenÚblockÚserial_matchÚserialÚvendor_matchÚframe_matchÚ
port_matchÚdiscovered_portÚexcre   rj   s    $$$$$$                        @@r   Údiscover_unregistered_ontsr£   @   sk  ù€ ô $ HÓ-€JØ
×
Ñ
˜C Ó
# AÕ
&€CÜ,¨_Ó=€HØÒÜ'Ð(aÓbÐbß�q˜DÖ) EÖ)Ü'Ð(`ÓaÐaà€IØ€GØ€Dð:ÛÜ×'Ò'¨¨¸aÔ@ˆØ×&Ñ& tÓ,ˆ	Ø#$ˆ	Ô Ø!"ˆ	ÔØ×Ñ qÐÔ)Ü×"Ò"¤<°	×0OÑ0OÓ0QÓ#RÐT\×]Ò]Ü+Ð,zÓ{Ð{ÜÐ 0Ó1ˆð	Ø×#Ñ# H¸uÐ#ÔEàˆFØ×)Ñ)×+Ò+Ü+Ð,UÓVÐVØ×(Ñ(°Ð(Ó3ˆØ�‰˜W¨C¸ˆÔ;Ø×ÑÔÜˆg�sÔØˆ
Ø-¨Ð@[Ð`rÐsvÐrwÐw{Ð^|ð  Bð  ^Cð  HVð  WZð  V[ð  [_ð  F`ð  beð  Efó  g‰MˆGØ�L‰L˜ 4�Ô(Øœ% Ó.Õ.ŠJñ g÷ ‹3ÔuÑ:tÓu�3�3Š3ÔuÑ:tÓu×uÒuÜ+Ð,nÓoÐoØ"×)Ñ)¨N¸3¸%¸tÐ*DÀaÓHÈÕLˆÜ9;¿ºÐEdÐfsÔuw÷  vBñ  vBô  :Có  Dñ  :C°œ˜EŸK™K¨›NÖ+ñ  :Cñ  DˆÜÔf´u¸QÀ´}ÓfÐhlÓmˆØÒÜ+Ð,bÓcÐcÜ—’Ð3°ZÄrÇ|Á|ÔTˆØ&(ˆÜ›ˆÜˆEÜ"Ÿ>™>¨%Ó0ˆLØÒ#ÙØ!×'Ñ'¨Ó*ˆFØ˜Œ~ÙØ�H‰H�VÔÜ"Ÿ>™>¨%Ó0ˆLÜŸ)š)Ð$OÐQVÔXZ×XdÑXdÓeˆKÜŸšÐ#CÀUÌBÏLÉLÓYˆJßQ\×ak ×!2Ñ!2°1Ó!5Ð 6°a¸
×8HÑ8HÈÓ8KÐ7LÑMÐq{ˆOØ�N‰Nœ<¨Ï°×0BÑ0BÀ1Ô0EÐ[_ÐapÐr}Ó~×ñ ð ð ÒØ�M‰MŒOØÒ Ø�O‰OÕØÒØ�J‰J�Lð øðY ‰Füò Døô* %ô ØÜô ~Ü'Ð(sÓtÐz}Ð}ûð~ûð ÒØ�M‰MŒOØÒ Ø�O‰OÕØÒØ�J‰J�Lð úsx   Á,BQ ÄP< ÄQ Ä0BQ ÇQ Ç'Q ÈAQ É#QÉ8DQ ÎQ ÎA#Q Ð<Q Ñ Q ÑQ/ÑQ/ÑQ*Ñ*Q/Ñ/Q2 Ñ2A R2)Ú__doc__Ú
__future__r   r4   Údataclassesr   r6   rw   r�   rq   rE   Úapp.core.device_credentialsr   Úapp.core.ssh_identityr   Ú
ValueErrorr   ÚRuntimeErrorr   r   ÚcompileÚ
IGNORECASEr)   r'   rƒ   rˆ   r‹   r-   r<   rN   r£   r   r   r   Ú<module>r­      sÁ   ðÙ @Ý "ã Ý !Û Û Û 	Û Û å 6Ý ?ô	˜*ô 	ô	 ô 	ñ �$Ô÷ð ó ðð �JŠJÐ6¸¿¹ÓF€	Ø�JŠJ�}Ó%€	Ø
�*Š*ÐBÀBÇLÁLÓ
Q€Ø
�*Š*ÐEÀrÇ|Á|Ó
T€õ#õ`õ	>÷Kr   