Hello community,

here is the log from the commit of package dhcp for openSUSE:Factory checked in 
at 2017-07-08 12:27:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dhcp (Old)
 and      /work/SRC/openSUSE:Factory/.dhcp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "dhcp"

Sat Jul  8 12:27:37 2017 rev:104 rq:508605 version:4.3.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/dhcp/dhcp.changes        2017-03-18 
20:49:06.570127355 +0100
+++ /work/SRC/openSUSE:Factory/.dhcp.new/dhcp.changes   2017-07-08 
12:27:39.511503390 +0200
@@ -1,0 +2,95 @@
+Thu Jul  6 16:17:18 CEST 2017 - [email protected]
+
+- fixed a typo in nis-servers option name breaking the config file introduced 
+  in previous change to workaround issues in NetworkManager parser.
+- Update to dhcp-4.3.5
+
+  - Corrected a bug which could cause the server to sporadically crash while
+    loading lease files with the lease-id-format is set to "hex".  Our thanks
+    to Jay Ford, University of Iowa for reporting the issue.
+    [ISC-Bugs #43185]
+  - Eliminated a noisy, but otherwise harmless debug log statment that may
+    appear during server startup when building with --enable-binary-leases
+    and configuring multiple pools in a shared network.  Thanks to Fernando
+    Soto from BlueCat Networks for reporting the issue and supplying a patch.
+    [ISC-Bugs #43262]
+  - Fixed util/bindvar.sh error handling.
+    [ISC-Bugs #41973]
+  - Correct error message in relay to use remote id length instead
+    of circuit id length.
+    [ISC-Bugs #42556]
+  - Add logic to test directory Makefiles to avoid copying Attfile(s)
+    when building within the source tree.  This eliminates a noisy but
+    otherwise harmless error message when running "make check".
+    [ISC-Bugs #41883]
+  - Leases are now scrubbed of certain prior use information when pool
+    re-balancing reassigns them from one FO peer to the other.  This
+    corrects an issue where leases that were offered but not used
+    by the client retained the client hostname from the original
+    client. Thanks to Pavel Polacek, Jan Evangelista Purkyne University
+    for reporting the issue.
+    [ISC-Bugs #42008]
+  - In the LDAP code and schema add some missing '6' characters to use
+    the v6 instead of the v4 versions.  Thanks to Denis Taranushin for
+    reporting this issue and supplying its patch.
+    [ISC-Bugs #42666]
+  - Correct how the pick-first-value expression is written to a lease
+    file.  Previously it was written as a concat expression due to
+    a cut and paste error.
+    [ISC-Bugs #42253]
+  - Modify the DDNS code to clean up the PTR record even if there
+    are issues while cleaning up the A or AAAA records.
+    [ISC-Bugs #23954]
+  - Added global configuration parameter, abandon-lease-time, which determines
+    the amount of time a lease remains abandoned.  The default is 84600 
seconds.
+    Additionaly, the server now conducts a ping check (if ping checks are
+    enabled) prior to offering an abandoned lease to client.  Our thanks to
+    David Zych at University of Illinois for reporting the issue and working
+    with us to produce a viable solution.
+    [ISC-Bugs #41815]
+  - Correct handling of interface names during interface discovery. This
+    addresses an issue where interface names of 15 characters in length
+    could lead to crashes or interface recognition errors during startup
+    of dhcpd, dhclient, and dhcrelay.
+    [ISC-Bugs #42226]
+  - Updates to contrib/dhcp-lease-list.pl to make it more friendly.
+    The updates are: looking for the lease file in more places and skipping
+    the "processing complete" output when creating machine readable
+    output.  Thanks to Cameron Paine (cbp at null dot net) for the
+    patch.
+    [ISC-Bugs #42113]
+  - When reusing a lease for dhcp-cache-threshold return the hostname
+    to the original lease.  Also if the host pointer, UID or hardware address
+    change don't allow reuse of the lease.
+    Thanks to Michael Vincent for reporting this and helping us
+    verify the problem and fix.
+    [ISC-Bugs #42849]
+  - Change dmalloc to use a size_t as the length argument to bring it
+    in line with the call it will make to malloc().
+    [ISC-Bugs #40843]
+  - If the failover socket can't be bound, close it.  Otherwise if the
+    user configures an incorrect address in the failover stanza the
+    server will continue to open new sockets every 90 seconds until
+    it runs out.
+    [ISC-Bugs #42452]
+  - Add DHCPv4-mode, dhcrelay command line options, "-iu" and "-id", that
+    allow interfaces to be upstream or downstream respectively.  Upstream
+    interfaces will accept and forward only BOOTP replies, while downstream
+    interfaces will accept and forward only BOOTP requests.
+    [ISC-Bugs #41547]
+  - Clean up some memory references in the vendor-class construct.
+    [ISC-Bugs #42984]
+    [*0006-dhcp-4.3.2-dhclient-send-hostname-or-fqdn.patch,
+     *0011-Fixed-linux-interface-discovery-using-getifaddrs.patch,
+     *0013-dhcp-4.2.x-dhcpv6-decline-on-DAD-failure.872609.patch,
+     *0016-infiniband-support.patch,
+     *0017-server-no-success-report-before-send.919959.patch]
+
+
+-------------------------------------------------------------------
+Mon Jul  3 09:08:32 UTC 2017 - [email protected]
+
+- Set all requested dhcp options on a single line, so they are
+  actually requested (boo#1046969, boo#1047004).
+
+-------------------------------------------------------------------

Old:
----
  dhcp-4.3.3-P1.tar.gz
  dhcp-4.3.3-P1.tar.gz.asc

New:
----
  dhcp-4.3.5.tar.gz
  dhcp-4.3.5.tar.gz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ dhcp.spec ++++++
--- /var/tmp/diff_new_pack.ml2Pfd/_old  2017-07-08 12:27:40.899307633 +0200
+++ /var/tmp/diff_new_pack.ml2Pfd/_new  2017-07-08 12:27:40.903307068 +0200
@@ -16,7 +16,7 @@
 #
 
 
-%define isc_version   4.3.3-P1
+%define isc_version   4.3.5
 %define susefw2dir    %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services
 %define omc_prefix    /usr/share/omc
 %define omc_svcdir    %{omc_prefix}/svcinfo.d
@@ -41,7 +41,7 @@
 %endif
 BuildRequires:  dos2unix
 BuildRequires:  libtool
-Version:        4.3.3.P1
+Version:        4.3.5
 Release:        0
 Summary:        Common Files Used by ISC DHCP Software
 License:        BSD-3-Clause

++++++ 0006-dhcp-4.3.2-dhclient-send-hostname-or-fqdn.patch ++++++
--- /var/tmp/diff_new_pack.ml2Pfd/_old  2017-07-08 12:27:40.975296914 +0200
+++ /var/tmp/diff_new_pack.ml2Pfd/_new  2017-07-08 12:27:40.975296914 +0200
@@ -6,10 +6,10 @@
 Signed-off-by: Marius Tomaschewski <[email protected]>
 
 diff --git a/client/dhclient.8 b/client/dhclient.8
-index 5b05698..d9a26b7 100644
+index cf073b4..6c7296b 100644
 --- a/client/dhclient.8
 +++ b/client/dhclient.8
-@@ -66,6 +66,10 @@ dhclient - Dynamic Host Configuration Protocol Client
+@@ -72,6 +72,10 @@ dhclient - Dynamic Host Configuration Protocol Client
  .I LL|LLT
  ]
  [
@@ -20,7 +20,7 @@
  .B -p
  .I port-number
  ]
-@@ -326,6 +330,11 @@ transmits these messages to 255.255.255.255 (the IP 
limited broadcast
+@@ -340,6 +344,11 @@ transmits these messages to 255.255.255.255 (the IP 
limited broadcast
  address).  Overriding this is mostly useful for debugging purposes.  This
  feature is not supported in DHCPv6 (\fB-6\fR) mode.
  .TP
@@ -33,25 +33,33 @@
  .\" mockup relay
  Set the giaddr field of all packets to the \fIrelay\fR IP address
 diff --git a/client/dhclient.c b/client/dhclient.c
-index cf612d1..0e39161 100644
+index 2fb8de8..678379a 100644
 --- a/client/dhclient.c
 +++ b/client/dhclient.c
-@@ -124,6 +124,7 @@ main(int argc, char **argv) {
+@@ -174,6 +174,7 @@ usage(const char *sfmt, const char *sarg)
+ #else /* DHCPv6 */
+                 "[-I1dvrxi] [-nw] [-p <port>] [-D LL|LLT] \n"
+ #endif /* DHCPv6 */
++                "                [-H hostname]\n"
+                 "                [-s server-addr] [-cf config-file]\n"
+                 "                [-df duid-file] [-lf lease-file]\n"
+                 "                [-pf pid-file] [--no-pid] [-e VAR=val]\n"
+@@ -200,6 +201,7 @@ main(int argc, char **argv) {
        int no_dhclient_db = 0;
        int no_dhclient_pid = 0;
        int no_dhclient_script = 0;
 +      char *dhclient_hostname = NULL;
  #ifdef DHCPv6
        int local_family_set = 0;
- #endif /* DHCPv6 */
-@@ -241,6 +242,24 @@ main(int argc, char **argv) {
+ #ifdef DHCP4o6
+@@ -337,6 +339,24 @@ main(int argc, char **argv) {
                        if (++i == argc)
-                               usage();
+                               usage(use_noarg, argv[i-1]);
                        mockup_relay = argv[i];
 +              } else if (!strcmp (argv[i], "-H")) {
 +                      size_t len;
 +                      if (++i == argc || !argv[i] || *(argv[i]) == '\0')
-+                              usage ();
++                              usage(use_noarg, argv[i-1]);
 +                      len = strlen (argv[i]);
 +                      if (len > HOST_NAME_MAX) {
 +                              log_error("-H option hostname string \"%s\" is 
too long:"
@@ -69,7 +77,7 @@
                } else if (!strcmp(argv[i], "-nw")) {
                        nowait = 1;
                } else if (!strcmp(argv[i], "-n")) {
-@@ -510,6 +529,48 @@ main(int argc, char **argv) {
+@@ -630,6 +650,48 @@ main(int argc, char **argv) {
        /* Parse the dhclient.conf file. */
        read_client_conf();
  
@@ -118,14 +126,3 @@
        /* Parse the lease database. */
        read_client_leases();
  
-@@ -756,6 +817,7 @@ static void usage()
- #else /* DHCPv6 */
-                 "[-I1dvrxi] [-nw] [-p <port>] [-D LL|LLT] \n"
- #endif /* DHCPv6 */
-+                "                [-H hostname]\n"
-                 "                [-s server-addr] [-cf config-file]\n"
-                 "                [-df duid-file] [-lf lease-file]\n"
-                 "                [-pf pid-file] [--no-pid] [-e VAR=val]\n"
--- 
-2.1.4
-

++++++ 0011-Fixed-linux-interface-discovery-using-getifaddrs.patch ++++++
--- /var/tmp/diff_new_pack.ml2Pfd/_old  2017-07-08 12:27:40.999293529 +0200
+++ /var/tmp/diff_new_pack.ml2Pfd/_new  2017-07-08 12:27:40.999293529 +0200
@@ -14,15 +14,16 @@
 
 Changed to use getifaddrs() function, which retrieves all IP
 addresses on linux systems and is available since GLIBC 2.3.
+
 ---
  common/discover.c | 51 ++++++++++++++++++++++++++++++++++++++++++++-------
  1 file changed, 44 insertions(+), 7 deletions(-)
 
 diff --git a/common/discover.c b/common/discover.c
-index 6a0540b..1dcaa02 100644
+index 4463178..c48d67b 100644
 --- a/common/discover.c
 +++ b/common/discover.c
-@@ -370,7 +370,7 @@ end_iface_scan(struct iface_conf_list *ifaces) {
+@@ -373,7 +373,7 @@ end_iface_scan(struct iface_conf_list *ifaces) {
        ifaces->sock = -1;
  }
  
@@ -31,7 +32,7 @@
  /* 
   * Linux support
   * -------------
-@@ -379,6 +379,14 @@ end_iface_scan(struct iface_conf_list *ifaces) {
+@@ -382,6 +382,14 @@ end_iface_scan(struct iface_conf_list *ifaces) {
   * about interfaces, along with selected ioctl() calls.
   *
   * Linux low level access is documented in the netdevice man page.
@@ -46,7 +47,7 @@
   */
  
  /* 
-@@ -751,11 +759,11 @@ end_iface_scan(struct iface_conf_list *ifaces) {
+@@ -755,11 +763,11 @@ end_iface_scan(struct iface_conf_list *ifaces) {
  #else
  
  /* 
@@ -61,11 +62,11 @@
   *
   * The getifaddrs() man page describes the use.
   */
-@@ -812,10 +820,39 @@ next_iface(struct iface_info *info, int *err, struct 
iface_conf_list *ifaces) {
-               *err = 1;
+@@ -817,10 +825,39 @@ next_iface(struct iface_info *info, int *err, struct 
iface_conf_list *ifaces) {
                return 0;
        }
--      strcpy(info->name, ifaces->next->ifa_name);
+       memset(info, 0, sizeof(struct iface_info));
+-      strncpy(info->name, ifaces->next->ifa_name, sizeof(info->name) - 1);
 -      memcpy(&info->addr, ifaces->next->ifa_addr, 
 -             ifaces->next->ifa_addr->sa_len);
 +      info->addr.ss_family = AF_UNSPEC;
@@ -80,7 +81,7 @@
 +              if_indextoname(if_nametoindex(ifaces->next->ifa_name),
 +                              info->name);
 +      } else {
-+              strcpy(info->name, ifaces->next->ifa_name);
++              strncpy(info->name, ifaces->next->ifa_name, sizeof(info->name) 
- 1);
 +      }
 +
 +      if (ifaces->next->ifa_addr != NULL) {
@@ -95,7 +96,7 @@
 +              /* else e.g. AF_PACKET / link layer address  */
 +      }
 +#else
-+      strcpy(info->name, ifaces->next->ifa_name);
++      strncpy(info->name, ifaces->next->ifa_name, sizeof(info->name) - 1);
 +      if (ifaces->next->ifa_addr != NULL) {
 +              memcpy(&info->addr, ifaces->next->ifa_addr,
 +                     ifaces->next->ifa_addr->sa_len);
@@ -105,5 +106,5 @@
        *err = 0;
        return 1;
 -- 
-1.8.4
+2.13.1
 

++++++ 0013-dhcp-4.2.x-dhcpv6-decline-on-DAD-failure.872609.patch ++++++
--- /var/tmp/diff_new_pack.ml2Pfd/_old  2017-07-08 12:27:41.019290708 +0200
+++ /var/tmp/diff_new_pack.ml2Pfd/_new  2017-07-08 12:27:41.019290708 +0200
@@ -8,10 +8,10 @@
 (Submitted to [email protected] - [ISC-Bugs #26735])
 
 diff --git a/client/dhc6.c b/client/dhc6.c
-index 8974e7a..f8ad25d 100644
+index c8d16e8..21d0203 100644
 --- a/client/dhc6.c
 +++ b/client/dhc6.c
-@@ -96,6 +96,8 @@ void do_select6(void *input);
+@@ -115,6 +115,8 @@ void do_select6(void *input);
  void do_refresh6(void *input);
  static void do_release6(void *input);
  static void start_bound(struct client_state *client);
@@ -20,7 +20,7 @@
  static void start_informed(struct client_state *client);
  void informed_handler(struct packet *packet, struct client_state *client);
  void bound_handler(struct packet *packet, struct client_state *client);
-@@ -2080,6 +2082,7 @@ start_release6(struct client_state *client)
+@@ -2314,6 +2316,7 @@ start_release6(struct client_state *client)
        cancel_timeout(do_select6, client);
        cancel_timeout(do_refresh6, client);
        cancel_timeout(do_release6, client);
@@ -28,7 +28,7 @@
        client->state = S_STOPPED;
  
        /*
-@@ -2713,6 +2716,7 @@ dhc6_check_reply(struct client_state *client, struct 
dhc6_lease *new)
+@@ -2968,6 +2971,7 @@ dhc6_check_reply(struct client_state *client, struct 
dhc6_lease *new)
                break;
  
              case S_STOPPED:
@@ -36,7 +36,7 @@
                action = dhc6_stop_action;
                break;
  
-@@ -2814,6 +2818,7 @@ dhc6_check_reply(struct client_state *client, struct 
dhc6_lease *new)
+@@ -3084,6 +3088,7 @@ dhc6_check_reply(struct client_state *client, struct 
dhc6_lease *new)
                break;
  
              case S_STOPPED:
@@ -44,7 +44,7 @@
                /* Nothing critical to do at this stage. */
                break;
  
-@@ -3804,17 +3809,23 @@ reply_handler(struct packet *packet, struct 
client_state *client)
+@@ -4214,17 +4219,23 @@ reply_handler(struct packet *packet, struct 
client_state *client)
        cancel_timeout(do_select6, client);
        cancel_timeout(do_refresh6, client);
        cancel_timeout(do_release6, client);
@@ -76,7 +76,7 @@
                return;
        }
  
-@@ -4342,7 +4353,11 @@ start_bound(struct client_state *client)
+@@ -4798,7 +4809,11 @@ start_bound(struct client_state *client)
                        dhc6_marshall_values("new_", client, lease, ia, addr);
                        script_write_requested6(client);
  
@@ -89,7 +89,7 @@
                }
  
                /* XXX: maybe we should loop on the old values instead? */
-@@ -4390,6 +4405,149 @@ start_bound(struct client_state *client)
+@@ -4851,6 +4866,149 @@ start_bound(struct client_state *client)
        dhc6_check_times(client);
  }
  
@@ -131,7 +131,7 @@
 +{
 +      struct client_state *client;
 +      struct data_string ds;
-+      int send_ret;
++      int send_ret, added;
 +      struct timeval elapsed, tv;
 +
 +      client = input;
@@ -193,13 +193,13 @@
 +      /* Append IA's (but don't release temporary addresses). */
 +      if (wanted_ia_na &&
 +          dhc6_add_ia_na(client, &ds, client->active_lease,
-+                         DHCPV6_DECLINE) != ISC_R_SUCCESS) {
++                         DHCPV6_DECLINE, 0, &added) != ISC_R_SUCCESS) {
 +              data_string_forget(&ds, MDL);
 +              goto decline_done;
 +      }
 +      if (wanted_ia_pd &&
 +          dhc6_add_ia_pd(client, &ds, client->active_lease,
-+                         DHCPV6_DECLINE) != ISC_R_SUCCESS) {
++                         DHCPV6_DECLINE, 0, &added) != ISC_R_SUCCESS) {
 +              data_string_forget(&ds, MDL);
 +              goto decline_done;
 +      }
@@ -240,10 +240,10 @@
   * Reconfigure-Request messages and the like.
   */
 diff --git a/includes/dhcpd.h b/includes/dhcpd.h
-index a52992b..0eda51d 100644
+index b5bec1c..6d500a3 100644
 --- a/includes/dhcpd.h
 +++ b/includes/dhcpd.h
-@@ -1060,7 +1060,8 @@ enum dhcp_state {
+@@ -1176,7 +1176,8 @@ enum dhcp_state {
        S_BOUND = 5,
        S_RENEWING = 6,
        S_REBINDING = 7,
@@ -252,4 +252,4 @@
 +      S_DECLINED = 9
  };
  
- /* Authentication and BOOTP policy possibilities (not all values work
+ /* Possible pending client operations. */

++++++ 0016-infiniband-support.patch ++++++
--- /var/tmp/diff_new_pack.ml2Pfd/_old  2017-07-08 12:27:41.047286759 +0200
+++ /var/tmp/diff_new_pack.ml2Pfd/_new  2017-07-08 12:27:41.047286759 +0200
@@ -48,13 +48,14 @@
 
     References: bnc#870535
 
+
 diff --git a/client/dhclient.c b/client/dhclient.c
-index 0c77ae2..b438629 100644
+index 3f2f8b2..40d9fe0 100644
 --- a/client/dhclient.c
 +++ b/client/dhclient.c
-@@ -104,6 +104,40 @@ static int check_option_values(struct universe *universe, 
unsigned int opt,
- static void dhclient_ddns_cb_free(dhcp_ddns_cb_t *ddns_cb,
-                                    char* file, int line);
+@@ -71,6 +71,40 @@ int std_dhcid = 0;
+    assert (state_is == state_shouldbe). */
+ #define ASSERT_STATE(state_is, state_shouldbe) {}
  
 +static void form_interface_duid(struct data_string *duid, struct 
interface_info *ip, const char *file, int line);
 +
@@ -91,9 +92,9 @@
 +}
 +
  #ifndef UNIT_TEST
- int
- main(int argc, char **argv) {
-@@ -635,6 +669,26 @@ main(int argc, char **argv) {
+ static const char copyright[] = "Copyright 2004-2016 Internet Systems 
Consortium.";
+ static const char arr [] = "All rights reserved.";
+@@ -756,6 +790,26 @@ main(int argc, char **argv) {
                }
        }
  
@@ -120,7 +121,7 @@
        /* At this point, all the interfaces that the script thinks
           are relevant should be running, so now we once again call
           discover_interfaces(), and this time ask it to actually set
-@@ -649,19 +703,42 @@ main(int argc, char **argv) {
+@@ -770,19 +824,42 @@ main(int argc, char **argv) {
           Not much entropy, but we're booting, so we're not likely to
           find anything better. */
        seed = 0;
@@ -165,7 +166,7 @@
         */
        if ((local_family == AF_INET6) ||
            ((local_family == AF_INET) && (duid_v4 == 1))) {
-@@ -672,6 +749,20 @@ main(int argc, char **argv) {
+@@ -793,6 +870,20 @@ main(int argc, char **argv) {
                        form_duid(&default_duid, MDL);
                        write_duid(&default_duid);
                }
@@ -185,8 +186,8 @@
 +          }
        }
  
-       /* Start a configuration state machine for each interface. */
-@@ -1143,15 +1234,22 @@ void dhcpack (packet)
+ #if defined(DHCPv6) && defined(DHCP4o6)
+@@ -1282,15 +1373,22 @@ void dhcpack (packet)
                if (client -> xid == packet -> raw -> xid)
                        break;
        }
@@ -214,7 +215,7 @@
        }
  
        if (client -> state != S_REBOOTING &&
-@@ -1164,7 +1262,7 @@ void dhcpack (packet)
+@@ -1303,7 +1401,7 @@ void dhcpack (packet)
                return;
        }
  
@@ -223,7 +224,7 @@
  
        lease = packet_to_lease (packet, client);
        if (!lease) {
-@@ -1629,15 +1727,21 @@ void dhcpoffer (packet)
+@@ -1951,15 +2049,21 @@ void dhcpoffer (packet)
        /* If we're not receptive to an offer right now, or if the offer
           has an unrecognizable transaction id, then just drop it. */
        if (!client ||
@@ -250,7 +251,7 @@
        }
  
        sprintf (obuf, "%s from %s", name, piaddr (packet -> client_addr));
-@@ -1875,11 +1979,11 @@ void dhcpnak (packet)
+@@ -2197,11 +2301,11 @@ void dhcpnak (packet)
  
        /* If we're not receptive to an offer right now, or if the offer
           has an unrecognizable transaction id, then just drop it. */
@@ -267,7 +268,7 @@
  #if defined (DEBUG)
                log_debug ("DHCPNAK in wrong transaction.");
  #endif
-@@ -1894,9 +1998,15 @@ void dhcpnak (packet)
+@@ -2216,9 +2320,15 @@ void dhcpnak (packet)
                log_debug ("DHCPNAK in wrong state.");
  #endif
                return;
@@ -284,25 +285,27 @@
  
        if (!client -> active) {
  #if defined (DEBUG)
-@@ -2023,10 +2133,10 @@ void send_discover (cpp)
-               client -> packet.secs = htons (65535);
-       client -> secs = client -> packet.secs;
- 
+@@ -2351,11 +2461,11 @@ void send_discover (cpp)
+                         (long)(client -> interval));
+       } else
+ #endif
 -      log_info ("DHCPDISCOVER on %s to %s port %d interval %ld",
 -            client -> name ? client -> name : client -> interface -> name,
 -            inet_ntoa (sockaddr_broadcast.sin_addr),
 -            ntohs (sockaddr_broadcast.sin_port), (long)(client -> interval));
+-
 +      log_info ("DHCPDISCOVER on %s to %s port %d interval %ld (xid=0x%x)",
 +              client -> name ? client -> name : client -> interface -> name,
 +              inet_ntoa (sockaddr_broadcast.sin_addr),
 +              ntohs (sockaddr_broadcast.sin_port), (long)(client -> 
interval), client -> xid);
- 
++ 
        /* Send out a packet. */
-       result = send_packet(client->interface, NULL, &client->packet,
-@@ -2295,10 +2405,10 @@ void send_request (cpp)
-                       client -> packet.secs = htons (65535);
-       }
- 
+ #if defined(DHCPv6) && defined(DHCP4o6)
+       if (dhcpv4_over_dhcpv6) {
+@@ -2639,10 +2749,10 @@ void send_request (cpp)
+               log_info ("DHCPREQUEST");
+       } else
+ #endif
 -      log_info ("DHCPREQUEST on %s to %s port %d",
 +      log_info ("DHCPREQUEST on %s to %s port %d (xid=0x%x)",
              client -> name ? client -> name : client -> interface -> name,
@@ -310,25 +313,25 @@
 -            ntohs (destination.sin_port));
 +            ntohs (destination.sin_port), client -> xid);
  
-       if (destination.sin_addr.s_addr != INADDR_BROADCAST &&
-           fallback_interface) {
-@@ -2338,10 +2448,10 @@ void send_decline (cpp)
- 
-       int result;
- 
+ #if defined(DHCPv6) && defined(DHCP4o6)
+       if (dhcpv4_over_dhcpv6) {
+@@ -2699,10 +2809,10 @@ void send_decline (cpp)
+               log_info ("DHCPDECLINE");
+       } else
+ #endif
 -      log_info ("DHCPDECLINE on %s to %s port %d",
 +      log_info ("DHCPDECLINE on %s to %s port %d (xid=0x%x)",
              client->name ? client->name : client->interface->name,
              inet_ntoa(sockaddr_broadcast.sin_addr),
 -            ntohs(sockaddr_broadcast.sin_port));
-+            ntohs (sockaddr_broadcast.sin_port), client -> xid);
++            ntohs(sockaddr_broadcast.sin_port), client -> xid);
  
        /* Send out a packet. */
-       result = send_packet(client->interface, NULL, &client->packet,
-@@ -2384,10 +2494,10 @@ void send_release (cpp)
-               return;
-       }
- 
+ #if defined(DHCPv6) && defined(DHCP4o6)
+@@ -2761,10 +2871,10 @@ void send_release (cpp)
+               log_info ("DHCPRELEASE");
+       } else
+ #endif
 -      log_info ("DHCPRELEASE on %s to %s port %d",
 +      log_info ("DHCPRELEASE on %s to %s port %d (xid=0x%x)",
              client -> name ? client -> name : client -> interface -> name,
@@ -336,9 +339,9 @@
 -            ntohs (destination.sin_port));
 +            ntohs (destination.sin_port), client -> xid);
  
-       if (fallback_interface) {
-               result = send_packet(fallback_interface, NULL, &client->packet,
-@@ -2507,10 +2617,17 @@ make_client_options(struct client_state *client, 
struct client_lease *lease,
+ #if defined(DHCPv6) && defined(DHCP4o6)
+       if (dhcpv4_over_dhcpv6) {
+@@ -3041,10 +3151,17 @@ make_client_options(struct client_state *client, 
struct client_lease *lease,
         * This can be overridden by including a client id in the configuration
         * file.
         */
@@ -357,10 +360,10 @@
                memset(&client_identifier, 0, sizeof(client_identifier));
                client_identifier.len = 1 + 4 + default_duid.len;
                if (!buffer_allocate(&client_identifier.buffer,
-@@ -2600,12 +2717,13 @@ void make_discover (client, lease)
- 
+@@ -3135,12 +3252,13 @@ void make_discover (client, lease)
        client -> packet.op = BOOTREQUEST;
        client -> packet.htype = client -> interface -> hw_address.hbuf [0];
+       /* Assumes hw_address is known, otherwise a random value may result */
 -      client -> packet.hlen = client -> interface -> hw_address.hlen - 1;
 +      if (client -> interface -> hw_address.hlen - 1 <= sizeof(client -> 
packet.chaddr))
 +          client -> packet.hlen = client -> interface -> hw_address.hlen - 1;
@@ -373,7 +376,7 @@
                client -> packet.flags = 0;
        else
                client -> packet.flags = htons (BOOTP_BROADCAST);
-@@ -2617,7 +2735,7 @@ void make_discover (client, lease)
+@@ -3152,7 +3270,7 @@ void make_discover (client, lease)
        memset (&(client -> packet.siaddr),
                0, sizeof client -> packet.siaddr);
        client -> packet.giaddr = giaddr;
@@ -382,17 +385,17 @@
            memcpy (client -> packet.chaddr,
                    &client -> interface -> hw_address.hbuf [1],
                    (unsigned)(client -> interface -> hw_address.hlen - 1));
-@@ -2673,7 +2791,8 @@ void make_request (client, lease)
- 
+@@ -3209,7 +3327,8 @@ void make_request (client, lease)
        client -> packet.op = BOOTREQUEST;
        client -> packet.htype = client -> interface -> hw_address.hbuf [0];
+       /* Assumes hw_address is known, otherwise a random value may result */
 -      client -> packet.hlen = client -> interface -> hw_address.hlen - 1;
 +      if (client -> interface -> hw_address.hlen - 1 <= sizeof(client -> 
packet.chaddr))
 +          client -> packet.hlen = client -> interface -> hw_address.hlen - 1;
        client -> packet.hops = 0;
        client -> packet.xid = client -> xid;
        client -> packet.secs = 0; /* Filled in by send_request. */
-@@ -2705,7 +2824,7 @@ void make_request (client, lease)
+@@ -3241,7 +3360,7 @@ void make_request (client, lease)
        else
                memset (&client -> packet.giaddr, 0,
                        sizeof client -> packet.giaddr);
@@ -401,17 +404,17 @@
            memcpy (client -> packet.chaddr,
                    &client -> interface -> hw_address.hbuf [1],
                    (unsigned)(client -> interface -> hw_address.hlen - 1));
-@@ -2747,7 +2866,8 @@ void make_decline (client, lease)
- 
+@@ -3284,7 +3403,8 @@ void make_decline (client, lease)
        client -> packet.op = BOOTREQUEST;
        client -> packet.htype = client -> interface -> hw_address.hbuf [0];
+       /* Assumes hw_address is known, otherwise a random value may result */
 -      client -> packet.hlen = client -> interface -> hw_address.hlen - 1;
 +      if (client -> interface -> hw_address.hlen - 1 <= sizeof(client -> 
packet.chaddr))
 +              client -> packet.hlen = client -> interface -> hw_address.hlen 
- 1;
        client -> packet.hops = 0;
        client -> packet.xid = client -> xid;
        client -> packet.secs = 0; /* Filled in by send_request. */
-@@ -2764,9 +2884,10 @@ void make_decline (client, lease)
+@@ -3301,9 +3421,10 @@ void make_decline (client, lease)
        memset (&client -> packet.siaddr, 0,
                sizeof client -> packet.siaddr);
        client -> packet.giaddr = giaddr;
@@ -425,17 +428,17 @@
  
  #ifdef DEBUG_PACKET
        dump_raw ((unsigned char *)&client -> packet, client -> packet_length);
-@@ -2808,7 +2929,8 @@ void make_release (client, lease)
- 
+@@ -3346,7 +3467,8 @@ void make_release (client, lease)
        client -> packet.op = BOOTREQUEST;
        client -> packet.htype = client -> interface -> hw_address.hbuf [0];
+       /* Assumes hw_address is known, otherwise a random value may result */
 -      client -> packet.hlen = client -> interface -> hw_address.hlen - 1;
 +      if (client -> interface -> hw_address.hlen - 1 <= sizeof(client -> 
packet.chaddr))
 +          client -> packet.hlen = client -> interface -> hw_address.hlen - 1;
        client -> packet.hops = 0;
        client -> packet.xid = random ();
        client -> packet.secs = 0;
-@@ -2820,9 +2942,10 @@ void make_release (client, lease)
+@@ -3358,9 +3480,10 @@ void make_release (client, lease)
        memset (&client -> packet.siaddr, 0,
                sizeof client -> packet.siaddr);
        client -> packet.giaddr = giaddr;
@@ -449,7 +452,7 @@
  
  #ifdef DEBUG_PACKET
        dump_raw ((unsigned char *)&client -> packet, client -> packet_length);
-@@ -2975,17 +3098,13 @@ write_options(struct client_state *client, struct 
option_state *options,
+@@ -3513,17 +3636,13 @@ write_options(struct client_state *client, struct 
option_state *options,
   * is not how it is intended.  Upcoming rearchitecting the client should
   * address this "one daemon model."
   */
@@ -470,7 +473,7 @@
                log_fatal("Impossible condition at %s:%d.", MDL);
  
        if ((ip->hw_address.hlen == 0) ||
-@@ -3033,6 +3152,13 @@ form_duid(struct data_string *duid, const char *file, 
int line)
+@@ -3573,6 +3692,13 @@ form_duid(struct data_string *duid, const char *file, 
int line)
        }
  }
  
@@ -484,7 +487,7 @@
  /* Write the default DUID to the lease store. */
  static isc_result_t
  write_duid(struct data_string *duid)
-@@ -4368,7 +4494,8 @@ client_dns_update(struct client_state *client, 
dhcp_ddns_cb_t *ddns_cb)
+@@ -4946,7 +5072,8 @@ client_dns_update(struct client_state *client, 
dhcp_ddns_cb_t *ddns_cb)
                                          NULL, client,
                                          client->sent_options, NULL,
                                          &global_scope, oc, MDL)) {
@@ -495,10 +498,10 @@
                                /*
                                 * This appears to be an embedded DUID,
 diff --git a/common/bpf.c b/common/bpf.c
-index df9facc..23d416a 100644
+index 34bbd5b..c415c22 100644
 --- a/common/bpf.c
 +++ b/common/bpf.c
-@@ -117,7 +117,7 @@ int if_register_bpf (info)
+@@ -116,7 +116,7 @@ int if_register_bpf (info)
                log_fatal ("Can't attach interface %s to bpf device %s: %m",
                       info -> name, filename);
  
@@ -507,7 +510,7 @@
  
        return sock;
  }
-@@ -199,11 +199,44 @@ struct bpf_insn dhcp_bpf_filter [] = {
+@@ -198,11 +198,44 @@ struct bpf_insn dhcp_bpf_filter [] = {
        BPF_STMT(BPF_RET+BPF_K, 0),
  };
  
@@ -543,7 +546,7 @@
 +};
 +
  #if defined (DEC_FDDI)
- struct bpf_insn *bpf_fddi_filter;
+ struct bpf_insn *bpf_fddi_filter = NULL;
  #endif
  
  int dhcp_bpf_filter_len = sizeof dhcp_bpf_filter / sizeof (struct bpf_insn);
@@ -552,7 +555,7 @@
  #if defined (HAVE_TR_SUPPORT)
  struct bpf_insn dhcp_bpf_tr_filter [] = {
          /* accept all token ring packets due to variable length header */
-@@ -550,7 +583,9 @@ void maybe_setup_fallback ()
+@@ -549,7 +582,9 @@ void maybe_setup_fallback ()
  
  #if defined(USE_BPF_RECEIVE) || defined(USE_BPF_HWADDR)
  void
@@ -563,11 +566,33 @@
        struct ifaddrs *ifa;
        struct ifaddrs *p;
        struct sockaddr_dl *sa;
+diff --git a/common/discover.c b/common/discover.c
+index c48d67b..969ee3e 100644
+--- a/common/discover.c
++++ b/common/discover.c
+@@ -1280,7 +1280,7 @@ discover_interfaces(int state) {
+                               if_register_send(tmp);
+                       } else {
+                               /* get_hw_addr() was called by register. */
+-                              get_hw_addr(tmp->name, &tmp->hw_address);
++                              get_hw_addr(tmp);
+                       }
+                       break;
+ #ifdef DHCPv6
+@@ -1293,7 +1293,7 @@ discover_interfaces(int state) {
+                                  so now we have to call it explicitly
+                                  to not leave the hardware address unknown
+                                  (some code expects it cannot be. */
+-                              get_hw_addr(tmp->name, &tmp->hw_address);
++                              get_hw_addr(tmp);
+                       } else {
+                               if_register_linklocal6(tmp);
+                       }
 diff --git a/common/dlpi.c b/common/dlpi.c
-index 944f21c..5cc2f3b 100644
+index 1014e29..3e6a3d3 100644
 --- a/common/dlpi.c
 +++ b/common/dlpi.c
-@@ -1330,7 +1330,9 @@ void maybe_setup_fallback ()
+@@ -1339,7 +1339,9 @@ void maybe_setup_fallback ()
  #endif /* USE_DLPI_SEND */
  
  void 
@@ -579,7 +604,7 @@
        long buf[DLPI_MAXDLBUF];
          union DL_primitives *dlp;
 diff --git a/common/lpf.c b/common/lpf.c
-index 8582f31..745d3c0 100644
+index 123790d..943d679 100644
 --- a/common/lpf.c
 +++ b/common/lpf.c
 @@ -47,12 +47,22 @@
@@ -912,10 +937,10 @@
  }
  #endif
 diff --git a/common/print.c b/common/print.c
-index dfe0593..aa7b8e2 100644
+index ce368c4..7dd9f52 100644
 --- a/common/print.c
 +++ b/common/print.c
-@@ -162,11 +162,11 @@ char *print_hw_addr (htype, hlen, data)
+@@ -173,11 +173,11 @@ char *print_hw_addr (htype, hlen, data)
        const int hlen;
        const unsigned char *data;
  {
@@ -981,10 +1006,10 @@
        int sock, i;
        struct lifreq lifr;
 diff --git a/includes/dhcpd.h b/includes/dhcpd.h
-index f0f4b20..0a04f04 100644
+index fa7d6fb..e55309e 100644
 --- a/includes/dhcpd.h
 +++ b/includes/dhcpd.h
-@@ -1321,6 +1321,7 @@ struct interface_info {
+@@ -1345,6 +1345,7 @@ struct interface_info {
        struct shared_network *shared_network;
                                /* Networks connected to this interface. */
        struct hardware hw_address;     /* Its physical address. */
@@ -992,20 +1017,20 @@
        struct in_addr *addresses;      /* Addresses associated with this
                                         * interface.
                                         */
-@@ -2542,7 +2543,7 @@ void print_dns_status (int, struct dhcp_ddns_cb *, 
isc_result_t);
+@@ -2583,7 +2584,7 @@ void print_dns_status (int, struct dhcp_ddns_cb *, 
isc_result_t);
  #endif
  const char *print_time(TIME);
  
 -void get_hw_addr(const char *name, struct hardware *hw);
 +void get_hw_addr(struct interface_info *info);
- 
- /* socket.c */
- #if defined (USE_SOCKET_SEND) || defined (USE_SOCKET_RECEIVE) \
+ char *buf_to_hex (const unsigned char *s, unsigned len,
+                    const char *file, int line);
+ char *format_lease_id(const unsigned char *s, unsigned len, int format,
 diff --git a/server/dhcp.c b/server/dhcp.c
-index 1f007e2..0f53ac2 100644
+index c9b3632..effa9b1 100644
 --- a/server/dhcp.c
 +++ b/server/dhcp.c
-@@ -1806,11 +1806,12 @@ void echo_client_id(packet, lease, in_options, 
out_options)
+@@ -1967,11 +1967,12 @@ void echo_client_id(packet, lease, in_options, 
out_options)
  
        /* Check if echo-client-id is enabled */
        oc = lookup_option(&server_universe, in_options, SV_ECHO_CLIENT_ID);
@@ -1020,7 +1045,7 @@
                struct data_string client_id;
                unsigned int opcode = DHO_DHCP_CLIENT_IDENTIFIER;
  
-@@ -3592,9 +3593,11 @@ void dhcp_reply (lease)
+@@ -3766,9 +3767,11 @@ void dhcp_reply (lease)
        } else
                bufs |= 2; /* XXX */
  
@@ -1036,10 +1061,10 @@
  
        /* See if this is a Microsoft client that NUL-terminates its
 diff --git a/server/dhcpleasequery.c b/server/dhcpleasequery.c
-index 0766b84..c9a1e8b 100644
+index 75a0e72..6207c31 100644
 --- a/server/dhcpleasequery.c
 +++ b/server/dhcpleasequery.c
-@@ -295,7 +295,7 @@ dhcpleasequery(struct packet *packet, int ms_nulltp) {
+@@ -299,7 +299,7 @@ dhcpleasequery(struct packet *packet, int ms_nulltp) {
                                                          assoc_ips, 
                                                          nassoc_ips);
  
@@ -1048,7 +1073,7 @@
  
                        if (packet->raw->hlen+1 > sizeof(h.hbuf)) {
                                log_info("%s: hardware length too long, "
-@@ -405,11 +405,13 @@ dhcpleasequery(struct packet *packet, int ms_nulltp) {
+@@ -409,11 +409,13 @@ dhcpleasequery(struct packet *packet, int ms_nulltp) {
                 * Set the hardware address fields.
                 */
  
@@ -1067,10 +1092,10 @@
                /*
                 * Set client identifier option.
 diff --git a/server/mdb.c b/server/mdb.c
-index 9a7da80..539a233 100644
+index 6af6b63..a143452 100644
 --- a/server/mdb.c
 +++ b/server/mdb.c
-@@ -619,6 +619,9 @@ int find_hosts_by_haddr (struct host_decl **hp, int htype,
+@@ -618,6 +618,9 @@ int find_hosts_by_haddr (struct host_decl **hp, int htype,
                return ret;
  #endif
  
@@ -1080,6 +1105,3 @@
        h.hlen = hlen + 1;
        h.hbuf [0] = htype;
        memcpy (&h.hbuf [1], haddr, hlen);
--- 
-2.1.4
-

++++++ 0017-server-no-success-report-before-send.919959.patch ++++++
--- /var/tmp/diff_new_pack.ml2Pfd/_old  2017-07-08 12:27:41.059285067 +0200
+++ /var/tmp/diff_new_pack.ml2Pfd/_new  2017-07-08 12:27:41.063284503 +0200
@@ -4,17 +4,14 @@
 Subject: [PATCH] server: no success report before send (bsc#919959)
 References: bsc#919959
 
----
- server/dhcp.c | 53 ++++++++++++++++++++++++++++++-----------------------
- 1 file changed, 30 insertions(+), 23 deletions(-)
 
 diff --git a/server/dhcp.c b/server/dhcp.c
-index 0f53ac2..3a610e8 100644
+index effa9b1..18297a6 100644
 --- a/server/dhcp.c
 +++ b/server/dhcp.c
-@@ -3643,22 +3643,6 @@ void dhcp_reply (lease)
-       } else
-               s = (char *)0;
+@@ -3859,22 +3859,6 @@ void dhcp_reply (lease)
+       }
+ #endif
  
 -      /* Say what we're doing... */
 -      log_info ("%s on %s to %s %s%s%svia %s",
@@ -32,10 +29,10 @@
 -                 ? inet_ntoa (state -> giaddr)
 -                 : state -> ip -> name));
 -
-       /* Set up the hardware address... */
-       hto.hlen = lease -> hardware_addr.hlen;
-       memcpy (hto.hbuf, lease -> hardware_addr.hbuf, hto.hlen);
-@@ -3695,12 +3679,13 @@ void dhcp_reply (lease)
+ #ifdef DEBUG_PACKET
+       dump_raw ((unsigned char *)&raw, packet_length);
+ #endif
+@@ -3906,12 +3890,13 @@ void dhcp_reply (lease)
                                           "packet over %s interface.", MDL,
                                           packet_length,
                                           fallback_interface->name);
@@ -53,7 +50,7 @@
                }
  
        /* If the client is RENEWING, unicast to the client using the
-@@ -3733,11 +3718,13 @@ void dhcp_reply (lease)
+@@ -3944,11 +3929,13 @@ void dhcp_reply (lease)
                                          " packet over %s interface.", MDL,
                                           packet_length,
                                           fallback_interface->name);
@@ -70,7 +67,7 @@
                }
  
        /* If it comes from a client that already knows its address
-@@ -3765,8 +3752,28 @@ void dhcp_reply (lease)
+@@ -3976,8 +3963,28 @@ void dhcp_reply (lease)
            log_error ("%s:%d: Failed to send %d byte long "
                       "packet over %s interface.", MDL,
                       packet_length, state->ip->name);
@@ -99,6 +96,3 @@
  
        /* Free all of the entries in the option_state structure
           now that we're done with them. */
--- 
-2.1.4
-

++++++ dhclient.conf ++++++
--- /var/tmp/diff_new_pack.ml2Pfd/_old  2017-07-08 12:27:41.159270963 +0200
+++ /var/tmp/diff_new_pack.ml2Pfd/_new  2017-07-08 12:27:41.163270399 +0200
@@ -39,13 +39,7 @@
 option rfc4833-tz-name code 101 = string;
 
 # Request several well known/usefull dhcp options.
-request subnet-mask, broadcast-address, routers,
-       rfc3442-classless-static-routes,
-       interface-mtu, host-name, domain-name, domain-search,
-       domain-name-servers, nis-domain, nis-servers,
-       nds-context, nds-servers, nds-tree-name,
-       netbios-name-servers, netbios-dd-server,
-       netbios-node-type, netbios-scope, ntp-servers;
+request subnet-mask, broadcast-address, routers, 
rfc3442-classless-static-routes, interface-mtu, host-name, domain-name, 
domain-search, domain-name-servers, nis-domain, nis-servers, nds-context, 
nds-servers, nds-tree-name, netbios-name-servers, netbios-dd-server, 
netbios-node-type, netbios-scope, ntp-servers;
 #      rfc4833-tz-posix-string, rfc4833-tz-name;
 
 # We request above options, require only the IP configuration:

++++++ dhcp-4.3.3-P1.tar.gz -> dhcp-4.3.5.tar.gz ++++++
/work/SRC/openSUSE:Factory/dhcp/dhcp-4.3.3-P1.tar.gz 
/work/SRC/openSUSE:Factory/.dhcp.new/dhcp-4.3.5.tar.gz differ: char 5, line 1

++++++ dhcp.keyring ++++++
--- /var/tmp/diff_new_pack.ml2Pfd/_old  2017-07-08 12:27:41.243259116 +0200
+++ /var/tmp/diff_new_pack.ml2Pfd/_new  2017-07-08 12:27:41.243259116 +0200
@@ -1,36 +1,152 @@
-pub  2048R/911A4C02 2014-12-02 [verfällt: 2017-01-31]
-uid                            Internet Systems Consortium, Inc. (Signing key, 
2015-2016) <[email protected]>
-sig        911A4C02 2014-12-02   [selfsig]
-sub  2048R/1BD14881 2014-12-02 [verfällt: 2017-01-31]
-sig        911A4C02 2014-12-02   [keybind]
 -----BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.11 (GNU/Linux)
 
-mQENBFR9szQBCADAwiKoEyFh32NHLc+c1vGgZ2lDKvXd7MoZZAOM2NUJkaDqt+Xy
-537ycGmZRqukpGUsa0fDeqjOq+l4paX3QnW1DEs8ypnWi5Zme4lYHysmNeG33ihe
-SMeGRbnZi+9VTho3NGv3iM9gtRMDXTB5wi7OCu0XNypUtR2afP9F9EgRs4nJ5iMz
-o5c1y0wH4y+lJ33NCHZDj8ditl64yMbuVlZOD3UxoQqw/8E6T4rHly64g9s6Ld7o
-YybSN/hKIXFZRqrTebEd2LwZqGhPQIgYDUdumwvtw6jfrosbMOx0tan3esnxlptl
-fbkmOsoi8pPJqlo2VtLBx9XN53ZFMqc/Pj3tABEBAAG0TUludGVybmV0IFN5c3Rl
-bXMgQ29uc29ydGl1bSwgSW5jLiAoU2lnbmluZyBrZXksIDIwMTUtMjAxNikgPGNv
-ZGVzaWduQGlzYy5vcmc+iQE9BBMBAgAoBQJUfbM0AhsDBQkEEtKABgsJCAcDAgYV
-CAIJCgsEFgIDAQIeAQIXgAAKCRBvpuvJkRpMAhD3B/ip18kQSE4//Yt8VMF6kciD
-bcCQAOwy45/1frZaX9wS5ri/pdHxB0vw4SwrpJgJEkLGG0sEzRwS87QeFCtGDhIw
-J/+5JX6in0cJ+hr2G7DJUpVgKp3Y8lEZ3ch+gAZ3k45uzzoOTT4tm6uXWlkOnlPJ
-jUb1s9bVzL9zUsJ7XaV5x4aR3Bw53/izJEIaxWHj1CEjAzRC7wPQpo/EK+fWzFBf
-enSCBJEvW1vkomtb1jMdj+uhod1LzFdXHdQjDCSKn/Glpn/YcZ9/LkiUSwNLTpL4
-CxDbEis4QWNDndAR/u9REC1zDW/xQEC3UxsB06Zm9NaWjAHy8s0rOihgoetaroa5
-AQ0EVH2zNAEIAK3gbs1saWWHWGxsPuhOf+x18g0/+N7f4fZE7TTetPNhdOgY0LGx
-ul9VHRoZgvPbnm+BZmZhYGMr/oWlTEuF+sa/Dr8SKqVDjYIj0qOzimMLYgaKYV8S
-Q8LhUFtUQjm5V5J/FQ97NzO2fPgEIo7JbIVrhsPEms+1gl9yanKW/+HUovl7KUyN
-RovfaJdpO4uyuY9CGz875DqE39EhflBWN96bpCUmp9O/VQs4eJTp6pkv2EkMVcEa
-dtFXAVFlSFe/OUd83gbVXM9NCRfY98ZJaB2OnI1/lU8OomdHOt+z6h7bdtC/w42q
-sjBmu+y2Fth4WXzPd7WbfvVdlMjbBHZLn8EAEQEAAYkBJQQYAQIADwUCVH2zNAIb
-DAUJBBLSgAAKCRBvpuvJkRpMAhEXB/0Xq9NqR7vgSZTed7esSMWqOLWZloKdjxys
-3BA9h3EXCkF6gMdE4b6OkIUH0V2aFCYJXZmyFol0tq50aETD62aCgCOVtxlkx5VH
-tTLl/T1Venf9TDISiEmDBI+3DDqjA3YOH86Fql7Jq+EMZx4e2L50PWWyRR3Lzjp6
-TFe9Xh4rqQJoI0OBtLyX13Nfe/Ar4Z85DX6O1sv/CM0aWkfGbdMAeeHrDVRKaraH
-ULyyX4kfu+mZj8AthxMpVDyaHil9WCX1uwGo+6rkiuAMvURbn05h5C92t2QUQJE1
-rvBKpzLEBW8qQq5foo+8yHHWpzue4i4r2uEJ3+FLUsjtlU+3F+Pq
-=dem0
+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
+=E+8v
 -----END PGP PUBLIC KEY BLOCK-----


Reply via email to