+
    ç‹cjÝ6  ã                   ó¨   € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	 ^ RI
HtHtHt ^ RIHt ^ RIHt ^ RIHt  ! R R4      t ! R	 R
]4      tR# )é    N)Úsystem_session)ÚCommandÚCommandErrorÚOption)Úget_fsmo_roleowner)Ú
setup_path)ÚSamDBc                   ó6   a € ] tR t^'t o RtR tR tR tRtV t	R# )Úldif_schema_updatez-Helper class for applying LDIF schema updatesc                ó>   € R V n         RV n        RV n        RV n        R# )FNÚ )Ú
is_defunctÚunknown_oidÚdnÚldif)Úselfs   &ÚC/usr/lib/python3/dist-packages/samba/netcmd/domain/schemaupgrade.pyÚ__init__Úldif_schema_update.__init__*   s   € ØˆŒØˆÔØˆŒØˆŽ	ó    c                ó  € VP                   w  r#V\        P                  8X  d1   V P                  '       d   \	        RV P
                  ,          4       R# V P                  e*   \	        RV P                  : RV P
                  : 24       R# R# )z>Checks if we can safely ignore failure to apply an LDIF updatez)Defunct object %s doesn't exist, skippingTzSkipping unknown OID z for object F)ÚargsÚldbÚERR_NO_SUCH_OBJECTr   Úprintr   r   )r   ÚerrorÚnumÚerrstrs   &&  r   Úcan_ignore_failureÚ%ldif_schema_update.can_ignore_failure0   sc   € àŸ
™
‰ˆð ”#×(Ñ(Ô(¨T¯_¯_¨_ÜÐ=ÀÇÁÕGÔHÙØ×ÑÒ)Ý¸T×=MÔ=MÈtÏwËwÐWÔXÙár   c                ó8  €   VP                  V P                  R.R7       ^#   \        P                   d`   pTP                  ^ ,          \        P
                  8X  d4   TP                  4        TP                  T P                  R.R7        Rp?M	h Rp?ii ; i ^#   \        P                   dh   pT P                  T4      '       d    Rp?^ # \        RT,          4       \        R4       \        R4       \        RT P                  ,          4       h Rp?ii ; i)z*Applies a single LDIF update to the schemazrelax:0)ÚcontrolsNúException: %sz4Encountered while trying to apply the following LDIFz4----------------------------------------------------z%s)	Úmodify_ldifr   r   ÚLdbErrorr   ÚERR_INVALID_ATTRIBUTE_SYNTAXÚset_schema_update_nowr   r   )r   ÚsamdbÚes   && r   ÚapplyÚldif_schema_update.apply>   së   € ð	ðØ×!Ñ! $§)¡)°y°kÐ!ÔBñ2 øô1 —<‘<ô Ø—6‘6˜!•9¤× @Ñ @Ô@ð ×/Ñ/Ô1à×%Ñ% d§i¡i¸9¸+Ð%×FÑFàûðúð Gñ øô �|‰|ô 		Ø×&Ñ& q×)Ò)Ýä�o¨Õ)Ô*ÜÐLÔMÜÐLÔMÜ�d˜TŸY™YÕ&Ô'àûð		ús@   ƒ# £B¸ABÂB ÂBÂBÂB ÂDÂ2DÃADÄD)r   r   r   r   N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r*   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r   '   s   ø‡ € Ù7òò÷ð r   r   c                   ó  a € ] tR t^_t o RtRtR]P                  R]P                  R]P                  /t
]! RRR]R	R
R7      ]! RRRRR7      ]! RRRRR7      ]! RRR. R$ORRR7      ]! R]RRR7      ]! R]RRR7      .tR  tR! tR" tR#tV tR# )%Úcmd_domain_schema_upgradezDomain schema upgradingz%prog [options]Ú	sambaoptsÚversionoptsÚcredoptsz-Hz--URLz%LDB URL for database or target serverÚURLÚH)ÚhelpÚtypeÚmetavarÚdestz-qz--quietzBe quietÚ
store_true)r<   Úactionz-vz	--verbosez
Be verbosez--schemaÚchoiceÚSCHEMAÚ2019z9The schema file to upgrade to. Default is (Windows) 2019.)r=   r>   Úchoicesr<   Údefaultz
--ldf-fileNzBJust apply the schema updates in the adprep/.LDF file(s) specified)r=   rF   r<   z
--base-dirz4Location of ldf files Default is ${SETUPDIR}/adprep.c           	     ó’  € ^ p\        4       pV EF3  pVP                  4       pVR8X  d7   VP                  R8X  d   K.  W4P                  V4      ,          p\        4       pKQ  VP	                  4       P                  R4      '       d/   VR\        R4      )  \        VP                  4       4      ,           pMRVP	                  4       P                  R4      '       d.   VR\        R4      )  \        VP                  4       4      ,           pVP                  R4      pV^ ,          P                  4       R8X  d   V^,          P                  4       Vn        V^ ,          P                  4       R8X  d�   VP                  4       P                  RR	4      pVP                  4       P                  R
R4      pVP                  4       P                  RR4      pVP                  4       P                  RR4      pV^ ,          P                  4       R9   dˆ   Vw  rxRV9   d}   VP                  VP                  4       RV: RV: R2R.R7      p	\        V	4      ^8w  d   W„n        M9\        V	^ ,          R,          ^ ,          4      p
VP                  VRV
,           4      pV^ ,          P                  4       R8X  d2   V^,          P                  4       P                  4       R8X  d   RVn        V^ ,          P                  4       R8X  d-   V^,          P                  4       P                  4       R8X  d   RpV;P                  VR,           ,          un        EK6  	  V# )z…
Applies a series of updates specified in an .LDIF file. The .LDIF file
is based on the adprep Schema updates provided by Microsoft.
r   zDC=XNzCN=XÚ:r   Ú
changetypez: ntdsschemaaddz: addz: ntdsschemamodifyz: modifyz: ntdsschemamodrdnz: modrdnz: ntdsschemadeletez: deleteÚ.z(|(attributeId=z)(governsId=z))ÚldapDisplayName)ÚbaseÚ
expressionÚattrsÚ Ú	isdefunctÚtrueTÚaddÚshowinadvancedviewonlyzreplace: showInAdvancedViewOnlyÚ
)ÚrdnattidÚ
subclassofÚsystemposssuperiorsÚsystemmaycontainÚsystemauxiliaryclass)r   Úrstripr   r*   ÚupperÚendswithÚlenÚstrÚget_default_basednÚsplitÚlowerÚstripr   ÚreplaceÚsearchÚget_schema_basednr   r   )r   r(   Ú	ldif_fileÚcountÚldif_opÚlineÚvaluesÚ_ÚvalueÚresÚdisplay_names   &&&        r   Ú_apply_updates_in_fileÚ0cmd_domain_schema_upgrade._apply_updates_in_filey   s½  € ð
 ˆÜ$Ó&ˆô ˆDà—;‘;“=ˆDð �rŒzð —<‘< 2Ô%Ùð Ÿ™ uÓ-Õ-�ô -Ó.�Ùð �z‰z‹|×$Ñ$ V×,Ò,Ø˜Mœc &›k˜\Ð*¬S°×1IÑ1IÓ1KÓ-LÕL‘Ø—‘“×&Ñ& v×.Ò.Ø˜Mœc &›k˜\Ð*¬S°×1IÑ1IÓ1KÓ-LÕL�à—Z‘Z “_ˆFà�a�y�‰Ó  DÔ(Ø# A�YŸ_™_Ó.�”
ð �a�y�‰Ó  LÔ0Ø—z‘z“|×+Ñ+Ð,=Ø,3ó5�à—z‘z“|×+Ñ+Ð,@Ø,6ó8�à—z‘z“|×+Ñ+Ð,@Ø,6ó8�à—z‘z“|×+Ñ+Ð,@Ø,6ó8�ð �a�y�‰Ó ð %=ô =ð "‘�ð ˜%”<ØŸ,™,¨E×,CÑ,CÔ,Eã(-«uð36à.?Ð-@ð 'ó B�Cô
 ˜3“x 1”}Ø.3Õ+ä'*¨3¨q­6Ð2CÕ+DÀQÕ+GÓ'H˜Ø#Ÿ|™|¨E°3¸Õ3EÓF˜ð �a�y�‰Ó  KÔ/°F¸1µI·O±OÓ4E×4KÑ4KÓ4MÐQWÔ4WØ%)�Ô"ð �a�y�‰Ó  EÔ)¨f°Q­i¯o©oÓ.?×.EÑ.EÓ.GÐKcÔ.cØ8�ð �LŠL˜D 4�KÕ'�LˆLñU ðX ˆr   c                ó2  € \        RV,          4       Rp \        \        P                  P	                  W24      4      pV P                  W4      pV'       d   VP                  4        \        RT,          4       T#   T'       d   TP                  4        i i ; i)zBWrapper function for parsing an LDIF file and applying the updateszApplying %s updates...Nz%u changes applied)r   ÚopenÚosÚpathÚjoinro   Úclose)r   r(   Úupdate_fileÚbase_dirrf   rg   s   &&&&  r   Ú_apply_updateÚ'cmd_domain_schema_upgrade._apply_updateÐ   s{   € ô 	Ð&¨Õ4Ô5àˆ	ð	"ÜœRŸW™WŸ\™\¨(Ó@ÓAˆIà×/Ñ/°ÓAˆE÷ Ø—‘Ô!äÐ" UÕ*Ô+àˆø÷ Ø—‘Õ!ð ús   –9A; Á;Bc                ó„
  €  ^ RI Hp ^ RIHp RpTP                  R4      pTP                  R4      pTP                  4       pTP                  T4      p	TP                  R	4      p
TP                  R
4      pTP                  R4      pTP                  R4      pRp\        T
\        4       Y˜R.R7      pTP                  R4      f    TP                  RR4       \        R4       Rp\        P                   ! YÿP#                  4       4      p\%        T\'        TP)                  4       4      R
4      pTT8w  d   \        R4      hT'       d   TP+                  R4      pEM. pTP-                  T4      pTP/                  TP)                  4       \        P0                  R.R7      p\3        T4      ^8w  d   \        R4      h\5        T^ ,          R,          ^ ,          4      ^,           p\7        R4      pTf-   \8        P:                  ! 4       p\7        R4      p T! TT4       Tp\C        TT^,           4       EF:  pRT,          pTPE                  T4       \F        PH                  PK                  \F        PH                  PM                  TTR,           4      4      pT'       g   Kl  \F        PH                  PO                  T4      '       g   K“   \P        PR                  ! RTRT.\P        PT                  \P        PT                  TR 7      pTP[                  4       w  ppTP\                  '       d5   \        R"T: R#T: 24       \>        P@                  ! T4       \        R4      h\        R$T: R%T: 24       EK=  	  Tf   \7        R&4      pTP_                  4        ^ pRp T F  p TT Pa                  TT T4      ,          pK  	  T^ 8”  d   TPc                  4        \        R'4       M\        R(4       TPe                  4         T'       d   TP                  RR+4       T'       d   \>        P@                  ! T4       T'       d   \        R4      hR#   \         d3   pT P                  P	                  RT,          4       \        R4      hRp?ii ; i  \<         d9   p\        RT,          4       \>        P@                  ! T4       \        R4      hRp?ii ; i  \V        \X        3 d#    \>        P@                  ! T4       \        R!4      hi ; i  \<         d;   p\        R)T,          4       \        R*4       TPe                  4        Rp Rp?ELIRp?ii ; i),r   )Úread_ms_markdownz$Exception in importing markdown: %s
zIFailed to import module markdown, please install python3-markdown packageN)ÚSchemaFr7   r9   r;   ÚschemaÚldf_filerx   z#transaction_index_cache_size:200000)ÚurlÚsession_infoÚcredentialsÚlpÚoptionszdsdb:schema update allowedÚyesz;Temporarily overriding 'dsdb:schema update allowed' settingTz%This server is not the schema master.Ú,ÚobjectVersion)rL   ÚscoperN   z*Could not determine current schema versionzadprep/WindowsServerDocsz*adprep/WindowsServerDocs/Schema-Updates.mdz!Exception in markdown parsing: %szFailed to upgrade schemaz	Sch%d.ldfz.diffÚpatchz-i)ÚstdoutÚstderrÚcwdz6Failed to upgrade schema. Is '/usr/bin/patch' missing?zException in patch: rT   zPatched z using ÚadprepzSchema successfully updatedzNo changes applied to schemar#   z*Error encountered, aborting schema upgradeÚno)3Úsamba.ms_schema_markdownr|   ÚImportErrorÚoutfÚwriter   Úsamba.schemar}   ÚgetÚget_loadparmÚget_credentialsr	   r   Úsetr   r   ÚDnÚget_dsServiceNamer   r^   re   r`   Úget_versionrd   Ú
SCOPE_BASEr]   Úintr   ÚtempfileÚmkdtempÚ	ExceptionÚshutilÚrmtreeÚrangeÚappendrs   rt   Úabspathru   ÚexistsÚ
subprocessÚPopenÚPIPEÚOSErrorÚIOErrorÚcommunicateÚ
returncodeÚtransaction_startry   Útransaction_commitÚtransaction_cancel)!r   Úkwargsr|   r)   r}   Úupdates_allowed_overriddenr7   r9   rƒ   Úcredsr;   Útarget_schemaÚ	ldf_filesrx   Útemp_folderr(   Úown_dnÚmasterÚschema_updatesÚendrm   ÚstartÚdiff_dirrw   ÚversionÚupdateÚdiffÚprŠ   r‹   rg   Úerror_encounteredrf   s!   &,                               r   ÚrunÚcmd_domain_schema_upgrade.runã   sx  € ð	lÝAõ 	(à%*Ð"Ø—J‘J˜{Ó+ˆ	Ø—:‘:˜jÓ)ˆØ×#Ñ#Ó%ˆØ×(Ñ(¨Ó,ˆØ�J‰J�s‹OˆØŸ
™
 8Ó,ˆØ—J‘J˜zÓ*ˆ	Ø—:‘:˜jÓ)ˆàˆô
 ˜!¬.Ó*:ÈØDÐEôGˆð �6‰6Ð.Ó/Ò7Ø�F‰FÐ/°Ô7ÜÐOÔPØ)-Ð&ä—’˜×6Ñ6Ó8Ó9ˆÜ# E¬3¨u×/FÑ/FÓ/HÓ+IØ$,ó.ˆà�VÔÜÐFÓGÐG÷ Ø&Ÿ_™_¨SÓ1ŠNàˆNð ×$Ñ$ ]Ó3ˆCð —,‘, E×$;Ñ$;Ó$=Ü%(§^¡^¸OÐ;Lð ó NˆCô �3‹x˜1Œ}Ü"Ð#OÓPÐPÜ˜˜A�˜Õ/°Õ2Ó3°aÕ7ˆEä!Ð"<Ó=ˆHØÒä&×.Ò.Ó0�ä(Ð)UÓV�ðCÙ$ [°+Ô>ð '�ä  ¨¨a­×0�Ø$ wÕ.�Ø×%Ñ% fÔ-ô —w‘w—‘¤r§w¡w§|¡|°H¸fÀwÕ>NÓ'OÓP�ß‘;¤2§7¡7§>¡>°$×#7Ô#7ðKÜ&×,Ò,¨g°v¸tÀTÐ-JÜ4>·O±OÜ4>·O±OÈôV˜ð &'§]¡]£_‘N�F˜Fà—|—|�|Ý»fÂfÐMÔNÜŸš kÔ2Ü*Ð+EÓFÐFå³6º4Ð@×Añ/ 1ð2 ÒÜ! (Ó+ˆHà×ÑÔ!ØˆØ!Ðð	%ã+�	Ø˜×+Ñ+¨E°9¸hÓGÕG’ñ ,ð �qŒyØ×(Ñ(Ô*ÜÐ3Õ4äÐ4Ô5Ø×(Ñ(Õ*÷ &Ø�F‰FÐ/°Ô6çÜ�MŠM˜+Ô&çÜÐ9Ó:Ð:ñ øôw ô 	lØ�I‰I�O‰OÐCÀaÕGÔHÜÐjÓkÐkûð	lûôz !ô CÜÐ=ÀÕAÔBÜ—M’M +Ô.Ü&Ð'AÓBÐBûðCûô$ $¤WÐ-ô KÜŸš kÔ2Ü*ð ,Jó Kð KðKûô@ ô 	%Ü�/ AÕ%Ô&ÜÐ>Ô?Ø×$Ñ$Ô&Ø $Öûð		%úsZ   ‚P> È	Q> Ë :SÎAS: ÏS: Ð>Q;Ñ	-Q6Ñ6Q;Ñ>SÒ	3R<Ò<SÓ3S7Ó:T?Ô/T:Ô:T?© )Ú2012Ú2012_R2Ú2016rD   )r,   r-   r.   r/   r0   Úsynopsisr„   ÚSambaOptionsÚVersionOptionsÚCredentialsOptionsÚtakes_optiongroupsr   r^   Útakes_optionsro   ry   rÁ   r1   r2   r3   s   @r   r6   r6   _   sÉ   ø‡ € Ù!à €Hð 	�W×)Ñ)Ø�w×-Ñ-Ø�G×.Ñ.ðÐñ 	ˆt�WÐ#JÐQTØ 3ô	(áˆt�Y Z¸ÔEÙˆt�[ |¸LÔIÙˆz °(Ú:ØOØô	ñ 	ˆ| #¨tØXô	Záˆ| #¨tØJô	Lð€MòUòn÷&;ð ;r   r6   )rs   r    r¦   r�   r   Úsamba.getoptÚgetoptr„   Ú
samba.authr   Úsamba.netcmdr   r   r   Úsamba.netcmd.fsmor   Úsamba.provisionr   Úsamba.samdbr	   r   r6   rÃ   r   r   Ú<module>rÔ      sD   ðó2 
Û Û Û ã 
Ý Ý %ß 6Ñ 6Ý 0Ý &Ý ÷5ñ 5ôpC; ö C;r   