+
    4Ssi’Ü  ã                   óÀ  € ^ RI Ht ^ RIHt ^ RIHt ^ RIHt ^ RIH	t	H
t
 ^ RIHt ^ RIHt ^ RIt^ RIt^ RIt^ RIHtHt ^ RIt^ R	IHtHt ^ R
IHt ^ RIHt ^ RIHtHtHtHt ^ RIHtH t  ^ RI!H"t"H#t#H$t$ ^ RI!H%t% R t& ! R R4      t'R t(R t)R t*R t+R t,R t-R t.R t/R t0R t1R t2R t3R t4R  t5R! t6R" t7R# t8R$ t9R% t:R& t;R' t<R( t= ! R) R*]4      t>R+ t? ! R, R-]4      t@ ! R. R/]4      tA ! R0 R1]4      tB ! R2 R3]4      tC ! R4 R5]4      tD ! R6 R7]4      tE ! R8 R9]4      tF ! R: R;]4      tG ! R< R=]4      tH ! R> R?]4      tI ! R@ RA]4      tJ ! RB RC]4      tKR# )Dé    N)ÚWERRORError)Úwerror)Úpack)Ú	inet_ntopÚ	inet_pton)ÚAF_INET)ÚAF_INET6)Ú
ndr_unpackÚndr_pack)Ú	remove_dcÚdsdb_dns)ÚSamDB)Úsystem_session)ÚCommandÚCommandErrorÚOptionÚSuperCommand)ÚdnspÚ	dnsserver)Úrecord_from_stringÚDNSParseErrorÚflag_from_string)Údns_record_matchc                 óÂ   € V P                  4       R 8X  d   Rp RV ,          p \        P                  ! W1V4      pV#   \         d   p\        RT : RT: 24      hRp?ii ; i)Ú	localhostz	127.0.0.1zncacn_ip_tcp:%s[sign]zConnecting to DNS RPC server z failed with N)Úlowerr   ÚRuntimeErrorr   )ÚserverÚlpÚcredsÚbinding_strÚdns_connÚes   &&&   Ú2/usr/lib/python3/dist-packages/samba/netcmd/dns.pyÚdns_connectr%   /   sc   € Ø‡|�|ƒ~˜Ô$ØˆØ)¨FÕ2€Kð[Ü×&Ò& {¸Ó>ˆð €Oøô ô [ÝËvÒWXÐYÓZÐZûð[ús   ¢; »AÁAÁAc            
       ó¬   a € ] tR t^;t o Rt]P                  R]P                  R]P                  R]P                  R]P                  R/tR tR tR	tV tR
# )ÚDnsConnWrappera  A wrapper around a dnsserver.dnsserver connection that makes it
harder not to report friendly messages.

If, rather than

    dns_conn = dns_connect(server, lp, creds)

you use

    dns_conn = DnsConnWrapper(server, lp, creds)

then various common errors (for example, misspelled zones) on
common operations will raise CommandErrors that turn into
relatively nice messages (when compared to tracebacks).

In addition, if you provide a messages keyword argument, it will
override the defaults. Note that providing None will turn off the
default, letting the original exception shine through.

    messages = {
        werror.WERR_DNS_ERROR_ZONE_DOES_NOT_EXIST: (
            f'Zone {zone} does not exist and so could not be deleted.'),
        werror.WERR_DNS_ERROR_NAME_DOES_NOT_EXIST: None
    }
    res = dns_conn.DnssrvOperation2( # ...
                                    messages=messages)

This example changes the message for ZONE_DOES_NOT_EXIST and
avoids catching NAME_DOES_NOT_EXIST.

Only WERRORErrors are intercepted.
zCould not contact RPC serverzZone already existszThe record does not existzThe zone does not existzInsufficient permissionsc                ó(   € \        WV4      V n        R # ©N)r%   r"   )Úselfr   r   r    s   &&&&r$   Ú__init__ÚDnsConnWrapper.__init__e   s   € Ü# F°Ó6ˆŽó    c                ó^   a a€ \        S P                  V4      oVR9  d   S# RR/VV 3R llpV# )ÚDnssrvComplexOperation2ÚmessagesNc                 ó  <€ V f   / p  S! V!  #   \          dl   pTP                  w  r4Y09   d   Tf   h \        Y,           RT R2T4      hTSP                  9   d$   \        SP                  T,           RT R2T4      hh R p?ii ; i)Nú [Ú])r   Úargsr   Údefault_messages)r0   r4   r#   ÚwerrÚerrstrÚattrr*   s   $*   €€r$   ÚfÚ%DnsConnWrapper.__getattr__.<locals>.fr   sœ   ø€ ØÒØ�ðÙ˜T‘{Ð"øÜô 	Ø Ÿv™v‘�ØÔ#Ø’|àÜ&¨(­.Ð)9¸¸F¸8À1Ð'EÀqÓIÐIØ˜4×0Ñ0Ô0Ü&¨$×*?Ñ*?ÀÕ*EÐ)FÀbÈÈÐPQÐ'RÐTUÓVÐVØûð	ús   ‰ �BšA&B Â B>   ÚDnssrvQuery2ÚDnssrvOperation2ÚDnssrvEnumRecords2ÚDnssrvUpdateRecord2r/   )Úgetattrr"   )r*   Únamer9   r8   s   f& @r$   Ú__getattr__ÚDnsConnWrapper.__getattr__h   s?   ù€ Ü�t—}‘} dÓ+ˆØð 'ô 'ð ˆKð	˜d÷ 	ð 	ð" ˆr-   )r"   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   ÚWERR_DNS_ERROR_DS_UNAVAILABLEÚ"WERR_DNS_ERROR_ZONE_ALREADY_EXISTSÚ$WERR_DNS_ERROR_RECORD_DOES_NOT_EXISTÚ"WERR_DNS_ERROR_NAME_DOES_NOT_EXISTÚWERR_ACCESS_DENIEDr5   r+   rA   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r$   r'   r'   ;   s`   ø‡ € ñðD 	×,Ñ,Ð.LØ×1Ñ1Ð3HØ×3Ñ3Ð5PØ×1Ñ1Ð4MØ×!Ñ!Ð#=ðÐò7÷ð r-   r'   c                 óD   € V ^ 8X  d   RpV# V ^8X  d   RpV# RV ,          pV# )r   ÚFALSEÚTRUEúUNKNOWN (0x%x)© )ÚflagÚrets   & r$   Úbool_stringrX   †   s;   € Øˆq„yØˆð
 €Jð	 
�ŒØˆð €Jð  Õ%ˆØ€Jr-   c                 óf   € R pV F  pV\        W4      8X  g   K  Tp M	  V'       g
   RV,          pV# )NrT   ©r?   )ÚmoduleÚ	enum_defsÚvaluerW   r#   s   &&&  r$   Úenum_stringr^   �   s:   € Ø
€CÛˆØ”G˜FÓ&Ö&ØˆCÙñ ÷ Ø Õ&ˆØ€Jr-   c                 ó„   € R pV F-  pV\        W4      ,          '       g   K  VRV,          ,          pK/  	  V'       g   RpV# )Ú z%s ÚNONErZ   )r[   Úbitmap_defsr]   rW   Úbs   &&&  r$   Úbitmap_stringrd   ›   s>   € Ø
€CÛˆØ”7˜6Ó%×%Ö%Ø�5˜1•9ÕŠCñ ÷ ØˆØ€Jr-   c                 ó*   € . ROp\        \        W4      # )ÚDNS_BOOT_METHOD_UNINITIALIZED)rf   ÚDNS_BOOT_METHOD_FILEÚDNS_BOOT_METHOD_REGISTRYÚDNS_BOOT_METHOD_DIRECTORY©r^   r   )Úboot_methodr\   s   & r$   Úboot_method_stringrl   ¥   s   € òJ€Iä”y )Ó9Ð9r-   c                 ó*   € . ROp\        \        W4      # )ÚDNS_ALLOW_RFC_NAMES_ONLY)rn   ÚDNS_ALLOW_NONRFC_NAMESÚDNS_ALLOW_MULTIBYTE_NAMESÚDNS_ALLOW_ALL_NAMESrj   )Ú
check_flagr\   s   & r$   Úname_check_flag_stringrs   «   s   € òE€Iä”y )Ó8Ð8r-   c                 ó*   € . ROp\        \        W4      # )ÚDNS_ZONE_TYPE_CACHE)ru   ÚDNS_ZONE_TYPE_PRIMARYÚDNS_ZONE_TYPE_SECONDARYÚDNS_ZONE_TYPE_STUBÚDNS_ZONE_TYPE_FORWARDERÚDNS_ZONE_TYPE_SECONDARY_CACHE©r^   r   )Ú	zone_typer\   s   & r$   Úzone_type_stringr}   ±   s   € òM€Iô ”t˜YÓ2Ð2r-   c                 ó*   € . ROp\        \        W4      # )ÚDNS_ZONE_UPDATE_OFF)r   ÚDNS_ZONE_UPDATE_UNSECUREÚDNS_ZONE_UPDATE_SECUREr{   )Úzone_updater\   s   & r$   Úzone_update_stringrƒ   ¸   s   € ò+€Iä”t˜YÓ4Ð4r-   c                 ó*   € . ROp\        \        W4      # )ÚDNS_ZONE_SECSECURE_NO_SECURITY)r…   ÚDNS_ZONE_SECSECURE_NS_ONLYÚDNS_ZONE_SECSECURE_LIST_ONLYÚDNS_ZONE_SECSECURE_NO_XFERrj   )Úsecurityr\   s   & r$   Úzone_secondary_security_stringrŠ   ¾   s   € òO€Iä”y )Ó6Ð6r-   c                 ó*   € . ROp\        \        W4      # )ÚDNS_ZONE_NOTIFY_OFF)rŒ   ÚDNS_ZONE_NOTIFY_ALL_SECONDARIESÚDNS_ZONE_NOTIFY_LIST_ONLYrj   )Únotify_levelr\   s   & r$   Úzone_notify_level_stringr�   Ä   s   € ò.€Iä”y )Ó:Ð:r-   c                 ó*   € . ROp\        \        W4      # )ÚDNS_DP_AUTOCREATED)r’   ÚDNS_DP_LEGACYÚDNS_DP_DOMAIN_DEFAULTÚDNS_DP_FOREST_DEFAULTÚDNS_DP_ENLISTEDÚDNS_DP_DELETED©rd   r   )Údp_flagsrb   s   & r$   Údp_flags_stringrš   Ê   s   € òQ€Käœ KÓ:Ð:r-   c                 ó*   € . ROp\        \        W4      # )ÚDNS_RPC_ZONE_PAUSED)	rœ   ÚDNS_RPC_ZONE_SHUTDOWNÚDNS_RPC_ZONE_REVERSEÚDNS_RPC_ZONE_AUTOCREATEDÚDNS_RPC_ZONE_DSINTEGRATEDÚDNS_RPC_ZONE_AGINGÚDNS_RPC_ZONE_UPDATE_UNSECUREÚDNS_RPC_ZONE_UPDATE_SECUREÚDNS_RPC_ZONE_READONLYr˜   )Úflagsrb   s   & r$   Úzone_flags_stringr¦   Ð   s   € ò,€Kô
 œ KÓ7Ð7r-   c           	      óÎ   € . pV '       g   V# \        V P                  4       F?  p\        \        \	        R V P
                  V,          4      4      pVP                  V4       KA  	  V# )ÚI)ÚrangeÚ	AddrCountr   r   r   Ú	AddrArrayÚappend)ÚarrayrW   ÚiÚaddrs   &   r$   Úip4_array_stringr°   Ù   sQ   € Ø
€CßØˆ
Ü�5—?‘?Ö#ˆÜœ¤$ s¨E¯O©O¸AÕ,>Ó"?Ó@ˆØ�
‰
�4Öñ $ð €Jr-   c                 óN  € . pV '       g   V# \        V P                  4       Fÿ  pV P                  V,          P                  ^ ,          ^8X  dL   \        P
                  ! R.V P                  V,          P                  R,          O5!  p\        \        V4      pMvV P                  V,          P                  ^ ,          ^8X  dL   \        P
                  ! R.V P                  V,          P                  R,          O5!  p\        \        V4      pMRpVP                  V4       EK  	  V# )r   Ú4B:é   é   NÚ16B:r´   é   NÚUNKNOWN)
r©   rª   r«   ÚMaxSaÚstructr   r   r   r	   r¬   )r­   rW   r®   Úxr¯   s   &    r$   Údns_addr_array_stringr»   ã   sØ   € Ø
€CßØˆ
Ü�5—?‘?Ö#ˆØ�?‰?˜1Õ×#Ñ# AÕ&¨$Ô.Ü—’˜DÐA 5§?¡?°1Õ#5×#;Ñ#;¸CÕ#@ÓAˆAÜœW aÓ(‰DØ�_‰_˜QÕ×%Ñ% aÕ(¨DÔ0Ü—’˜EÐC E§O¡O°AÕ$6×$<Ñ$<¸TÕ$BÓCˆAÜœX qÓ)‰DàˆDØ�
‰
�4×ñ $ð €Jr-   c                 óf   €  \        V 4      #   \         d   p\        TP                  !  hR p?ii ; ir)   )r   r   r   r4   )Úrec_typer#   s   & r$   Údns_type_flagr¾   ô   s1   € ð$Ü Ó)Ð)øÜô $Ü˜AŸF™FÑ#Ð#ûð$ús   ‚
 �0˜+«0c                 óÜ   € V P                  4       pVR 8X  d   \        P                  pV# VR8X  d   \        P                  pV# VR8X  d   \        P                  pV# \        RV ,          4      h)ÚW2KÚDOTNETÚLONGHORNzUnknown client version %s)Úupperr   ÚDNS_CLIENT_VERSION_W2KÚDNS_CLIENT_VERSION_DOTNETÚDNS_CLIENT_VERSION_LONGHORNr   )Úcli_versionÚversionÚclient_versions   &  r$   Údns_client_versionrÊ   û   sx   € Ø×ÑÓ!€GØ�%ÔÜ"×9Ñ9ˆð Ðð 
�HÔ	Ü"×<Ñ<ˆð
 Ðð	 
�JÔ	Ü"×>Ñ>ˆð Ðô Ð6¸ÕDÓEÐEr-   c                 ó¸  € V P                  R VP                  ,          4       V P                  R\        VP                  4      ,          4       V P                  R\	        VP
                  4      ,          4       V P                  R\	        VP                  4      ,          4       V P                  R\	        VP                  4      ,          4       V P                  RVP                  ,          4       V P                  RVP                  ,          4       V\        P                  8w  dƒ   V P                  R\        VP                  4      ,          4       V P                  R\        VP                  4      ,          4       V P                  R	\        VP                  4      ,          4       M�V P                  R\!        VP                  4      ,          4       V P                  R\!        VP                  4      ,          4       V P                  R	\!        VP                  4      ,          4       V P                  R
VP"                  ,          4       V P                  RVP$                  ,          4       V P                  RVP&                  ,          4       V P                  RVP(                  ,          4       V P                  R\+        VP,                  4      ,          4       V P                  RVP.                  ,          4       V P                  RVP0                  ,          4       V P                  RVP2                  ,          4       V P                  RVP4                  ,          4       V P                  RVP6                  ,          4       V P                  RVP8                  ,          4       V P                  RVP:                  ,          4       V P                  RVP<                  ,          4       V P                  R\	        VP>                  4      ,          4       V P                  R\	        VP@                  4      ,          4       V P                  R\	        VPB                  4      ,          4       V P                  R\	        VPD                  4      ,          4       V P                  R\	        VPF                  4      ,          4       V P                  R\	        VPH                  4      ,          4       V P                  R\	        VPJ                  4      ,          4       V P                  R\	        VPL                  4      ,          4       V P                  R\	        VPN                  4      ,          4       V P                  R \	        VPP                  4      ,          4       V P                  R!\	        VPR                  4      ,          4       V P                  R"\	        VPT                  4      ,          4       V P                  R#\	        VPV                  4      ,          4       V\        PX                  8w  Edæ   V P                  R$VPZ                  ,          4       V P                  R%\!        VP\                  4      ,          4       V P                  R&VP^                  ,          4       V P                  R'VP`                  ,          4       V P                  R(VPb                  ,          4       V P                  R)VPd                  ,          4       V P                  R*VPf                  ,          4       V P                  R+VPh                  ,          4       V P                  R,VPj                  ,          4       V P                  R-VPl                  ,          4       V P                  R.VPn                  ,          4       V P                  R/VPp                  ,          4       V P                  R0VPr                  ,          4       V P                  R1VPt                  ,          4       V\        P                  8X  d.   V P                  R2\	        VPv                  4      ,          4       R3# R3# )4z%  dwVersion                   : 0x%x
z#  fBootMethod                 : %s
z#  fAdminConfigured            : %s
ú#  fAllowUpdate                : %s
z#  fDsAvailable                : %s
z#  pszServerName               : %s
z#  pszDsContainer              : %s
z#  aipServerAddrs              : %s
z#  aipListenAddrs              : %s
z#  aipForwarders               : %s
z#  dwLogLevel                  : %d
z#  dwDebugLevel                : %d
z#  dwForwardTimeout            : %d
z%  dwRpcPrototol               : 0x%x
z#  dwNameCheckFlag             : %s
z#  cAddressAnswerLimit         : %d
z#  dwRecursionRetry            : %d
z#  dwRecursionTimeout          : %d
z#  dwMaxCacheTtl               : %d
z#  dwDsPollingInterval         : %d
z#  dwScavengingInterval        : %d
z#  dwDefaultRefreshInterval    : %d
z#  dwDefaultNoRefreshInterval  : %d
z#  fAutoReverseZones           : %s
z#  fAutoCacheUpdate            : %s
z#  fRecurseAfterForwarding     : %s
z#  fForwardDelegations         : %s
z#  fNoRecursion                : %s
z#  fSecureResponses            : %s
z#  fRoundRobin                 : %s
z#  fLocalNetPriority           : %s
z#  fBindSecondaries            : %s
z#  fWriteAuthorityNs           : %s
z#  fStrictFileParsing          : %s
z#  fLooseWildcarding           : %s
z#  fDefaultAgingState          : %s
ú%  dwRpcStructureVersion       : 0x%x
z#  aipLogFilter                : %s
z#  pwszLogFilePath             : %s
z#  pszDomainName               : %s
z#  pszForestName               : %s
z#  pszDomainDirectoryPartition : %s
z#  pszForestDirectoryPartition : %s
z%  dwLocalNetPriorityNetMask   : 0x%x
z#  dwLastScavengeTime          : %d
z#  dwEventLogLevel             : %d
z#  dwLogFileMaxSize            : %d
z#  dwDsForestVersion           : %d
z#  dwDsDomainVersion           : %d
z#  dwDsDsaVersion              : %d
z#  fReadOnlyDC                 : %s
N)<ÚwriteÚ	dwVersionrl   ÚfBootMethodrX   ÚfAdminConfiguredÚfAllowUpdateÚfDsAvailableÚpszServerNameÚpszDsContainerr   ÚDNSSRV_TYPEID_SERVER_INFOr°   ÚaipServerAddrsÚaipListenAddrsÚaipForwardersr»   Ú
dwLogLevelÚdwDebugLevelÚdwForwardTimeoutÚdwRpcProtocolrs   ÚdwNameCheckFlagÚcAddressAnswerLimitÚdwRecursionRetryÚdwRecursionTimeoutÚdwMaxCacheTtlÚdwDsPollingIntervalÚdwScavengingIntervalÚdwDefaultRefreshIntervalÚdwDefaultNoRefreshIntervalÚfAutoReverseZonesÚfAutoCacheUpdateÚfRecurseAfterForwardingÚfForwardDelegationsÚfNoRecursionÚfSecureResponsesÚfRoundRobinÚfLocalNetPriorityÚfBindSecondariesÚfWriteAuthorityNsÚfStrictFileParsingÚfLooseWildcardingÚfDefaultAgingStateÚDNSSRV_TYPEID_SERVER_INFO_W2KÚdwRpcStructureVersionÚaipLogFilterÚpwszLogFilePathÚpszDomainNameÚpszForestNameÚpszDomainDirectoryPartitionÚpszForestDirectoryPartitionÚdwLocalNetPriorityNetMaskÚdwLastScavengeTimeÚdwEventLogLevelÚdwLogFileMaxSizeÚdwDsForestVersionÚdwDsDomainVersionÚdwDsDsaVersionÚfReadOnlyDC)ÚoutfÚtypeidÚ
serverinfos   &&&r$   Úprint_serverinfor    sñ  € Ø‡J�JÐ7¸*×:NÑ:NÕNÔOØ‡J�JÐ5Ô8JÈ:×KaÑKaÓ8bÕbÔcØ‡J�JÐ5¼ÀJ×D_ÑD_Ó8`Õ`ÔaØ‡J�JÐ5¼ÀJ×D[ÑD[Ó8\Õ\Ô]Ø‡J�JÐ5¼ÀJ×D[ÑD[Ó8\Õ\Ô]Ø‡J�JÐ5¸
×8PÑ8PÕPÔQØ‡J�JÐ5¸
×8QÑ8QÕQÔRà”×4Ñ4Ô4Ø�
‰
Ð9Ü# J×$=Ñ$=Ó>õ?ô 	@à�
‰
Ð9Ü# J×$=Ñ$=Ó>õ?ô 	@à�
‰
Ð9Ü# J×$<Ñ$<Ó=õ>õ 	?ð 	�
‰
Ð9Ü(¨×)BÑ)BÓCõDô 	Eà�
‰
Ð9Ü(¨×)BÑ)BÓCõDô 	Eà�
‰
Ð9Ü(¨×)AÑ)AÓBõCô 	Dð 	‡J�JÐ5¸
×8MÑ8MÕMÔNØ‡J�JÐ5¸
×8OÑ8OÕOÔPØ‡J�JÐ5¸
×8SÑ8SÕSÔTØ‡J�JÐ7¸*×:RÑ:RÕRÔSØ‡J�JÐ5Ô8NÈz×OiÑOiÓ8jÕjÔkØ‡J�JÐ5¸
×8VÑ8VÕVÔWØ‡J�JÐ5¸
×8SÑ8SÕSÔTØ‡J�JÐ5¸
×8UÑ8UÕUÔVØ‡J�JÐ5¸
×8PÑ8PÕPÔQØ‡J�JÐ5¸
×8VÑ8VÕVÔWØ‡J�JÐ5¸
×8WÑ8WÕWÔXØ‡J�JÐ5¸
×8[Ñ8[Õ[Ô\Ø‡J�JÐ5¸
×8]Ñ8]Õ]Ô^Ø‡J�JÐ5¼ÀJ×D`ÑD`Ó8aÕaÔbØ‡J�JÐ5¼ÀJ×D_ÑD_Ó8`Õ`ÔaØ‡J�JÐ5¼ÀJ×DfÑDfÓ8gÕgÔhØ‡J�JÐ5¼ÀJ×DbÑDbÓ8cÕcÔdØ‡J�JÐ5¼ÀJ×D[ÑD[Ó8\Õ\Ô]Ø‡J�JÐ5¼ÀJ×D_ÑD_Ó8`Õ`ÔaØ‡J�JÐ5¼ÀJ×DZÑDZÓ8[Õ[Ô\Ø‡J�JÐ5¼ÀJ×D`ÑD`Ó8aÕaÔbØ‡J�JÐ5¼ÀJ×D_ÑD_Ó8`Õ`ÔaØ‡J�JÐ5¼ÀJ×D`ÑD`Ó8aÕaÔbØ‡J�JÐ5¼ÀJ×DaÑDaÓ8bÕbÔcØ‡J�JÐ5¼ÀJ×D`ÑD`Ó8aÕaÔbØ‡J�JÐ5¼ÀJ×DaÑDaÓ8bÕbÔcà”×8Ñ8Õ8Ø�
‰
Ð;¸j×>^Ñ>^Õ^Ô_Ø�
‰
Ð9Ô<QÐR\×RiÑRiÓ<jÕjÔkØ�
‰
Ð9¸J×<VÑ<VÕVÔWØ�
‰
Ð9¸J×<TÑ<TÕTÔUØ�
‰
Ð9¸J×<TÑ<TÕTÔUØ�
‰
Ð9¸J×<bÑ<bÕbÔcØ�
‰
Ð9¸J×<bÑ<bÕbÔcà�
‰
Ð;¸j×>bÑ>bÕbÔcØ�
‰
Ð9¸J×<YÑ<YÕYÔZØ�
‰
Ð9¸J×<VÑ<VÕVÔWØ�
‰
Ð9¸J×<WÑ<WÕWÔXØ�
‰
Ð9¸J×<XÑ<XÕXÔYØ�
‰
Ð9¸J×<XÑ<XÕXÔYØ�
‰
Ð9¸J×<UÑ<UÕUÔVà”×4Ñ4Ô4Ø�
‰
Ð9¼KÈ
×H^ÑH^Ó<_Õ_Ö`ñ 5r-   c                 ó„  € V P                  R VP                  ,          4       V P                  R\        VP                  4      ,          4       V P                  R\	        VP
                  4      ,          4       V P                  R\        VP                  4      ,          4       V P                  R\	        VP                  4      ,          4       V P                  R\	        VP                  4      ,          4       V P                  R\	        VP                  4      ,          4       V P                  R\	        VP                  4      ,          4       V P                  RVP                  ,          4       V\        P                  8w  d-   V P                  R	\        VP                   4      ,          4       M+V P                  R	\#        VP                   4      ,          4       V P                  R
\%        VP&                  4      ,          4       V P                  R\)        VP*                  4      ,          4       V\        P                  8w  dX   V P                  R\        VP,                  4      ,          4       V P                  R\        VP.                  4      ,          4       MVV P                  R\#        VP,                  4      ,          4       V P                  R\#        VP.                  4      ,          4       V P                  R\	        VP0                  4      ,          4       V P                  R\	        VP2                  4      ,          4       V P                  R\	        VP4                  4      ,          4       V P                  RVP6                  ,          4       V P                  RVP8                  ,          4       V P                  RVP:                  ,          4       V\        P                  8w  d-   V P                  R\        VP<                  4      ,          4       M+V P                  R\#        VP<                  4      ,          4       V\        P>                  8w  Ed†   V P                  RVP@                  ,          4       V P                  RVPB                  ,          4       V P                  RVPD                  ,          4       V\        P                  8w  d-   V P                  R\        VPF                  4      ,          4       M+V P                  R\#        VPF                  4      ,          4       V P                  R\I        VPJ                  4      ,          4       V P                  RVPL                  ,          4       V P                  RVPN                  ,          4       V P                  RVPP                  ,          4       V P                  RVPR                  ,          4       V\        P                  8X  dÈ   V P                  R\	        VPT                  4      ,          4       V P                  R\	        VPV                  4      ,          4       V P                  R \	        VPX                  4      ,          4       V P                  R!VPZ                  ,          4       V P                  R"VP\                  ,          4       R## R## )$ú#  pszZoneName                 : %s
z#  dwZoneType                  : %s
z#  fReverse                    : %s
rÌ   z#  fPaused                     : %s
z#  fShutdown                   : %s
z#  fAutoCreated                : %s
z#  fUseDatabase                : %s
z#  pszDataFile                 : %s
z#  aipMasters                  : %s
z#  fSecureSecondaries          : %s
z#  fNotifyLevel                : %s
z#  aipSecondaries              : %s
z#  aipNotify                   : %s
z#  fUseWins                    : %s
z#  fUseNbstat                  : %s
z#  fAging                      : %s
z#  dwNoRefreshInterval         : %d
z#  dwRefreshInterval           : %d
z#  dwAvailForScavengeTime      : %d
z#  aipScavengeServers          : %s
rÍ   z#  dwForwarderTimeout          : %d
z#  fForwarderSlave             : %d
z#  aipLocalMasters             : %s
ú#  dwDpFlags                   : %s
ú#  pszDpFqdn                   : %s
z#  pwszZoneDn                  : %s
z#  dwLastSuccessfulSoaCheck    : %d
z#  dwLastSuccessfulXfr         : %d
z#  fQueuedForBackgroundLoad    : %s
z#  fBackgroundLoadInProgress   : %s
z#  fReadOnlyZone               : %s
z#  dwLastXfrAttempt            : %d
z#  dwLastXfrResult             : %d
N)/rÎ   ÚpszZoneNamer}   Ú
dwZoneTyperX   ÚfReverserƒ   rÒ   ÚfPausedÚ	fShutdownÚfAutoCreatedÚfUseDatabaseÚpszDataFiler   ÚDNSSRV_TYPEID_ZONE_INFOr°   Ú
aipMastersr»   rŠ   ÚfSecureSecondariesr�   ÚfNotifyLevelÚaipSecondariesÚ	aipNotifyÚfUseWinsÚ
fUseNbstatÚfAgingÚdwNoRefreshIntervalÚdwRefreshIntervalÚdwAvailForScavengeTimeÚaipScavengeServersÚDNSSRV_TYPEID_ZONE_INFO_W2Krõ   ÚdwForwarderTimeoutÚfForwarderSlaveÚaipLocalMastersrš   Ú	dwDpFlagsÚ	pszDpFqdnÚ
pwszZoneDnÚdwLastSuccessfulSoaCheckÚdwLastSuccessfulXfrÚfQueuedForBackgroundLoadÚfBackgroundLoadInProgressÚfReadOnlyZoneÚdwLastXfrAttemptÚdwLastXfrResult)r  r  Úzoneinfos   &&&r$   Úprint_zoneinfor0  P  sç  € Ø‡J�JÐ5¸×8LÑ8LÕLÔMØ‡J�JÐ5Ô8HÈ×I\ÑI\Ó8]Õ]Ô^Ø‡J�JÐ5¼ÀH×DUÑDUÓ8VÕVÔWØ‡J�JÐ5Ô8JÈ8×K`ÑK`Ó8aÕaÔbØ‡J�JÐ5¼ÀH×DTÑDTÓ8UÕUÔVØ‡J�JÐ5¼ÀH×DVÑDVÓ8WÕWÔXØ‡J�JÐ5¼ÀH×DYÑDYÓ8ZÕZÔ[Ø‡J�JÐ5¼ÀH×DYÑDYÓ8ZÕZÔ[Ø‡J�JÐ5¸×8LÑ8LÕLÔMØ”×2Ñ2Ô2Ø�
‰
Ð9Ü# H×$7Ñ$7Ó8õ9õ 	:ð 	�
‰
Ð9Ü(¨×)<Ñ)<Ó=õ>ô 	?à‡J�JÐ5Ô8VÐW_×WrÑWrÓ8sÕsÔtØ‡J�JÐ5Ô8PÐQY×QfÑQfÓ8gÕgÔhØ”×2Ñ2Ô2Ø�
‰
Ð9Ü# H×$;Ñ$;Ó<õ=ô 	>à�
‰
Ð9Ü# H×$6Ñ$6Ó7õ8õ 	9ð 	�
‰
Ð9Ü(¨×)@Ñ)@ÓAõBô 	Cà�
‰
Ð9Ü(¨×);Ñ);Ó<õ=ô 	>à‡J�JÐ5¼ÀH×DUÑDUÓ8VÕVÔWØ‡J�JÐ5¼ÀH×DWÑDWÓ8XÕXÔYØ‡J�JÐ5¼ÀHÇOÁOÓ8TÕTÔUØ‡J�JÐ5¸×8TÑ8TÕTÔUØ‡J�JÐ5¸×8RÑ8RÕRÔSØ‡J�JÐ5¸×8WÑ8WÕWÔXØ”×2Ñ2Ô2Ø�
‰
Ð9Ü# H×$?Ñ$?Ó@õAõ 	Bð 	�
‰
Ð9Ü(¨×)DÑ)DÓEõFô 	Gð ”×6Ñ6Õ6Ø�
‰
Ð;¸h×>\Ñ>\Õ\Ô]Ø�
‰
Ð9¸H×<WÑ<WÕWÔXØ�
‰
Ð9¸H×<TÑ<TÕTÔUØ”Y×6Ñ6Ô6Ø�J‰JÐ=Ü'¨×(@Ñ(@ÓAõBõ Cð �J‰JÐ=Ü,¨X×-EÑ-EÓFõGô Hà�
‰
Ð9¼OÈH×L^ÑL^Ó<_Õ_Ô`Ø�
‰
Ð9¸H×<NÑ<NÕNÔOØ�
‰
Ð9¸H×<OÑ<OÕOÔPØ�
‰
Ð9¸H×<]Ñ<]Õ]Ô^Ø�
‰
Ð9¸H×<XÑ<XÕXÔYà”×2Ñ2Ô2Ø�
‰
Ð9¼KÈ×HiÑHiÓ<jÕjÔkØ�
‰
Ð9¼KÈ×HjÑHjÓ<kÕkÔlØ�
‰
Ð9¼KÈ×H^ÑH^Ó<_Õ_Ô`Ø�
‰
Ð9¸H×<UÑ<UÕUÔVØ�
‰
Ð9¸H×<TÑ<TÕTÖUñ 3r-   c                 ó  € V P                  R VP                  ,          4       V P                  R\        VP                  4      ,          4       V P                  R\	        VP
                  4      ,          4       V P                  RVP                  ,          4       V\        P                  8w  dP   V P                  R\        VP                  4      ,          4       V P                  RVP                  ,          4       R# R# )r	  z#  Flags                       : %s
z#  ZoneType                    : %s
z#  Version                     : %s
r
  r  N)rÎ   r  r¦   ÚFlagsr}   ÚZoneTypeÚVersionr   ÚDNSSRV_TYPEID_ZONE_W2Krš   r%  r&  )r  r  Úzones   &&&r$   Ú
print_zoner7  ‘  s¬   € Ø‡J�JÐ5¸×8HÑ8HÕHÔIØ‡J�JÐ5Ô8IÈ$Ï*É*Ó8UÕUÔVØ‡J�JÐ5Ô8HÈÏÉÓ8WÕWÔXØ‡J�JÐ5¸¿¹ÕDÔEà”×1Ñ1Ô1Ø�
‰
Ð9¼OÈDÏNÉNÓ<[Õ[Ô\Ø�
‰
Ð9¸D¿N¹NÕJÖKñ 2r-   c                 óª   € V P                  R VP                  ,          4       VP                   F   pV P                  R4       \        WV4       K"  	  R# )z  %d zone(s) found
Ú
N)rÎ   ÚdwZoneCountÚ	ZoneArrayr7  )r  r  Úzonesr6  s   &&& r$   Úprint_enumzonesr=  œ  s>   € Ø‡J�JÐ%¨×(9Ñ(9Õ9Ô:Ø—”ˆØ�
‰
�4ÔÜ�4 Ö&ó  r-   c                 ó  € VP                   \        P                  8X  d   R VP                  ,          pEMVP                   \        P                  8X  d   RVP                  ,          pEMßVP                   \        P
                  8X  d    RVP                  P                  ,          pEM¡VP                   \        P                  8X  d    RVP                  P                  ,          pEMcVP                   \        P                  8X  d    RVP                  P                  ,          pEM%VP                   \        P                  8X  d³   RVP                  P                  VP                  P                  VP                  P                  VP                  P                  VP                  P                  VP                  P                  P                  VP                  P                   P                  3,          pEMTVP                   \        P"                  8X  d?   RVP                  P$                  P                  VP                  P&                  3,          pM÷VP                   \        P(                  8X  di   RVP                  P*                  P                  VP                  P,                  VP                  P.                  VP                  P0                  3,          pMpVP                   \        P2                  8X  dP   VP                  P                   Uu. uF  pRVP                  ,          NK  	  ppR	R
P5                  V4      ,          pMRpV P7                  RW!P8                  VP:                  VP<                  3,          4       R# u upi )zA: %szAAAA: %szPTR: %szNS: %sz	CNAME: %szKSOA: serial=%d, refresh=%d, retry=%d, expire=%d, minttl=%d, ns=%s, email=%szMX: %s (%d)zSRV: %s (%d, %d, %d)z"%s"zTXT: %sÚ,z	Unknown: z%    %s (flags=%x, serial=%d, ttl=%d)
N)ÚwTyper   Ú
DNS_TYPE_AÚdataÚDNS_TYPE_AAAAÚDNS_TYPE_PTRÚstrÚDNS_TYPE_NSÚDNS_TYPE_CNAMEÚDNS_TYPE_SOAÚ
dwSerialNoÚ	dwRefreshÚdwRetryÚdwExpireÚdwMinimumTtlÚNamePrimaryServerÚZoneAdministratorEmailÚDNS_TYPE_MXÚnameExchangeÚwPreferenceÚDNS_TYPE_SRVÚ
nameTargetÚwPortÚ	wPriorityÚwWeightÚDNS_TYPE_TXTÚjoinrÎ   ÚdwFlagsÚdwSerialÚdwTtlSeconds)r  ÚrecÚmesgr@   Úslists   &&   r$   Úprint_dns_recordr`  £  sQ  € Ø
‡y�y”D—O‘OÔ#Ø˜#Ÿ(™(Õ#ŠØ	�‰”d×(Ñ(Ô	(Ø˜SŸX™XÕ&ŠØ	�‰”d×'Ñ'Ô	'Ø˜CŸH™HŸL™LÕ)ŠØ	�‰”d×&Ñ&Ô	&Ø˜3Ÿ8™8Ÿ<™<Õ(ŠØ	�‰”d×)Ñ)Ô	)Ø˜cŸh™hŸl™lÕ+ŠØ	�‰”d×'Ñ'Ô	'Ø\Ø—H‘H×'Ñ'Ø—H‘H×&Ñ&Ø—H‘H×$Ñ$Ø—H‘H×%Ñ%Ø—H‘H×)Ñ)Ø—H‘H×.Ñ.×2Ñ2Ø—H‘H×3Ñ3×7Ñ7ð`9õ 9Šð 
�‰”d×&Ñ&Ô	&Ø §¡× 5Ñ 5× 9Ñ 9¸3¿8¹8×;OÑ;OÐPÕP‰Ø	�‰”d×'Ñ'Ô	'Ø%¨¯©×)<Ñ)<×)@Ñ)@À#Ç(Á(Ç.Á.Ø),¯©×);Ñ);¸S¿X¹X×=MÑ=Mð)Oõ O‰à	�‰”d×'Ñ'Ô	'Ø/2¯x©x¯|ª|Ó<©| t�˜$Ÿ(™(×"Ð"©|ˆÐ<Ø˜3Ÿ8™8 E›?Õ*‰àˆØ‡J�JÐ7Ø—k‘k 3§<¡<°×1AÑ1Að;Cõ Cö Dùò	 =s   ÌNc                 óî   € VP                    Fd  pV P                  R VP                  P                  VP                  VP
                  3,          4       VP                   F  p\        W4       K  	  Kf  	  R# )z#  Name=%s, Records=%d, Children=%d
N)r]  rÎ   ÚdnsNodeNamerE  ÚwRecordCountÚdwChildCountÚrecordsr`  )r  re  r]  Údns_recs   &&  r$   Úprint_dnsrecordsrg  Å  s`   € Ø�{Œ{ˆØ�
‰
Ð9Ø—O‘O×'Ñ'Ø×$Ñ$Ø×$Ñ$ð=&õ &ô 	'ð —{”{ˆGÜ  Ö/ó #ó r-   c                 ól   €  \        W4      pV#   \         d   p\        TP                  !  R hR p?ii ; ir)   )r   r   r   r4   )Úrecord_typerB  r]  r#   s   &&  r$   Údata_to_dns_recordrj  Ð  s;   € ð.Ü  Ó3ˆð €Jøô ô .Ü˜AŸF™FÑ#¨Ð-ûð.ús   ‚ �3š.®3c            	       ó¦   a € ] tR tRt o RtRtR.tR]P                  R]P                  R]P                  /t]! RR	R
R. RORR7      .tRR ltRtV tR# )Úcmd_serverinfoiÙ  zQuery for Server information.ú%prog <server> [options]r   Ú	sambaoptsÚversionoptsÚcredoptsú--client-versionúClient VersionÚlonghornúw2k|dotnet|longhornÚcli_ver©ÚhelpÚdefaultÚmetavarÚchoicesÚdestNc                ó   € VP                  4       V n        VP                  V P                  4      V n        \	        WP                  V P                  4      p\        V4      pVP                  V^ VRR4      w  r‰\        V P                  W‰4       R# )r   NÚ
ServerInfo)	Úget_loadparmr   Úget_credentialsr    r'   rÊ   r;   r  r  )
r*   r   ru  rn  rp  ro  r"   rÉ   r  Úress
   &&&&&&    r$   ÚrunÚcmd_serverinfo.runì  sr   € à×(Ñ(Ó*ˆŒØ×-Ñ-¨d¯g©gÓ6ˆŒ
Ü! &¯'©'°4·:±:Ó>ˆä+¨GÓ4ˆà×+Ñ+¨N¸A¸vØ,0°,ó@‰ˆä˜Ÿ™ FÖ0r-   ©r    r   ©Úw2kÚdotnetrs  ©NNN©rC   rD   rE   rF   rG   ÚsynopsisÚ
takes_argsÚoptionsÚSambaOptionsÚVersionOptionsÚCredentialsOptionsÚtakes_optiongroupsr   Útakes_optionsr�  rM   rN   rO   s   @r$   rl  rl  Ù  sl   ø‡ € Ù'à)€Hà�€Jð 	�W×)Ñ)Ø�w×-Ñ-Ø�G×.Ñ.ðÐñ 	Ð!Ð(8Ø!Ð+@Ú4¸9ô	Fð€M÷
1ò 
1r-   rl  c           
     óÄ   € V  FY  w  r4rVRVP                  4       ,           p\        VV RV RV R2RVR7      pVP                  V4       VP                  W5Wg34       K[  	  R# )z$Generate options for cmd_zoneoptionsz--r2   Ú-r3   Úint)rw  Útyper{  N)r   r   r¬   )	Útabler�  Úinteger_propertiesÚkÚdocÚ_minÚ_maxÚoÚopts	   &&&      r$   Ú_add_integer_optionsr�  ù  sl   € ã#Ñˆ�Ø�1—7‘7“9ÕˆÜ�aØ!˜U " T F¨!¨D¨6°Ð3Ø Øôˆð 	×Ñ˜SÔ!Ø×!Ñ! 1¨DÐ"4Ö5ó $r-   c                   ó.  a € ] tR tRt o RtRtRR.tR]P                  R]P                  R]P                  /t]! R	R
RR. R$ORR7      ]! RRRR7      ]! RRRR7      ]! RRRR7      ]! RRRRR7      .t. t]! . R%O]]4       R&R ltR tR  tR! tR" tR#tV tR# )'Úcmd_zoneoptionsi  zChange zone aging options.ú%prog <server> <zone> [options]r   r6  rn  ro  rp  rq  rr  rs  rt  ru  rv  z--mark-old-records-staticz
YYYY-MM-DDz0Make records older than this (YYYY-MM-DD) static)ry  rw  z--mark-records-static-regexÚREGEXPz4Make records matching this regular expression staticz--mark-records-dynamic-regexz5Make records matching this regular expression dynamicz-nz	--dry-runÚ
store_truez,Don't change anything, say what would happen)Úactionrw  Nc                óü  € VP                  4       V n        VP                  V P                  4      V n        \	        WP                  V P                  4      p\        V4      p\        P                  pV P                   FÞ  w  ppppVP                  V4      f   K  W¿,          pVe   VV8  d   \        V RV 24      hVe   VV8”  d   \        V RV 24      h\        P                  ! 4       pVVn        VVn        V'       d#   \        RV RV RV 2V P                  R7       K¨   VP!                  V^ VV^ RVV4       \        R	T RT 2T P                  R7       Kà  	  ^ pVV	V
3 F  pVf   K	  V^,          pK  	  V^8”  d   \        R
4      hVe   V P%                  WVV4       V	e   V P'                  VVV	V4       V
e   V P)                  VVV
V4       R # R #   \"         d   p\        RT RT 24      R hR p?ii ; i)Nz must be at least z can't exceed z
would set z to z for ©ÚfileÚResetDwordPropertyzCould not set zSet z(Multiple --mark-* options will not work
)r~  r   r  r    r'   rÊ   r   ÚDNSSRV_TYPEID_NAME_AND_PARAMr–  Úgetr   ÚDNS_RPC_NAME_AND_PARAMÚdwParamÚpszNodeNameÚprintr  r<   r   Úmark_old_records_staticÚmark_records_static_regexÚmark_records_dynamic_regex)r*   r   r6  ru  rn  rp  ro  Údry_runr®  r¯  r°  Úkwargsr"   rÉ   Únap_typer—  r™  rš  r›  ÚvÚ
name_paramr#   Ún_mark_optionsrº   s   &&&&&&&&&&&,            r$   r�  Úcmd_zoneoptions.run5  s+  € ð ×(Ñ(Ó*ˆŒØ×-Ñ-¨d¯g©gÓ6ˆŒ
Ü! &¯'©'°4·:±:Ó>ˆä+¨GÓ4ˆÜ×9Ñ9ˆà $× 7Ô 7ÑˆAˆt�T˜1Ø�z‰z˜!‹}Ò$ÙØ•	ˆAØÒ A¨¤HÜ" a SÐ(:¸4¸&Ð#AÓBÐBØÒ A¨¤HÜ" a S¨°t°fÐ#=Ó>Ð>ä"×9Ò9Ó;ˆJØ!"ˆJÔØ%&ˆJÔ"ßÜ˜
 1 # T¨!¨¨E°$°Ð8¸t¿y¹yÕIÙð
JØ×)Ñ)¨.Ø*+Ø*0Ø*.Ø*+Ø*>Ø*2Ø*4ô6ô �D˜˜˜4 ˜sÐ#¨$¯)©)×4ñ7 !8ð@ ˆØ)Ø+Ø,ó.ˆAð Œ}Ø !Õ#’ñ	.ð ˜AÔÜÐJÓKÐKà"Ò.Ø×(Ñ(¨Ø)@Ø)0ô2ð %Ò0Ø×*Ñ*¨6Ø+/Ø+DØ+2ô4ð
 &Ò1Ø×+Ñ+¨FØ,0Ø,FØ,3ö5ñ 2øô; ô JÜ" ^°A°3°d¸1¸#Ð#>Ó?ÀTÐIûðJús   Ä&GÇG;Ç$G6Ç6G;c                óâ   € \        R V,          \        4       V P                  V P                  R7      pRV RVP	                  4        2pVP                  V\        P                  RRR.R7      pW53# )ú	ldap://%s©ÚurlÚsession_infoÚcredentialsr   zDC=z#,CN=MicrosoftDNS,DC=DomainDNSZones,z/(&(objectClass=dnsNode)(!(dNSTombstoned=TRUE)))Ú	dnsRecordr@   )ÚbaseÚscopeÚ
expressionÚattrs)r   r   r    r   Úget_default_basednÚsearchÚldbÚSCOPE_SUBTREE)r*   r   Ú	zone_nameÚsamdbÚzone_dnÚnodess   &&&   r$   Ú_get_dns_nodesÚcmd_zoneoptions._get_dns_nodes~  s€   € Ü˜+¨Õ.Ü#1Ó#3Ø"&§*¡*°·±ô:ˆð ˜˜Ð#FØ×.Ñ.Ó0Ð1ð3ˆð —‘ 'Ü#&×#4Ñ#4ð*Dà$/°Ð#8ð	 ó :ˆð
 ˆ|Ðr-   c                óî  €  \         P                  ! VR 4      p\         P                  ! V4      p\
        P                  ! \        T4      4      pT P                  Y4      w  ršT
 EFk  pRT9  d   K  \        TR,          4      p^ p\        T4       Fb  w  rï\        \        P                  T4      pTP                  T8  g   K2  TP                  ^ 8w  g   KE  ^ Tn        \        T4      YÎ&   T^,          pKd  	  T^ 8X  d   K›  TR,          ^ ,          P!                  4       pT'       d0   \#        RT R\%        T4       RT R	T R	2	T P&                  R
7       Kð  \(        P*                  P-                  T	RTP.                  RT/\(        P0                  4      pT	P3                  T4       \#        RT R\%        T4       RT R	T R	2	T P&                  R
7       EKn  	  R#   \         d   p\	        RT R24      hRp?ii ; i)z%Y-%m-%dzInvalid date z: should be YYY-MM-DDNr¾  r@   úwould make Ú/ú records static on Ú.r¥  Údnúmade )ÚtimeÚstrptimeÚmktimeÚ
ValueErrorr   r   Úunix_to_dns_timestampr“  rË  ÚlistÚ	enumerater
   r   ÚDnssrvRpcRecordÚdwTimeStampr   Údecoder­  Úlenr  rÅ  ÚMessageÚ	from_dictrÒ  ÚFLAG_MOD_REPLACEÚmodify)r*   r   rÇ  Údate_stringr±  ÚtsÚtr#   Ú	thresholdrÈ  rÊ  ÚnodeÚvaluesÚchangesr®   r´  r]  r@   Úmsgs   &&&&&              r$   r®  Ú'cmd_zoneoptions.mark_old_records_static�  sÎ  € ð	SÜ—’˜{¨JÓ7ˆBÜ—’˜B“ˆAô ×2Ò2´3°q³6Ó:ˆ	à×*Ñ*¨6Ó=‰ˆäˆDØ $Ô&Ùä˜$˜{Õ+Ó,ˆFØˆGÜ! &Ö)‘�Ü ¤×!5Ñ!5°qÓ9�Ø—?‘? YÖ.°3·?±?ÀaÖ3GØ&'�C”OÜ (¨£�F‘IØ˜q•L’Gñ *ð ˜!Œ|Ùà˜•< •?×)Ñ)Ó+ˆDçÜ˜ G 9¨A¬c°&«k¨]ð ;Ø ˜6  9 +¨Qð0Ø6:·i±iõAáä—+‘+×'Ñ'¨Ø)-¨t¯w©wØ)4°fð)*ô ),×(<Ñ(<ó	>ˆCð
 �L‰L˜ÔÜ�E˜'˜ !¤C¨£K =Ð0CØ�F˜!˜I˜; að)Ø/3¯y©y÷:ð :ó; øô ô 	SÜ ¨{¨mÐ;PÐQÓRÐRûð	Sús   ‚-G ÇG4Ç G/Ç/G4c                ón  € \         P                  ! V4      pV P                  W4      w  rgV EF„  pVR,          ^ ,          P                  4       p	VP	                  V	4      '       g   K;  RV9  d   KD  \        VR,          4      p
\        V
4      ^ 8X  d   Kh  ^ p\        V
4       FO  w  rÍ\        \        P                  V4      pVP                  ^ 8w  g   K2  ^ Vn        \        V4      W¬&   V^,          pKQ  	  V^ 8X  d   KÑ  V'       d1   \        RV R\        V
4       RV	 RV R2	V P                  R7       EK	  \        P                   P#                  VRVP$                  RV
/\        P&                  4      pVP)                  V4       \        R	V R\        V
4       RV	 RV R2	V P                  R7       EK‡  	  R
# )z>Make the records of nodes with matching names static.
        r@   r¾  rÎ  rÏ  rÐ  rÑ  r¥  rÒ  rÓ  N)ÚreÚcompilerË  rÝ  rÄ  rÙ  rÞ  rÚ  r
   r   rÛ  rÜ  r   r­  r  rÅ  rß  rà  rÒ  rá  râ  )r*   r   rÇ  Úregexr±  ÚrrÈ  rÊ  rç  r@   rè  ré  r®   r´  r]  rê  s   &&&&&           r$   r¯  Ú)cmd_zoneoptions.mark_records_static_regex·  s‘  € ô �JŠJ�uÓˆØ×*Ñ*¨6Ó=‰ˆäˆDØ˜•< •?×)Ñ)Ó+ˆDØ—8‘8˜D—>’>ÙØ $Ô&Ùä˜$˜{Õ+Ó,ˆFÜ�6‹{˜aÔÙàˆGÜ! &Ö)‘�Ü ¤×!5Ñ!5°qÓ9�Ø—?‘? aÖ'Ø&'�C”OÜ (¨£�F‘IØ˜q•L’Gñ *ð ˜!Œ|ÙçÜ˜ G 9¨A¬c°&«k¨]ð ;Ø ˜6  9 +¨Qð0Ø6:·i±iõAâä—+‘+×'Ñ'¨Ø)-¨t¯w©wØ)4°fð)*ô ),×(<Ñ(<ó	>ˆCð
 �L‰L˜ÔÜ�E˜'˜ !¤C¨£K =Ð0CØ�F˜!˜I˜; að)Ø/3¯y©y÷:ð :óC r-   c                ó\  € \         P                  ! V4      pV P                  W4      w  rg\        P                  ! 4       p\        P
                  ! \        V4      4      p	\        P                  \        P                  \        P                  0p
V EF˜  pVR,          ^ ,          P                  4       pVP                  V4      '       g   K;  RV9  d   KD  \        VR,          4      p\        V4      ^ 8X  d   Kh  ^ p\        V4       Fc  w  pp\!        \        P"                  V4      pVP$                  V
9   g   K3  VP&                  ^ 8X  g   KF  V	Vn        \)        V4      Wß&   V^,          pKe  	  V^ 8X  d   Kå  V'       d1   \+        RV R\        V4       RV RV R2	V P,                  R7       EK  \.        P0                  P3                  VRVP4                  RV/\.        P6                  4      pVP9                  V4       \+        R	V R\        V4       RV RV R2	V P,                  R7       EK›  	  R
# )z‹Make the records of nodes with matching names dynamic, with a
current timestamp. In this case we only adjust the A, AAAA,
and TXT records.
r@   r¾  rÎ  rÏ  z records dynamic on rÑ  r¥  rÒ  rÓ  N)rí  rî  rË  rÔ  r   rØ  r“  r   rA  rC  rX  rÝ  rÄ  rÙ  rÞ  rÚ  r
   rÛ  r@  rÜ  r   r­  r  rÅ  rß  rà  rÒ  rá  râ  )r*   r   rÇ  rï  r±  rð  rÈ  rÊ  ÚnowÚdns_timestampÚsafe_wtypesrç  r@   rè  ré  r®   r´  r]  rê  s   &&&&&              r$   r°  Ú*cmd_zoneoptions.mark_records_dynamic_regexá  sß  € ô
 �JŠJ�uÓˆØ×*Ñ*¨6Ó=‰ˆÜ�iŠi‹kˆÜ ×6Ò6´s¸3³xÓ@ˆä�O‰OÜ×ÑÜ×Ñð
ˆô ˆDØ˜•< •?×)Ñ)Ó+ˆDØ—8‘8˜D—>’>ÙØ $Ô&Ùä˜$˜{Õ+Ó,ˆFÜ�6‹{˜aÔÙàˆGÜ! &Ö)‘��1Ü ¤×!5Ñ!5°qÓ9�Ø—9‘9 Ö+°·±À1Ö0DØ&3�C”OÜ (¨£�F‘IØ˜q•L’Gñ *ð ˜!Œ|ÙçÜ˜ G 9¨A¬c°&«k¨]ð ;Ø ˜6  9 +¨Qð0Ø6:·i±iõAâä—+‘+×'Ñ'¨Ø)-¨t¯w©wØ)4°fð)*ô ),×(<Ñ(<ó	>ˆCð
 �L‰L˜ÔÜ�E˜'˜ !¤C¨£K =Ð0DØ�F˜!˜I˜; að)Ø/3¯y©y÷:ð :óC r-   rƒ  r„  ))ÚAgingzEnable record agingr   é   )ÚNoRefreshIntervalz3Aging no refresh interval in hours (0: use default)r   é0V )ÚRefreshIntervalz0Aging refresh interval in hours (0: use default)r   rú  )NNNFNNN)rC   rD   rE   rF   rG   r‰  rŠ  r‹  rŒ  r�  rŽ  r�  r   r�  r–  r�  r�  rË  r®  r¯  r°  rM   rN   rO   s   @r$   rŸ  rŸ    sí   ø‡ € Ù$à0€Hà˜FÐ#€Jð 	�W×)Ñ)Ø�w×-Ñ-Ø�G×.Ñ.ðÐñ 	Ð!Ð(8Ø!Ð+@Ú4¸9ô	Fñ 	Ð*°LØFô	HáÐ,°hØJô	LáÐ-°xØKô	Máˆt�[¨ØBô	Dð€Mð Ðñ ò 	ð 'Ø+ô-ôF5òRò(:òT(:÷T1:ð 1:r-   rŸ  c            	       ó¨   a € ] tR tRt o RtRtRR.tR]P                  R]P                  R]P                  /t]! R	R
RR. RORR7      .tRR ltRtV tR# )Úcmd_zoneinfoi  zQuery for zone information.r   r   r6  rn  ro  rp  rq  rr  rs  rt  ru  rv  Nc                ó  € VP                  4       V n        VP                  V P                  4      V n        \	        WP                  V P                  4      p\        V4      pVP                  V^ WR4      w  rš\        V P                  Wš4       R# )r   ÚZoneInfoN)	r~  r   r  r    r'   rÊ   r;   r0  r  )r*   r   r6  ru  rn  rp  ro  r"   rÉ   r  r€  s   &&&&&&&    r$   r�  Úcmd_zoneinfo.run(  so   € à×(Ñ(Ó*ˆŒØ×-Ñ-¨d¯g©gÓ6ˆŒ
Ü! &¯'©'°4·:±:Ó>ˆä+¨GÓ4ˆà×+Ñ+¨N¸A¸vØ,6ó8‰ˆä�t—y‘y &Ö.r-   rƒ  r„  r‡  rˆ  rO   s   @r$   rý  rý    so   ø‡ € Ù%à0€Hà˜FÐ#€Jð 	�W×)Ñ)Ø�w×-Ñ-Ø�G×.Ñ.ðÐñ 	Ð!Ð(8Ø!Ð+@Ú4¸9ô	Fð€M÷
/ò 
/r-   rý  c                   óV  a € ] tR tRt o RtRtR.tR]P                  R]P                  R]P                  /t]! RR	R
R. R+ORR7      ]! RRRRR7      ]! RRRRR7      ]! RRRRR7      ]! RRRRR7      ]! RRRRR7      ]! RR RR!R7      ]! R"R#RR$R7      ]! R%R&RR'R7      .	tR,R) ltR*tV tR(# )-Úcmd_zonelisti5  zQuery for zones.rm  r   rn  ro  rp  rq  rr  rs  rt  ru  rv  z	--primaryzList primary zones (default)r¢  Úprimary©rw  r£  r{  z--secondaryzList secondary zonesÚ	secondaryú--cachezList cached zonesÚcachez--autoz List automatically created zonesÚautoz	--forwardzList forward zonesÚforwardz	--reversezList reverse zonesÚreversez--dszList directory integrated zonesÚdsz--non-dszList non-directory zonesÚnondsNc           	     óÒ  € ^ pV'       d   V\         P                  ,          pV'       d   V\         P                  ,          pV'       d   V\         P                  ,          pV'       d   V\         P                  ,          pV'       d   V\         P
                  ,          pV'       d   V\         P                  ,          pV	'       d   V\         P                  ,          pV
'       d   V\         P                  ,          pV^ 8X  d   \         P                  pVP                  4       V n
        VP                  V P                  4      V n        \        WP                  V P                  4      p\        V4      pVP                  V^ VRR\         P                   V4      w  ppV\         P"                  8X  d   \         P$                  pM\         P&                  p\)        V P*                  VV4       R# )r   NÚ	EnumZones)r   ÚDNS_ZONE_REQUEST_PRIMARYÚDNS_ZONE_REQUEST_SECONDARYÚDNS_ZONE_REQUEST_CACHEÚDNS_ZONE_REQUEST_AUTOÚDNS_ZONE_REQUEST_FORWARDÚDNS_ZONE_REQUEST_REVERSEÚDNS_ZONE_REQUEST_DSÚDNS_ZONE_REQUEST_NON_DSr~  r   r  r    r'   rÊ   r/   ÚDNSSRV_TYPEID_DWORDrÄ   r5  ÚDNSSRV_TYPEID_ZONEr=  r  )r*   r   ru  r  r  r  r  r	  r
  r  r  rn  rp  ro  Úrequest_filterr"   rÉ   r  r€  s   &&&&&&&&&&&&&&     r$   r�  Úcmd_zonelist.runX  s[  € ð ˆçØœi×@Ñ@Õ@ˆNßØœi×BÑBÕBˆNßØœi×>Ñ>Õ>ˆNßØœi×=Ñ=Õ=ˆNßØœi×@Ñ@Õ@ˆNßØœi×@Ñ@Õ@ˆNßØœi×;Ñ;Õ;ˆNßØœi×?Ñ?Õ?ˆNà˜QÔÜ&×?Ñ?ˆNà×(Ñ(Ó*ˆŒØ×-Ñ-¨d¯g©gÓ6ˆŒ
Ü! &¯'©'°4·:±:Ó>ˆä+¨GÓ4ˆà×6Ñ6°~Ø78¸&À$Ø7BÜ7@×7TÑ7TØ7Eó	G‰ˆ�ð œY×=Ñ=Ô=Ü×5Ñ5‰Fä×1Ñ1ˆFÜ˜Ÿ	™	 6¨3Ö/r-   rƒ  r„  )FFFFFFFFNNNrˆ  rO   s   @r$   r  r  5  sþ   ø‡ € Ùà)€Hà�€Jð 	�W×)Ñ)Ø�w×-Ñ-Ø�G×.Ñ.ðÐñ 	Ð!Ð(8Ø!Ð+@Ú4¸9ô	Fñ 	ˆ{Ð!?Ø"¨ô	4áˆ}Ð#9Ø"¨ô	6áˆyÐ2Ø"¨ô	2áˆxÐ@Ø"¨ô	1áˆ{Ð!5Ø"¨ô	4áˆ{Ð!5Ø"¨ô	4áˆvÐ=Ø"¨ô	/áˆzÐ :Ø"¨ô	2ð%€M÷,)0ò )0r-   r  c            
       óÆ   a € ] tR tRt o RtRtRR.tR]P                  R]P                  R]P                  /t]! R	R
RR. RORR7      ]! RRRRRR.RR7      .tRR ltRtV tR# )Úcmd_zonecreatei„  zCreate a zone.r   r   r6  rn  ro  rp  rq  rr  rs  rt  ru  rv  z--dns-directory-partitionz†Specify the naming context for the new zone, which affects the replication scope (domain or forest wide replication, default: domain).Údomainzdomain|forestÚforestÚdns_dpNc                óô  € VP                  4       V n        VP                  V P                  4      V n        \	        WP                  V P                  4      pVP                  4       p\        P                  p	VR 8X  d   \        P                  p	\        V4      p
V
\        P                  8X  dW   \        P                  p\        P                  ! 4       pW,n        \        P                  Vn        ^ Vn        ^Vn        ^Vn        MÌV
\        P(                  8X  d]   \        P*                  p\        P,                  ! 4       pW,n        \        P                  Vn        ^ Vn        ^Vn        ^Vn        Wœn        M[\        P0                  p\        P2                  ! 4       pW,n        \        P                  Vn        ^ Vn        ^Vn        ^Vn        Wœn        VP5                  V
^ VR^ RVV4       \        P6                  p\        P8                  ! 4       pRVn        \        P<                  Vn        \@        PB                  RV R2/pVP5                  V
^ W^ RVWÞR7	       V PD                  PG                  RV,          4       R# )	r  NÚ
ZoneCreateÚAllowUpdatezZone "z" already exists.r§  ©r0   zZone %s created successfully
)$r~  r   r  r    r'   r   r   r”   r•   rÊ   rÄ   ÚDNSSRV_TYPEID_ZONE_CREATE_W2KÚDNS_RPC_ZONE_CREATE_INFO_W2Kr  r   rv   r  r  ÚfDsIntegratedÚfLoadExistingrÅ   Ú DNSSRV_TYPEID_ZONE_CREATE_DOTNETÚDNS_RPC_ZONE_CREATE_INFO_DOTNETr%  ÚDNSSRV_TYPEID_ZONE_CREATEÚ!DNS_RPC_ZONE_CREATE_INFO_LONGHORNr<   r¨  rª  r¬  r�   r«  r   rI   r  rÎ   )r*   r   r6  ru  r  rn  rp  ro  r"   Údns_directorypartitionrÉ   r  Úzone_create_infoÚname_and_paramr0   s   &&&&&&&&       r$   r�  Úcmd_zonecreate.runŸ  s(  € ð ×(Ñ(Ó*ˆŒØ×-Ñ-¨d¯g©gÓ6ˆŒ
Ü! &¯'©'°4·:±:Ó>ˆà�z‰z‹|ˆä!*×!@Ñ!@ÐØ�XÔÜ%.×%DÑ%DÐ"ä+¨GÓ4ˆØœY×=Ñ=Ô=Ü×<Ñ<ˆFÜ(×EÒEÓGÐØ+/Ô(Ü*.×*DÑ*DÐÔ'Ø&'ÐÔ#Ø-.ÐÔ*Ø-.ÐÕ*Øœy×BÑBÔBÜ×?Ñ?ˆFÜ(×HÒHÓJÐØ+/Ô(Ü*.×*DÑ*DÐÔ'Ø&'ÐÔ#Ø-.ÐÔ*Ø-.ÐÔ*Ø)?Õ&ä×8Ñ8ˆFÜ(×JÒJÓLÐØ+/Ô(Ü*.×*DÑ*DÐÔ'Ø&'ÐÔ#Ø-.ÐÔ*Ø-.ÐÔ*Ø)?Ô&à×!Ñ! .°!°V¸TØ"# \°6Ø"2ô	4ô ×7Ñ7ˆÜ"×9Ò9Ó;ˆØ%2ˆÔ"Ü!%×!<Ñ!<ˆÔô ×5Ñ5Ø˜˜Ð/Ð0ð
ˆð
 	×!Ñ! .°!°VØ"#Ð%9¸6Ø"0ð 	"ô 	Eð 	�	‰	�‰Ð8¸4Õ?Ö@r-   rƒ  r„  r‡  rˆ  rO   s   @r$   r  r  „  s˜   ø‡ € Ùà0€Hà˜FÐ#€Jð 	�W×)Ñ)Ø�w×-Ñ-Ø�G×.Ñ.ðÐñ 	Ð!Ð(8Ø!Ð+@Ú4¸9ô	Fñ 	Ð*ð5ð  Ø&Ø  (Ð+Øô	ð	€M÷@Aò @Ar-   r  c                   ó†   a € ] tR tRt o RtRtRR.tR]P                  R]P                  R]P                  /tRR
 ltRtV tR	# )Úcmd_zonedeleteiâ  zDelete a zone.r   r   r6  rn  ro  rp  Nc                óª  € VP                  4       V n        VP                  V P                  4      V n        \	        WP                  V P                  4      pVP                  4       p\        P                  R V R2/pVP                  \        P                  ^ W^ R\        P                  RVR7	      pV P                  P                  RV,          4       R# )úZone z, does not exist and so could not be deleted.ÚDeleteZoneFromDsNr#  zZone %s deleted successfully
)r~  r   r  r    r'   r   r   Ú"WERR_DNS_ERROR_ZONE_DOES_NOT_EXISTr<   r   rÆ   ÚDNSSRV_TYPEID_NULLr  rÎ   )	r*   r   r6  rn  rp  ro  r"   r0   r€  s	   &&&&&&   r$   r�  Úcmd_zonedelete.runï  s¸   € ð ×(Ñ(Ó*ˆŒØ×-Ñ-¨d¯g©gÓ6ˆŒ
Ü! &¯'©'°4·:±:Ó>ˆà�z‰z‹|ˆô ×5Ñ5Ø˜�vÐIÐJð
ˆð ×'Ñ'¬	×(MÑ(MØ()¨6¸Ð<NÜ(1×(DÑ(DØ(,°xð (ó Aˆð
 	�	‰	�‰Ð8¸4Õ?Ö@r-   rƒ  r‡  ©rC   rD   rE   rF   rG   r‰  rŠ  r‹  rŒ  r�  rŽ  r�  r�  rM   rN   rO   s   @r$   r1  r1  â  sN   ø‡ € Ùà0€Hà˜FÐ#€Jð 	�W×)Ñ)Ø�w×-Ñ-Ø�G×.Ñ.ðÐ÷Aò Ar-   r1  c                   ó$  a € ] tR tRt o RtRt. R!OtR]P                  R]P                  R]P                  /t]! RRR	R
R7      ]! RRR	RR7      ]! RRR	RR7      ]! RRR	RR7      ]! RRR	RR7      ]! RRR	RR7      ]! RRR	RR7      .tR"R ltR tV tR# )#Ú	cmd_queryi  zQuery a name.zO%prog <server> <zone> <name> <A|AAAA|PTR|CNAME|MX|NS|SOA|SRV|TXT|ALL> [options]rn  ro  rp  z--authorityz&Search authoritative records (default)r¢  Ú	authorityr  r  zSearch cached recordsr  z--gluezSearch glue recordsÚgluez--rootzSearch root hintsÚrootz--additionalzList additional recordsÚ
additionalz--no-childrenzDo not list childrenÚno_childrenz--only-childrenzList only childrenÚonly_childrenNc                ó†  € \        V4      pVP                  R 4      R8w  d#   V P                  P                  RV,          4       ^ pV'       d   V\        P
                  ,          pV'       d   V\        P                  ,          pV'       d   V\        P                  ,          pV'       d   V\        P                  ,          pV	'       d   V\        P                  ,          pV
'       d   V\        P                  ,          pV'       d   V\        P                  ,          pV^ 8X  d   \        P
                  pV\        P                  8X  dN   V P                  P                  R4       V P                  P                  R4       V\        P
                  ,          pVP                  4       V n        VP                  V P                  4      V n        \!        WP                  V P                  4      p\"        P$                  R/pVP'                  \        P(                  ^ WVRVVRRVR7      w  pp\+        V P                  V4       R# )Ú*z-use "@" to dump entire domain, looking up %s
z>Specify either --authority or --root along with --additional.
zAssuming --authority.
úRecord or zone does not exist.Nr#  éÿÿÿÿ)r¾   Úfindr  rÎ   r   ÚDNS_RPC_VIEW_AUTHORITY_DATAÚDNS_RPC_VIEW_CACHE_DATAÚDNS_RPC_VIEW_GLUE_DATAÚDNS_RPC_VIEW_ROOT_HINT_DATAÚDNS_RPC_VIEW_ADDITIONAL_DATAÚDNS_RPC_VIEW_NO_CHILDRENÚDNS_RPC_VIEW_ONLY_CHILDRENr~  r   r  r    r'   r   rK   r=   rÆ   rg  )r*   r   r6  r@   Úrtyper;  r  r<  r=  r>  r?  r@  rn  rp  ro  ri  Úselect_flagsr"   r0   Úbuflenr€  s   &&&&&&&&&&&&&&&      r$   r�  Úcmd_query.run#  s¯  € ô $ EÓ*ˆà�9‰9�S‹>˜RÔØ�I‰I�O‰OÐLØ õ!ô "ð ˆßØœI×AÑAÕAˆLßØœI×=Ñ=Õ=ˆLßØœI×<Ñ<Õ<ˆLßØœI×AÑAÕAˆLßØœI×BÑBÕBˆLßØœI×>Ñ>Õ>ˆLßØœI×@Ñ@Õ@ˆLà˜1ÔÜ$×@Ñ@ˆLàœ9×AÑAÔAØ�I‰I�O‰OÐ]Ô^Ø�I‰I�O‰OÐ5Ô6ØœI×AÑAÕAˆLà×(Ñ(Ó*ˆŒØ×-Ñ-¨d¯g©gÓ6ˆŒ
Ü! &¯'©'°4·:±:Ó>ˆô ×5Ñ5Ø0ð
ˆð ×1Ñ1Ü×1Ñ1°1°fÀDØ�+˜|¨T°4Øð 2ó ‰ˆ�ô
 	˜Ÿ™ CÖ(r-   rƒ  )r   r6  r@   rM  )
FFFFFFFNNNrˆ  rO   s   @r$   r:  r:    sÔ   ø‡ € ÙðE€Hò 5€Jð 	�W×)Ñ)Ø�w×-Ñ-Ø�G×.Ñ.ðÐñ 	ˆ}Ð#KØ"¨ô	6áˆyÐ6Ø"¨ô	2áˆxÐ3Ø"¨ô	1áˆxÐ1Ø"¨ô	1áˆ~Ð$=Ø"¨ô	7áˆÐ%;Ø"¨ô	8áÐ Ð';Ø"¨ô	:ð€M÷"/)ò /)r-   r:  c                   ó†   a € ] tR tRt o RtRtRR.tR]P                  R]P                  R]P                  /tRR
 ltRtV tR	# )Úcmd_roothintsiU  zQuery root hints.z!%prog <server> [<name>] [options]r   zname?rn  ro  rp  Nc                ó˜  € \         P                  p\        P                  \        P                  ,          pVP                  4       V n        VP                  V P                  4      V n        \        WP                  V P                  4      pVP                  \        P                  ^ VRVRWgRR4
      w  rš\        V P                  V
4       R# )r   z..RootHintsN)r   rF  r   rI  rJ  r~  r   r  r    r'   r=   rÆ   rg  r  )r*   r   r@   rn  rp  ro  ri  rN  r"   rO  r€  s   &&&&&&     r$   r�  Úcmd_roothints.runb  sž   € ä×&Ñ&ˆÜ!×=Ñ=Ü!×>Ñ>õ?ˆð ×(Ñ(Ó*ˆŒØ×-Ñ-¨d¯g©gÓ6ˆŒ
Ü! &¯'©'°4·:±:Ó>ˆà×1Ñ1Ü×1Ñ1°1°f¸mØ�$˜°4¸ó?‰ˆô 	˜Ÿ™ CÖ(r-   rƒ  )rÑ  NNNr8  rO   s   @r$   rR  rR  U  sL   ø‡ € Ùà2€Hà˜GÐ$€Jð 	�W×)Ñ)Ø�w×-Ñ-Ø�G×.Ñ.ðÐ÷)ò )r-   rR  c                   óž   a € ] tR tRt o RtRt. ROtR]P                  R]P                  R]P                  /t]! RRR	R
7      .tRR ltRtV tR# )Úcmd_add_recordir  a(  Add a DNS record

For each type data contents are as follows:
  A      ipv4_address_string
  AAAA   ipv6_address_string
  PTR    fqdn_string
  CNAME  fqdn_string
  NS     fqdn_string
  MX     "fqdn_string preference"
  SRV    "fqdn_string port priority weight"
  TXT    "'string1' 'string2' ..."
úD%prog <server> <zone> <name> <A|AAAA|PTR|CNAME|NS|MX|SRV|TXT> <data>rn  ro  rp  z--allow-existingz!no error if record already existsr¢  ©rw  r£  Nc
                ó  € VP                  4       R
9  d   \        RV,          4      h\        V4      p
\        W¥4      pVP	                  4       V n        VP                  V P
                  4      V n        \        WP
                  V P                  4      p\        P                  ! 4       pW½n        \        P                  RV RV 2\        P                  RV RV R2/p VP                  \        P                   ^ WW=RVR7       T P&                  P)                  R	4       R#   \         d`   pTP"                  P$                  ^ ,          \        P                  8X  d*   T'       d"   T P&                  P)                  R4        Rp?R# h Rp?ii ; i)ÚAz)Adding record of type %s is not supportedz5Zone does not exist; record could not be added. zone[ú] name[z7Record already exists; record could not be added. zone[r3   Nr#  z"Record already exists, not adding
zRecord added successfully
©rZ  ÚAAAAÚPTRÚCNAMEÚNSÚMXÚSRVÚTXT)rÃ   r   r¾   rj  r~  r   r  r    r'   r   ÚDNS_RPC_RECORD_BUFr]  r   rK   Ú$WERR_DNS_ERROR_RECORD_ALREADY_EXISTSr>   rÆ   Úinner_exceptionr4   r  rÎ   )r*   r   r6  r@   rM  rB  Úallow_existingrn  rp  ro  ri  r]  r"   Úadd_rec_bufr0   r#   s   &&&&&&&&&&      r$   r�  Úcmd_add_record.run�  sV  € ð �;‰;‹=Ð WÔWÜÐJÈUÕRÓSÐSä# EÓ*ˆÜ  Ó3ˆà×(Ñ(Ó*ˆŒØ×-Ñ-¨d¯g©gÓ6ˆŒ
Ü! &¯'©'°4·:±:Ó>ˆä×2Ò2Ó4ˆØŒô ×5Ñ5ðØ�v˜W T Fð,ä×7Ñ7ðØ�v˜W T F¨!ð-ð
ˆð		Ø×(Ñ(¬×)NÑ)NØ)*¨F¸$ÈTØ2:ð )ô <ð 	�	‰	�‰Ð5Ö6øô ô 	Ø× Ñ ×%Ñ% aÕ(¬F×,WÑ,WÔWß!Ø—I‘I—O‘OÐ$IÔJÝØûð	ús$   Ã%D  Ä F
Ä+7FÅ#FÆFÆF
rƒ  ©r   r6  r@   rM  rB  )FNNNrˆ  rO   s   @r$   rV  rV  r  sf   ø‡ € ñð V€Hâ<€Jð 	�W×)Ñ)Ø�w×-Ñ-Ø�G×.Ñ.ðÐñ 	Ð!Ð(KØ"ô	$ð€M÷
#7ò #7r-   rV  c                   ó†   a € ] tR tRt o RtRt. R
OtR]P                  R]P                  R]P                  /tRR ltR	tV tR# )Úcmd_update_recordiµ  aq  Update a DNS record

For each type data contents are as follows:
  A      ipv4_address_string
  AAAA   ipv6_address_string
  PTR    fqdn_string
  CNAME  fqdn_string
  NS     fqdn_string
  MX     "fqdn_string preference"
  SOA    "fqdn_dns fqdn_email serial refresh retry expire minimumttl"
  SRV    "fqdn_string port priority weight"
  TXT    "'string1' 'string2' ..."
zU%prog <server> <zone> <name> <A|AAAA|PTR|CNAME|NS|MX|SOA|SRV|TXT> <olddata> <newdata>rn  ro  rp  Nc
                ó$  € VP                  4       pVR9  d   \        RV,          4      h VR 8X  d   \        \        V4       MVR8X  d   \        \        V4       \        V4      p\        W¶4      pVP                  4       V n	        VP                  V P                  4      V n        \        WP                  V P                  4      p \        VP                  WW;V4      pT'       g   \        R4      hTP"                  Tn        TP$                  Tn        TP&                  Tn        TP(                  Tn        \*        P,                  ! 4       pYÏn        \*        P,                  ! 4       pTTn        \0        P2                  RT R2/pTP5                  \*        P6                  ^ TTTTTTR	7       T P8                  P;                  R
4       R#   \
         d   p
\        RT RT
: 24      hRp
?
ii ; i  \         d   p
\        T
P                   !  RhRp
?
ii ; i)rZ  r]  z+Updating record of type %s is not supportedzbad data for z: NrC  r3  z- does not exist; record could not be updated.r#  zRecord updated successfully
)	rZ  r]  r^  r_  r`  ra  ÚSOArb  rc  )rÃ   r   r   r   r	   ÚOSErrorr¾   rj  r~  r   r  r    r'   r   r"   r   r4   rZ  r[  r\  rÜ  r   rd  r]  r   rK   r>   rÆ   r  rÎ   )r*   r   r6  r@   rM  ÚolddataÚnewdatarn  rp  ro  r#   ri  r]  r"   Ú	rec_matchrh  Údel_rec_bufr0   s   &&&&&&&&&&        r$   r�  Úcmd_update_record.runÎ  sà  € ð —‘“ˆØÐVÔVÜÐLÈuÕTÓUÐUð	?Ø˜Œ|Üœ' 7Õ+Ø˜&”Üœ( GÔ,ô $ EÓ*ˆÜ  Ó6ˆà×(Ñ(Ó*ˆŒØ×-Ñ-¨d¯g©gÓ6ˆŒ
Ü! &¯'©'°4·:±:Ó>ˆð	2Ü(¨×):Ñ):¸FØ)-¸GóEˆI÷
 ÜÐ?Ó@Ð@ð  ×'Ñ'ˆŒØ ×)Ñ)ˆŒØ$×1Ñ1ˆÔØ#×/Ñ/ˆŒä×2Ò2Ó4ˆØŒä×2Ò2Ó4ˆØ#ˆŒô ×5Ñ5Ø˜�vÐJÐKð
ˆð
 	×$Ñ$¤Y×%JÑ%JØ%&Ø%+Ø%)Ø%)Ø%0Ø%0Ø.6ð 	%ô 	8ð 	�	‰	�‰Ð7Ö8øô[ ô 	?Ü ¨u¨g°R¸±uÐ=Ó>Ð>ûð	?ûô ô 	2Ü §¡Ñ'¨TÐ1ûð	2ús5   «G ÁG ÃG+ ÇG(ÇG#Ç#G(Ç+HÇ6H
È
Hrƒ  )r   r6  r@   rM  rp  rq  r‡  r8  rO   s   @r$   rl  rl  µ  sL   ø‡ € ñð g€HâJ€Jð 	�W×)Ñ)Ø�w×-Ñ-Ø�G×.Ñ.ðÐ÷99ò 99r-   rl  c                   ó†   a € ] tR tRt o RtRt. R
OtR]P                  R]P                  R]P                  /tRR ltR	tV tR# )Úcmd_delete_recordi
  a+  Delete a DNS record

For each type data contents are as follows:
  A      ipv4_address_string
  AAAA   ipv6_address_string
  PTR    fqdn_string
  CNAME  fqdn_string
  NS     fqdn_string
  MX     "fqdn_string preference"
  SRV    "fqdn_string port priority weight"
  TXT    "'string1' 'string2' ..."
rW  rn  ro  rp  Nc	                óB  € VP                  4       R	9  d   \        RV,          4      h\        V4      p	\        W•4      p
VP	                  4       V n        VP                  V P
                  4      V n        \        WP
                  V P                  4      p\        P                  ! 4       pW¬n        \        P                  RV RV 2\        P                  RV RV R2/pVP                  \        P                   ^ VVVRVVR7       V P"                  P%                  R4       R# )
rZ  z+Deleting record of type %s is not supportedz7Zone does not exist; record could not be deleted. zone[r[  z9Record already exists; record could not be deleted. zone[r3   Nr#  zRecord deleted successfully
r\  )rÃ   r   r¾   rj  r~  r   r  r    r'   r   rd  r]  r   rK   re  r>   rÆ   r  rÎ   )r*   r   r6  r@   rM  rB  rn  rp  ro  ri  r]  r"   rs  r0   s   &&&&&&&&&     r$   r�  Úcmd_delete_record.run"  s  € à�;‰;‹=Ð WÔWÜÐLÈuÕTÓUÐUä# EÓ*ˆÜ  Ó3ˆà×(Ñ(Ó*ˆŒØ×-Ñ-¨d¯g©gÓ6ˆŒ
Ü! &¯'©'°4·:±:Ó>ˆä×2Ò2Ó4ˆØŒô ×5Ñ5ðØ�v˜W T Fð,ä×7Ñ7ðØ�v˜W T F¨!ð-ð
ˆð 	×$Ñ$¤Y×%JÑ%JØ%&Ø%+Ø%)Ø%)Ø%)Ø%0Ø.6ð 	%ô 	8ð 	�	‰	�‰Ð7Ö8r-   rƒ  rj  r‡  r8  rO   s   @r$   rv  rv  
  sL   ø‡ € ñð V€Hâ<€Jð 	�W×)Ñ)Ø�w×-Ñ-Ø�G×.Ñ.ðÐ÷ 9ò  9r-   rv  c                   ó¶   a € ] tR tRt o RtRtRR.tR]P                  R]P                  R]P                  /t]! R	R
RRR7      ]! RRRRR7      .tRR ltRtV tR# )Úcmd_cleanup_recordiE  aD  Cleanup DNS records for a DNS host.

example:

    samba-tool dns cleanup dc1 dc1.samdom.test.site -U USER%PASSWORD

NOTE: This command in many cases will only mark the `dNSTombstoned` attr
as `TRUE` on the DNS records. Querying will no longer return results but
there may still be some placeholder entries in the database.
z%prog <server> <dnshostname>r   Údnshostnamern  ro  rp  z-vz	--verbosez
Be verboser¢  rX  z-qz--quietzBe quietNc                óØ   € VP                  4       pVP                  V4      p	V P                  WgR 7      p
\        RV,          \	        4       W˜R7      p\
        P                  ! WºVRR7       R# ))ÚverboseÚquietr¹  rº  T)Úignore_no_nameN)r~  r  Ú
get_loggerr   r   r   Úremove_dns_references)r*   r   r{  rn  rp  ro  r}  r~  r   r    ÚloggerrÈ  s   &&&&&&&&    r$   r�  Úcmd_cleanup_record.run`  sa   € à×#Ñ#Ó%ˆØ×(Ñ(¨Ó,ˆà—‘¨�Ó>ˆä˜+¨Õ.Ü#1Ó#3Ø"'ô0ˆô 	×'Ò'¨°{Ø7;÷	=r-   rU   )NNNFFrˆ  rO   s   @r$   rz  rz  E  su   ø‡ € ñ	ð .€Hà˜MÐ*€Jð 	�W×)Ñ)Ø�w×-Ñ-Ø�G×.Ñ.ðÐñ 	ˆt�[ |¸LÔIÙˆt�Y Z¸ÔEð€M÷
=ò =r-   rz  c                   ó  € ] tR tRtRt/ t]! 4       ]R&   ]! 4       ]R&   ]! 4       ]R&   ]	! 4       ]R&   ]
! 4       ]R&   ]! 4       ]R&   ]! 4       ]R	&   ]! 4       ]R
&   ]! 4       ]R&   ]! 4       ]R&   ]! 4       ]R&   ]! 4       ]R&   RtR# )Úcmd_dnsio  z%Domain Name Service (DNS) management.r  Úzoneoptionsr/  ÚzonelistÚ
zonecreateÚ
zonedeleteÚqueryÚ	roothintsÚaddÚupdateÚdeleteÚcleanuprU   N)rC   rD   rE   rF   rG   Úsubcommandsrl  rŸ  rý  r  r  r1  r:  rR  rV  rl  rv  rz  rM   rU   r-   r$   r…  r…  o  s¢   † Ù/à€KÙ .Ó 0€K�ÑÙ!0Ó!2€K�ÑÙ*›n€K�
ÑÙ*›n€K�
ÑÙ .Ó 0€K�ÑÙ .Ó 0€K�ÑÙ$›;€K�ÑÙ,›€K�ÑÙ'Ó)€K�ÑÙ-Ó/€K�ÑÙ-Ó/€K�ÑÙ/Ó1€K�	Õr-   r…  )LÚsamba.getoptÚgetoptr‹  Úsambar   r   r¹   r   Úsocketr   r   r   r	   rÔ  rÅ  Ú	samba.ndrr
   r   rí  r   r   Úsamba.samdbr   Ú
samba.authr   Úsamba.netcmdr   r   r   r   Úsamba.dcerpcr   r   Úsamba.dnsserverr   r   r   r   r%   r'   rX   r^   rd   rl   rs   r}   rƒ   rŠ   r�   rš   r¦   r°   r»   r¾   rÊ   r  r0  r7  r=  r`  rg  rj  rl  r�  rŸ  rý  r  r  r1  r:  rR  rV  rl  rv  rz  r…  rU   r-   r$   Ú<module>r›     s�  ðõ$ Ý Ý Ý ß 'Ý Ý Û Û Û 
ß *Û 	ç %Ý Ý %÷ó ÷ )ç OÑ OÝ ,ò	÷Hñ HòVòòò:ò9ò3ò5ò7ò;ò;ò8òòò"$ò
òEaòP>VòBLò'òDòD0òô1�Wô 1ò@	6ôM:�gô M:ô`/�7ô /ô@L0�7ô L0ô^[A�Wô [Aô|A�Wô AôDN)�ô N)ôb)�Gô )ô:@7�Wô @7ôFR9˜ô R9ôj89˜ô 89ôv'=˜ô '=ôT2ˆlö 2r-   