JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr g4ddlZdddddZiddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+Zd,d-d.d/d0ZGd1d2Zy)3Nllll )UIDGIDALLCLUSTERVMl@HOSTlNETlIMAGElUSERlTEMPLATElGROUPl DATASTOREl@rlDOCUMENTlZONElSECGROUPlVDClVROUTERl MARKETPLACEl@MARKETPLACEAPPlVMGROUPlll) VNTEMPLATE BACKUPJOB)USEMANAGEADMINCREATEc0eZdZdZdZdZdZdZdZy)OneAclc6t|j|SNhex calculate_ids)selfuserss 8/opt/hc_python/lib/python3.12/site-packages/pyone/acl.py parse_userszOneAcl.parse_usersYs$$$U+,,cd}|jd}t|dk7r)tdjdj ||djd}|D]L}|j t vrtdj||t |j z }N||j|dz }t|S)Nr/rzResource '{}' malformed+zResource '{}' does not existr) splitlen Exceptionformatjoinupper RESOURCESr'r&)r( resourcesretresresources r*parse_resourceszOneAcl.parse_resourcesasOOC( y>Q 5<>#y0 > E Eh OPP 9X^^-. .C  t!!)A,//3xr,cd}|jd}|D]L}|jtvrtdj ||t|jz }Nt |S)Nrr/zRight '{}' does not exist)r0r5RIGHTSr2r3r&)r(rightsr8rights r* parse_rightszOneAcl.parse_rightsxsdc"E;;=F* ; B B5 IJJ 6%++-( (C  3xr,c6t|j|Sr$r%)r(zones r* parse_zonezOneAcl.parse_zones4%%d+,,r,cg}|jd}t|dk7rt|dk7r td|j|j |d|j|j |d|j|j |dt|dk(r|d|d|dfS|j|j|d|d|d|d|dfS)N rzEString needs three or four components: User, Resource, Rights [,Zone]rrr)r0r1r2appendr+r;r@rC)r(rule_strr8s r* parse_rulezOneAcl.parse_rules>>#& x=A #h-1"4cd d 4##HQK01 4'' 45 4$$Xa[12 x=A q63q63q6) ) 4??8A;/01vs1vs1vs1v--r,cXtjd|stdj|d}|ddk(rtd}t |dd|z}|ddk(rtd}t |dd|z}|dd k(r td }|dd k(rtd }t |dd|z}|S) Nz^([\#@\%]\d+|\*)$zID string '{}' malformedr#rr@r*r%r)rematchr2r3USERSint)r(id_str users_valuevalues r*r'zOneAcl.calculate_idssxx+V46==fEF F !9 %LEfQRj/E1K !9 %LEfQRj/E1K !9 ,K !9 )$EfQRj/E1Kr,N) __name__ __module__ __qualname__r+r;r@rCrIr'r,r*r"r"Ss -. "-.2r,r")rOrQr6r=r"rYr,r*rZsX    l  l  l  l    m   m   m n n n  n o  o o o  &! "&# $'''  .  llr,