§ ßö5&¹«Ë·ãó.—ddlZddlZddlZddlZddlZddlZddlmZddlm Z ddl m Z ddl m Z ddlmZddlmZddlmZmZdd lmZdd lmZmZdd lmZdd lmZdd lmZm Z e e!¦«Z"dZ#dZ$ dZ%Gd„de&¦«Z'Gd„de¦«Z(dS)éN)Ú dataclass)Ú getLogger)ÚPath)ÚCallable)Úurljoin)ÚRequest)ÚAPIÚAPIError)Ú LicenseCLN)Úatomic_rewriteÚsafe_cancel_task)ÚDAY)Úg)ÚDeadlockDetectingLockÚ DeadlockErroré éé<có—eZdZdZdS)ÚIAIDTokenErrorz$Can't get iaid token for any reason.N)Ú__name__Ú __module__Ú __qualname__Ú__doc__©óúS/opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/internals/iaid.pyrr&s€€€€€Ø.Ð.Ð.Ð.rrcóˆ—eZdZdZeeje d¦«¦«Zeeje d¦«¦«Z eeje d¦«¦«Z eeje d¦«¦«Z e d¦«Z e dz Ze dz Ze d z Ze d z Zgggd œZe¦«Zej¦«Zed ¬ ¦«Gd„d¦«¦«Zeddœdefd„¦«Zeddœdefd„¦«Zed„¦«Zed„¦«Z ed„¦«Z!ed„¦«Z"ed)d„¦«Z#ed„¦«Z$ed„¦«Z%edefd„¦«Z&ed „¦«Z'ed*d#„¦«Z(ed$„¦«Z)ed%„¦«Z*ed+d&„¦«Z+ed'„¦«Z,ed+d(„¦«Z-dS),ÚIndependentAgentIDAPIz/api/auth/agent/{}ÚregisterÚactivateÚloginz token-infoz/var/imunify360Úiaidz iaid-passwordz iaid-tokenziaid-activated)r r!r"T)ÚfrozencóJ—eZdZUgd¢Zeed<eed<eed<eed<eed<dS)úIndependentAgentIDAPI.TokenInfo)Úvalidr#Úlicense_statusÚ server_idÚ need_renewr'r#r(r)r*N)rrrÚ __slots__ÚboolÚ__annotations__ÚstrrrrÚ TokenInfor&>sX€€€€€€ð ð ð ˆ ðˆ ˆ ‰ ؈ ˆ ‰ ØÐÐÑØˆˆ‰ØÐÐÑÐÐrr/r)ÚtimeoutÚcoroc‡ó”K—tj|tjd|z¦«tzz¦«ƒd{V—†||Žƒd{V—†dS)Né)ÚasyncioÚsleepÚrandomÚ randrangeÚ_TIMEOUT_MULTIPLICATOR)r1Úattemptr0Úargss rÚ_retry_on_errorz%IndependentAgentIDAPI._retry_on_errorMs}èè€õŒmØ •fÔ& q¨G¡|Ñ4Ô4Õ7MÑMÑ Mñ ô ð ð ð ð ð ð ð ðˆd�DˆkÐÐÐÐÐÐÐÐÐrc óf—d„|j|D¦«|j|<t|j|¦«dkrXtj¦«}|j| | |j|g|¢R||dœŽ¦«¦«dSt d|¦«dS)Ncó:—g|]}| ¦«°|‘ŒSr)Údone)Ú.0Útasks rú z3IndependentAgentIDAPI._add_task..Ws5€ð ð ð Ø°T·Y²Y±[´[ð Ø ð ð ð rr3©r9r0zTask %s already in retry queue) Ú_tasksÚlenr4Úget_event_loopÚappendÚ create_taskr;ÚloggerÚinfo)ÚclsÚtyper1r9r0r:Úloops rÚ _add_taskzIndependentAgentIDAPI._add_taskUsâ€ð ð Ø œZ¨Ô-ð ñ ô ˆŒ �4Ñõ ˆsŒz˜$ÔÑ Ô  AÒ %Ð %ÝÔ)Ñ+Ô+ˆDØ ŒJ�tÔ × #Ò #Ø× Ò Ø'�CÔ'ØðØ#ððØ-4¸gðððñôñ ô ð ð ð õ �KŠKÐ8¸$Ñ ?Ô ?Ð ?Ð ?Ð ?rcó@—| d|jd¬¦«dS)Nr!r©r9)rMr!©rJs rÚadd_initial_taskz&IndependentAgentIDAPI.add_initial_taskfs"€à � Š �j #¤,¸ˆ Ñ:Ô:Ð:Ð:Ð:rcƒóÚK—|j ¦«D]N\}}|D]F}| ¦«s0t|¦«ƒd{V—†t d|¦«ŒGŒOdS)NzRetry task %s was canceled.)rCÚitemsr>r rHrI)rJrKÚtasksr@s rÚshutdownzIndependentAgentIDAPI.shutdownjs“èè€àœ:×+Ò+Ñ-Ô-ð Eð E‰KˆD�%Øð Eð E�Ø—y’y‘{”{ðEÝ*¨4Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ý—K’KÐ =¸tÑDÔDÐDøð Eð Eð Ercó4—tjd¦«jS)NÚ_imunify)ÚgrpÚgetgrnamÚgr_gidrrrÚ_gidzIndependentAgentIDAPI._gidrs€åŒ|˜JÑ'Ô'Ô.Ð.rcój—|j ¦«r|j ¦«SdS©N)Ú IAID_FILEÚexistsÚ read_textrPs rÚget_iaidzIndependentAgentIDAPI.get_iaidvs1€à Œ=× Ò Ñ !Ô !ð -Ø”=×*Ò*Ñ,Ô,Ð ,؈trNÚPOSTc ó®—ddi}|�| |¦«t||||r&tj|¦« ¦«nd¬¦«S)Nz Content-Typezapplication/json)ÚmethodÚheadersÚdata)ÚupdaterÚjsonÚdumpsÚencode)ÚurlrerdÚkwargsÚ_headerss rÚ_requestzIndependentAgentIDAPI._request|sh€à"Ð$6Ð7ˆØ Ð Ø �OŠO˜GÑ $Ô $Ð $ÝØ ØØØ06Ð@•”˜FÑ#Ô#×*Ò*Ñ,Ô,Ð,¸Dð  ñ ô ð rcóL—td„|j|jfD¦«¦«S)Nc3ó>K—|]}| ¦«V—ŒdSr])r_)r?Ú iaid_files rú z6IndependentAgentIDAPI.is_registered..ŠsBèè€ð ð àð × Ò Ñ Ô ð ð ð ð ð ð r)Úallr^ÚIAID_PASSWORD_FILErPs rÚ is_registeredz#IndependentAgentIDAPI.is_registeredˆs:€åð ð à!œm¨SÔ-CÐDð ñ ô ñ ô ð rcƒó’K—t ¦«rGt ¦«ƒd{V—†t ¦«rtd¦«‚ |j d¬¦« ¦«}|std¦«‚|S#t$r}td|›�¦«|‚d}~wwxYw)zWEnsure that iaid token is up to date Return iaid token or raise IAIDTokenError.NzIAID token is expiredÚascii)ÚencodingzIAID_TOKEN_FILE is emptyzCan't get iaid token, reason: )rÚis_token_expiredr"rÚIAID_TOKEN_FILEr`ÚstripÚ Exception)rJÚtokenÚes rÚ get_tokenzIndependentAgentIDAPI.get_token�sçèè€õ !× 1Ò 1Ñ 3Ô 3ð >Ý'×-Ò-Ñ/Ô/Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ý$×5Ò5Ñ7Ô7ð >Ý$Ð%<Ñ=Ô=Ð=ð NØÔ'×1Ò1¸7Ð1ÑCÔC×IÒIÑKÔKˆEØð AÝ$Ð%?Ñ@Ô@Ð@؈LøÝð Nð Nð NÝ Ð!EÀ!Ð!EÐ!EÑFÔFÈAÐ Møøøøð NøøøsÁ$?B$Â$ CÂ.CÃCÚreturncƒólK—| ¦«ƒd{V—†}d|i}| |j|d¬¦«}| |¦«ƒd{V—†}| d¦«}|€t d|¦«‚ |jdi|¤ŽS#t$r}t d|›d|›�¦«|‚d}~wwxYw) NzX-AuthÚGET)rerdÚ token_infozwrong response %rzincomplete token_info z: r)rrnÚ TOKEN_INFOÚ async_requestÚgetr r/Ú TypeError)rJÚ iaid_tokenreÚrequestÚresultr}r~s rÚ_get_token_infoz%IndependentAgentIDAPI._get_token_infoŸsòèè€àŸ=š=™?œ?Ð*Ð*Ð*Ð*Ð*Ð*ˆ ؘZÐ(ˆØ—,’,˜sœ~°wÀu�,ÑMÔMˆØ×(Ò(¨Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1ˆØ— ’ ˜<Ñ(Ô(ˆØ ˆ=ÝÐ.°Ñ7Ô7Ð 7ð OØ �3”=Ð)Ð) 5Ð)Ð)Ð )øÝð Oð Oð OÝ�(¸U¸U¸UÀAÀAÐFÑGÔGÈQÐ Nøøøøð Oøøøs B B3ÂB.Â.B3có¨— tj|j¦«}|j}n#t$rd}YnwxYwt j¦«|z t kS)Ng)ÚosÚstatrzÚst_mtimeÚFileNotFoundErrorÚtimer)rJrŽr�s rryz&IndependentAgentIDAPI.is_token_expired­sb€ð %Ý”7˜3Ô.Ñ/Ô/ˆDð”}ˆHˆHøõ!ð ð ð ØˆHˆHˆHð øøøõŒy‰{Œ{˜XÑ%­Ò+Ð+s ‚#£ 2±2Fr3c ƒó`K—|j ¦«} |j4ƒd{V—†| ¦«rF|r|r ddd¦«ƒd{V—†dS|�,|| ¦«kr ddd¦«ƒd{V—†dSt ¦«}t j¦«}|r||d<|j|jfi|¤Ž} |  |¦«ƒd{V—†}|j   d¬¦«tt|j¦«|d|j ¦«d| ¦«d¬¦«tt|j¦«|d|j ¦«d ¬ ¦«| ¦«ƒd{V—†n³#t&$r¦} t( d | |¦«| j�| jd ks | jd kr/|t.kr$| d|j|||dz|¬¦«n"t( d|j|| ¦«Yd} ~ ddd¦«ƒd{V—†dSd} ~ wwxYw ddd¦«ƒd{V—†dS#1ƒd{V—†swxYwYdS#t8$rt( d|¦«YdSwxYw)Nr)T©Ú missing_okr#éÿÿÿÿé ©ÚbackupÚuidÚgidÚ permissionsÚpasswordi€)r˜r›z0Something went wrong on register %r - attempt %séôé’r r3rOz-Failed to register (%s) after %s attempts: %rzÔ>Ø$)ð ñôðð Ÿ,š,™.œ.Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(øõW ðððÝ—N’NØJØØñôðð œ Ð-Øœ=¨CÒ/Ð/Øœ=¨CÒ/Ð/Ø!¥JÒ.Ð.àŸ š Ø&ØœLØ!Ø0Ø# a™KØ$+ð &ñôððõŸ š ØKØ#Ô,Ø#Øñ ôðð �F�F�FðgC )ðC )ðC )ñC )ôC )ðC )ðC )ðC )ðC )ðC )ðC )ðC )ðC )ðC )øøøøð0øøøðV)ðGC )ðC )ðC )ñC )ôC )ðC )ðC )ðC )ðC )ðC )ðC )ðC )ðC )ðC )ðC )ðC )ðC )ðC )ðC )ðC )ðC )ðC )ðC )ðC )øøøðC )ðC )ðC )ðC )ðC )ðC )øõHð ð ð Ý �LŠLØNØñ ô ð ð ð ð ð øøøs~� JªI1ÁJÁI1Á2JÂ;I1Ã6F*Ã7B3I1Æ* IÆ4B IÈ>I1ÉJÉIÉI1ÉJÉ1 I;É;JÉ>I;É?JÊ%J-Ê,J-cƒóPK—|j ¦«s| ¦«ƒd{V—†dStj¦«}| ¦«ƒd{V—†}|j| d¦«ks|j| d¦«kr7t  d|¦«|  ¦«ƒd{V—†dS|j   ¦«}|jr|j|ks|jr| ¦«ƒd{V—†dSdS)z!Check whether the agent activatedNÚstatusÚidzGot a corrupted token: %r)r¥r_r!r rr‹r(r†r)rHrªÚ reactivater^r`r'r#r*r")rJÚlicr}r#s rÚensure_is_activated_and_validz3IndependentAgentIDAPI.ensure_is_activated_and_valid sJèè€ðÔ&×-Ò-Ñ/Ô/ð Ø—,’,‘.”.Ð Ð Ð Ð Ð Ð Ð Ø ˆFÝÔ"Ñ$Ô$ˆØ×)Ò)Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+ˆØ Ô  3§7¢7Ø ñ$ ô$ ò ð à Œ_ §¢¨¡ ¤ Ò -Ð -Ý �LŠLÐ4°eÑ <Ô <Ð <Ø—.’.Ñ"Ô"Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ø ˆFØŒ}×&Ò&Ñ(Ô(ˆØŒ{ð ˜eœj¨DÒ0Ð0°EÔ4DÐ0Ø—)’)‘+”+Ð Ð Ð Ð Ð Ð Ð Ð Ð ð1Ð0rcó>—|j ¦«jSr])rtrŽr�rPs rr¡z)IndependentAgentIDAPI._get_credentials_tss€àÔ%×*Ò*Ñ,Ô,Ô5Ð5rc ƒóŒK—|j ¦«r| ¦«td<dS| ¦«s6t  d¦«| ¦«ƒd{V—†dStj ¦«rL| ¦«td<|  ¦«r|  ¦«ƒd{V—†dStj ¦«}|st  d¦«dS|j 4ƒd{V—†|j ¦«r0| ¦«td< ddd¦«ƒd{V—†dS|j ¦«}|j ¦«}| ¦«}| |j|||¬¦«}|td<d} | |¦«ƒd{V—†|j ¦«|j d¬¦«|  ¦«ƒd{V—†nº#t0$r­}t  d||¦«|jr|jd krd}nr|jrI|jd ks |jd kr3|t4kr(| d |j|d z|t:¬¦«n"t  d|j||¦«Yd}~nd}~wwxYwddd¦«ƒd{V—†n#1ƒd{V—†swxYwY|r| d|¬¦«ƒd{V—†dSdS)Nr#z&need to register first before activatez9Can't continue iaid activation: no valid license is found)r#rœÚlicenseFTr“z.Something went wrong on activate %r attempt %sé‘r�ržr!r3rBz-Failed to activate (%s) after %s attempts: %r©r¬r­) r¥r_rarrurHr§r r Úis_freeryr"rÚ_activate_lockr^r`rtr¡rnÚ ACTIVATE_URLr…Útouchrzr¦r r¨r©rMr!Ú_ACTIVATE_MINIMUM_TIMEOUTrªr«) rJr9r´r#rœÚcredentials_tsr‰Úneed_to_registerr~s rr!zIndependentAgentIDAPI.activate!scèè€à Ô "× )Ò )Ñ +Ô +ð ØŸ š ™œ�Aˆf‰IØ ˆFØ× Ò Ñ"Ô"ð Ý �NŠNÐCÑ DÔ DÐ DØ—,’,‘.”.Ð Ð Ð Ð Ð Ð Ð Ø ˆFÝ Ô Ñ Ô ð ØŸ š ™œ�Aˆf‰IØ×#Ò#Ñ%Ô%ð "Ø—i’i‘k”kÐ!Ð!Ð!Ð!Ð!Ð!Ð!Ø ˆFÝÔ"Ñ$Ô$ˆØð Ý �NŠNØKñ ô ð ð ˆFØÔ%ð2 "ð2 "ð2 "ð2 "ð2 "ð2 "ð2 "ð2 "ðÔ&×-Ò-Ñ/Ô/ð ØŸLšL™NœN•�&‘ Øð 2 "ð2 "ð2 "ñ2 "ô2 "ð2 "ð2 "ð2 "ð2 "ð2 "ð2 "ð2 "ð2 "ð2 "ð ”=×*Ò*Ñ,Ô,ˆDØÔ-×7Ò7Ñ9Ô9ˆHØ ×4Ò4Ñ6Ô6ˆNØ—l’lØÔ  t°hÈð#ñôˆGð�Aˆf‰IØ$Ð ð$ "Ø×'Ò'¨Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØÔ'×-Ò-Ñ/Ô/Ð/ðBÔ#×*Ò*°dÐ*Ñ;Ô;Ð;Ø—i’i‘k”kÐ!Ð!Ð!Ð!Ð!Ð!Ð!Ð!øõCð ð ð Ý—’ØDØØñôðð ”=ð Q¤]°cÒ%9Ð%9à'+Ð$Ð$à”Mðàœ¨#Ò-Ð-°´À#Ò1EÐ1EØ¥*Ò,Ð,ð —M’MØ"Øœ Ø !™ Ø 'Ý 9ð "ñôððõ—L’LØGØÔ(ØØñ ôðøøøøøøøøøð3 øøøð#2 "ð2 "ð2 "ñ2 "ô2 "ð2 "ð2 "ð2 "ð2 "ð2 "ð2 "ð2 "ð2 "ð2 "ð2 "ð2 "ð2 "ð2 "ð2 "ð2 "ð2 "ð2 "ð2 "øøøð2 "ð2 "ð2 "ð2 "ðf ð PØ—,’, TÀ�,ÑOÔOÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ Oð Pð PsDÄ!7LÅ+A0LÇ4IÈ6LÉ K=ÉB#K8Ë3LË8K=Ë=LÌ LÌLcƒótK—|j d¬¦«| ¦«ƒd{V—†dS)NTr“)r¥r¦r!rPs rr³z IndependentAgentIDAPI.reactivateksFèè€à Ô×&Ò&°$Ð&Ñ7Ô7Ð7Ø�lŠl‰nŒnÐÐÐÐÐÐÐÐÐrcƒó¨K—| ¦«st d¦«dS|j ¦«}|j ¦«}| ¦«}| |j||¬¦«} |  |¦«ƒd{V—†}tt|j ¦«|d|j   ¦«d| ¦«d¬¦«dS#t$r½}t d||¦«|t"kr]|j� |jdkr"| d |j|d z|¬ ¦«nW|jd kr| d |¬¦«ƒd{V—†n(t d|j||¦«Yd}~dSYd}~dSYd}~dSd}~wwxYw)Nz#need to register first before login)r#rœr}r•r–r—z/Something wrong happened on login %r attempt %sr�r"r3rOr¹Trºz*Failed to login (%s) after %s attempts: %r)rurHrªr^r`rtr¡rnÚ LOGIN_URLr…r r.rzr_r[r r§r©r¨rMr"r r«)rJr9r#rœrÀr‰rŠr~s rr"zIndependentAgentIDAPI.loginpsSèè€à× Ò Ñ"Ô"ð Ý �LŠLÐ>Ñ ?Ô ?Ð ?Ø ˆFØŒ}×&Ò&Ñ(Ô(ˆØÔ)×3Ò3Ñ5Ô5ˆØ×0Ò0Ñ2Ô2ˆà—,’,˜sœ}°4À(�,ÑKÔKˆð Ø×,Ò,¨WÑ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5ˆFõ. Ý�CÔ'Ñ(Ô(Ø�w”ØÔ*×1Ò1Ñ3Ô3ØØ—H’H‘J”JØ!ð  ñ ô ð ð ð øõ-ð ð ð Ý �NŠNØAÀ1Àgñ ô ð ð�Ò#Ð#Ø”=Ð(¨A¬M¸SÒ,@Ð,@à—M’MØ ¤¨G°a©KÀð"ñôððð”] cÒ)Ð)ØŸ,š,Ø"¸ð'ñôðððððððøõ— ’ Ø@ØÔ$ØØñ ôðððððððèèèèèèððððððøøøøð øøøsÂD Ä GÄB&G Ç G)Nrb)FNr3)r3).rrrÚAPI_PATHrr Ú _BASE_URLÚformatr¤r½rÄr„rÚIAID_DIRr^rtrzr¥rCrrŸr4ÚLockr¼rr/Ú staticmethodrr;Ú classmethodrMrQrUr[rarnrurr‹ryr rµr¡r!r³r"rrrrr*s€€€€€Ø#€HØ�7˜3œ=¨(¯/ª/¸*Ñ*EÔ*EÑFÔF€LØ�7˜3œ=¨(¯/ª/¸*Ñ*EÔ*EÑFÔF€LØ�˜œ  x§¢°wÑ'?Ô'?Ñ@Ô@€IØ�˜œ¨¯ª¸ Ñ(EÔ(EÑFÔF€JàˆtÐ%Ñ&Ô&€Hؘ6Ñ!€IØ! OÑ3ÐØ Ñ-€OØ"Ð%5Ñ5ÐàØØðð€Fð +Ð*Ñ,Ô,€NØ!�W”\‘^”^€Nà€Y�dÐÑÔð ð ð ð ð ñ ô ñÔð ðØFGððð Hðððñ„\ððØEFð@ð@ð@ 8ð@ð@ð@ñ„[ð@ð ð;ð;ñ„[ð;ððEðEñ„[ðEðð/ð/ñ„\ð/ðððñ„[ðð ð  ð  ð  ñ„\ð  ðð ð ñ„[ð ð ð Nð Nñ„[ð Nðð O ið Oð Oð Oñ„[ð Oðð,ð,ñ„[ð,ððPðPðPñ„[ðPðdððñ„[ðð$ð6ð6ñ„[ð6ððGPðGPðGPñ„[ðGPðRððñ„[ððð(ð(ð(ñ„[ð(ð(ð(rr))r4rXrhr�r6r‘Ú dataclassesrÚloggingrÚpathlibrÚtypingrÚ urllib.parserÚurllib.requestrÚdefence360agent.api.serverr r Ú!defence360agent.contracts.licenser Údefence360agent.utilsr r Údefence360agent.utils.commonrÚ&defence360agent.internals.global_scoperÚ1defence360agent.internals.deadlock_detecting_lockrrrrHr©r8r¿Ú RuntimeErrorrrrrrúrÙsÈðØ€€€Ø € € € Ø € € € Ø € € € Ø € € € Ø € € € Ø!Ð!Ð!Ð!Ð!Ð!ØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ Ð Ð Ð Ð Ð Ø"Ð"Ð"Ð"Ð"Ð"à4Ð4Ð4Ð4Ð4Ð4Ð4Ð4Ø8Ð8Ð8Ð8Ð8Ð8ØBÐBÐBÐBÐBÐBÐBÐBØ,Ð,Ð,Ð,Ð,Ð,Ø4Ð4Ð4Ð4Ð4Ð4ððððððððð ˆ�8Ñ Ô €ð€ ØÐðð Ðð/ð/ð/ð/ð/�\ñ/ô/ð/ðoðoðoðoðo˜Cñoôoðoðoðor