From 1b85351eee43ce0f56830fa1497da95f1fe9cc8c Mon Sep 17 00:00:00 2001
From: Dushyant Behl <dushyantbehl@users.noreply.github.com>
Date: Mon, 3 Jul 2023 13:51:06 +0530
Subject: [PATCH] NETOBSERV-1112: Add TCP RTT calculation to ebpf-agent and
 userspace. (#117)

* Add TCP Handshake based RTT calculator in ebpf by keeping track of
handshake SYN and ACK packets.

Introduces a new ebpf map for tracking incoming and outgoing packets for
RTT. Can be extended to any other way of TCP sequence tracking like TCPSecr/TCPval,
or continous TCP latency tracking and other protocols like ICMP etc.

Signed-off-by: Dushyant Behl <dushyantbehl@in.ibm.com>

* Add updated bpf bindings and protobuf

Signed-off-by: Dushyant Behl <dushyantbehl@in.ibm.com>

* Add rtt to record.go and record_test.go and fix verifier issue

Signed-off-by: Dushyant Behl <dushyantbehl@in.ibm.com>

* Add RTT to exported record as a time duration in protobuf

Signed-off-by: Dushyant Behl <dushyantbehl@in.ibm.com>

* Add flowrtt to flowlogs-dump.
Small changes to bpf rtt calculations.

Signed-off-by: Dushyant Behl <dushyantbehl@in.ibm.com>

* Add documentation on how rtt is calculated.

* Add a switch for the RTT calculation feature.
This feature will be disabled by default and can be enabled via an
environment variable ENABLE_RTT.

Signed-off-by: Dushyant Behl <dushyantbehl@users.noreply.github.com>

* Reduce the flow_sequences map in size if its not used

Signed-off-by: Dushyant Behl <dushyantbehl@users.noreply.github.com>

* Small changes and refactoring.

Signed-off-by: Dushyant Behl <dushyantbehl@users.noreply.github.com>

* Change file structure and add more documentation on RTT patch

Signed-off-by: Dushyant Behl <dushyantbehl@users.noreply.github.com>

---------

Signed-off-by: Dushyant Behl <dushyantbehl@in.ibm.com>
Signed-off-by: Dushyant Behl <dushyantbehl@users.noreply.github.com>
---
 bpf/configs.h                                 |   1 +
 bpf/flows.c                                   |  67 +++++++--
 bpf/maps_definition.h                         |  13 ++
 bpf/rtt_tracker.h                             |  87 ++++++++++++
 bpf/{flow.h => types.h}                       |  72 +++++++++-
 bpf/utils.h                                   | 133 +++++-------------
 docs/config.md                                |   2 +
 docs/rtt_calculations.md                      |  27 ++++
 .../server/flowlogs-dump-collector.go         |   6 +-
 pkg/agent/agent.go                            |  14 +-
 pkg/agent/config.go                           |   4 +
 pkg/ebpf/bpf_bpfeb.go                         |  13 +-
 pkg/ebpf/bpf_bpfeb.o                          | Bin 67240 -> 72280 bytes
 pkg/ebpf/bpf_bpfel.go                         |  13 +-
 pkg/ebpf/bpf_bpfel.o                          | Bin 67888 -> 74160 bytes
 pkg/ebpf/tracer.go                            |  59 ++++++--
 pkg/exporter/proto.go                         |   3 +
 pkg/flow/record.go                            |  12 +-
 pkg/flow/record_test.go                       |   3 +
 pkg/pbflow/flow.pb.go                         |  99 +++++++------
 pkg/pbflow/flow_grpc.pb.go                    |  12 +-
 proto/flow.proto                              |   2 +
 22 files changed, 465 insertions(+), 177 deletions(-)
 create mode 100644 bpf/rtt_tracker.h
 rename bpf/{flow.h => types.h} (56%)
 create mode 100644 docs/rtt_calculations.md

diff --git a/bpf/configs.h b/bpf/configs.h
index 208faea1f..5a9d85384 100644
--- a/bpf/configs.h
+++ b/bpf/configs.h
@@ -5,5 +5,6 @@
 // Constant definitions, to be overridden by the invoker
 volatile const u32 sampling = 0;
 volatile const u8 trace_messages = 0;
+volatile const u8 enable_rtt = 0;
 
 #endif //__CONFIGS_H__
diff --git a/bpf/flows.c b/bpf/flows.c
index 5219b808d..e7b857d0c 100644
--- a/bpf/flows.c
+++ b/bpf/flows.c
@@ -1,5 +1,6 @@
 /*
-    Flows v2. A Flow-metric generator using TC.
+    Flows v2.
+    Flow monitor: A Flow-metric generator using TC.
 
     This program can be hooked on to TC ingress/egress hook to monitor packets
     to/from an interface.
@@ -13,38 +14,79 @@
             until an entry is available.
         4) When hash collision is detected, we send the new entry to userpace via ringbuffer.
 */
+#include <vmlinux.h>
+#include <bpf_helpers.h>
+#include "configs.h"
 #include "utils.h"
+
+/* Defines a tcp drops statistics tracker,
+   which attaches at kfree_skb hook. Is optional.
+*/
 #include "tcp_drops.h"
+
+/* Defines a dns tracker,
+   which attaches at net_dev_queue hook. Is optional.
+*/
 #include "dns_tracker.h"
 
+/* Defines an rtt tracker,
+   which runs inside flow_monitor. Is optional.
+*/
+#include "rtt_tracker.h"
 
 static inline int flow_monitor(struct __sk_buff *skb, u8 direction) {
     // If sampling is defined, will only parse 1 out of "sampling" flows
     if (sampling != 0 && (bpf_get_prandom_u32() % sampling) != 0) {
         return TC_ACT_OK;
     }
-    void *data_end = (void *)(long)skb->data_end;
-    void *data = (void *)(long)skb->data;
+
+    // Record the current time first.
+    u64 current_time = bpf_ktime_get_ns();
 
     flow_id id;
     __builtin_memset(&id, 0, sizeof(id));
-    u64 current_time = bpf_ktime_get_ns();
-    struct ethhdr *eth = data;
-    u16 flags = 0;
-    if (fill_ethhdr(eth, data_end, &id, &flags) == DISCARD) {
+
+    pkt_info pkt;
+    __builtin_memset(&pkt, 0, sizeof(pkt));
+
+    pkt.id = &id;
+    pkt.current_ts = current_time;
+
+    void *data_end = (void *)(long)skb->data_end;
+    void *data = (void *)(long)skb->data;
+    struct ethhdr *eth = (struct ethhdr *)data;
+
+    if (fill_ethhdr(eth, data_end, &pkt) == DISCARD) {
         return TC_ACT_OK;
     }
+
+    if (enable_rtt) {
+        // This is currently gated as its not to be enabled by default.
+        calculate_flow_rtt(&pkt, direction, data_end);
+    }
+
+    //Set extra fields
     id.if_index = skb->ifindex;
     id.direction = direction;
 
     // TODO: we need to add spinlock here when we deprecate versions prior to 5.1, or provide
     // a spinlocked alternative version and use it selectively https://lwn.net/Articles/779120/
-    flow_metrics *aggregate_flow = bpf_map_lookup_elem(&aggregated_flows, &id);
+    flow_metrics *aggregate_flow = (flow_metrics *)bpf_map_lookup_elem(&aggregated_flows, &id);
     if (aggregate_flow != NULL) {
         aggregate_flow->packets += 1;
         aggregate_flow->bytes += skb->len;
         aggregate_flow->end_mono_time_ts = current_time;
-        aggregate_flow->flags |= flags;
+        aggregate_flow->flags |= pkt.flags;
+
+        // Does not matter the gate. Will be zero if not enabled.
+        if (pkt.rtt > 0) {
+            /* Since RTT is calculated for few packets we need to check if it is non zero value then only we update
+             * the flow. If we remove this check a packet which fails to calculate RTT will override the previous valid
+             * RTT with 0.
+             */
+            aggregate_flow->flow_rtt = pkt.rtt;
+        }
+
         long ret = bpf_map_update_elem(&aggregated_flows, &id, aggregate_flow, BPF_ANY);
         if (trace_messages && ret != 0) {
             // usually error -16 (-EBUSY) is printed here.
@@ -61,7 +103,8 @@ static inline int flow_monitor(struct __sk_buff *skb, u8 direction) {
             .bytes = skb->len,
             .start_mono_time_ts = current_time,
             .end_mono_time_ts = current_time,
-            .flags = flags, 
+            .flags = pkt.flags,
+            .flow_rtt = pkt.rtt
         };
 
         // even if we know that the entry is new, another CPU might be concurrently inserting a flow
@@ -78,7 +121,7 @@ static inline int flow_monitor(struct __sk_buff *skb, u8 direction) {
             }
 
             new_flow.errno = -ret;
-            flow_record *record = bpf_ringbuf_reserve(&direct_flows, sizeof(flow_record), 0);
+            flow_record *record = (flow_record *)bpf_ringbuf_reserve(&direct_flows, sizeof(flow_record), 0);
             if (!record) {
                 if (trace_messages) {
                     bpf_printk("couldn't reserve space in the ringbuf. Dropping flow");
@@ -92,6 +135,7 @@ static inline int flow_monitor(struct __sk_buff *skb, u8 direction) {
     }
     return TC_ACT_OK;
 }
+
 SEC("tc_ingress")
 int ingress_flow_parse(struct __sk_buff *skb) {
     return flow_monitor(skb, INGRESS);
@@ -103,3 +147,4 @@ int egress_flow_parse(struct __sk_buff *skb) {
 }
 
 char _license[] SEC("license") = "GPL";
+
diff --git a/bpf/maps_definition.h b/bpf/maps_definition.h
index 8bd0d0120..4c5bf86e7 100644
--- a/bpf/maps_definition.h
+++ b/bpf/maps_definition.h
@@ -18,4 +18,17 @@ struct {
     __uint(map_flags, BPF_F_NO_PREALLOC);
 } aggregated_flows SEC(".maps");
 
+// Common hashmap to keep track of all flow sequences.
+// LRU hashmap is used because if some syn packet is received but ack is not
+// then the hashmap entry will need to be evicted
+// Key is flow_seq_id which is standard 4 tuple and a sequence id
+//     sequence id is specific to the type of transport protocol
+// Value is u64 which represents the occurrence timestamp of the packet.
+struct {
+    __uint(type, BPF_MAP_TYPE_LRU_HASH);
+    __uint(max_entries, 1 << 20);   // Will take around 64MB of space.
+    __type(key, flow_seq_id);
+    __type(value, u64);
+} flow_sequences SEC(".maps");
+
 #endif //__MAPS_DEFINITION_H__
diff --git a/bpf/rtt_tracker.h b/bpf/rtt_tracker.h
new file mode 100644
index 000000000..d4c81b72b
--- /dev/null
+++ b/bpf/rtt_tracker.h
@@ -0,0 +1,87 @@
+/*
+    A simple RTT tracker implemented to be used at the ebpf layer inside the flow_monitor hookpoint.
+    This tracker currently tracks RTT for TCP flows by looking at the TCP start sequence and estimates
+    RTT by perform (timestamp of receiveing ack packet - timestamp of sending syn packet)
+ */
+
+#ifndef __RTT_TRACKER_H__
+#define __RTT_TRACKER_H__
+
+#include "utils.h"
+#include "maps_definition.h"
+
+static __always_inline void fill_flow_seq_id(flow_seq_id *seq_id, pkt_info *pkt, u32 seq, u8 reversed) {
+    flow_id *id = pkt->id;
+    if (reversed) {
+        __builtin_memcpy(seq_id->src_ip, id->dst_ip, IP_MAX_LEN);
+        __builtin_memcpy(seq_id->dst_ip, id->src_ip, IP_MAX_LEN);
+        seq_id->src_port = id->dst_port;
+        seq_id->dst_port = id->src_port;
+    } else {
+        __builtin_memcpy(seq_id->src_ip, id->src_ip, IP_MAX_LEN);
+        __builtin_memcpy(seq_id->dst_ip, id->dst_ip, IP_MAX_LEN);
+        seq_id->src_port = id->src_port;
+        seq_id->dst_port = id->dst_port;
+    }
+    seq_id->seq_id = seq;
+}
+
+static __always_inline void calculate_flow_rtt_tcp(pkt_info *pkt, u8 direction, void *data_end, flow_seq_id *seq_id) {
+    struct tcphdr *tcp = (struct tcphdr *) pkt->l4_hdr;
+    if ( !tcp || ((void *)tcp + sizeof(*tcp) > data_end) ) {
+        return;
+    }
+
+    switch (direction) {
+    case EGRESS: {
+        if (IS_SYN_PACKET(pkt)) {
+            // Record the outgoing syn sequence number
+            u32 seq = bpf_ntohl(tcp->seq);
+            fill_flow_seq_id(seq_id, pkt, seq, 0);
+
+            long ret = bpf_map_update_elem(&flow_sequences, seq_id, &pkt->current_ts, BPF_ANY);
+            if (trace_messages && ret != 0) {
+                bpf_printk("err saving flow sequence record %d", ret);
+            }
+        }
+        break;
+    }
+    case INGRESS: {
+        if (IS_ACK_PACKET(pkt)) {
+            // Stored sequence should be ack_seq - 1
+            u32 seq = bpf_ntohl(tcp->ack_seq) - 1;
+            // check reversed flow
+            fill_flow_seq_id(seq_id, pkt, seq, 1);
+
+            u64 *prev_ts = (u64 *)bpf_map_lookup_elem(&flow_sequences, seq_id);
+            if (prev_ts != NULL) {
+                pkt->rtt = pkt->current_ts - *prev_ts;
+                // Delete the flow from flow sequence map so if it
+                // restarts we have a new RTT calculation.
+                long ret = bpf_map_delete_elem(&flow_sequences, seq_id);
+                if (trace_messages && ret != 0) {
+                    bpf_printk("error evicting flow sequence: %d", ret);
+                }
+            }
+        }
+        break;
+    }
+    }
+}
+
+static __always_inline void calculate_flow_rtt(pkt_info *pkt, u8 direction, void *data_end) {
+    flow_seq_id seq_id;
+    __builtin_memset(&seq_id, 0, sizeof(flow_seq_id));
+
+    switch (pkt->id->transport_protocol)
+    {
+    case IPPROTO_TCP:
+        calculate_flow_rtt_tcp(pkt, direction, data_end, &seq_id);
+        break;
+    default:
+        break;
+    }
+}
+
+#endif /* __RTT_TRACKER_H__ */
+
diff --git a/bpf/flow.h b/bpf/types.h
similarity index 56%
rename from bpf/flow.h
rename to bpf/types.h
index ddb306f8e..0ce903759 100644
--- a/bpf/flow.h
+++ b/bpf/types.h
@@ -1,10 +1,46 @@
-#ifndef __FLOW_H__
-#define __FLOW_H__
+#ifndef __TYPES_H__
+#define __TYPES_H__
 
 #define TC_ACT_OK 0
 #define TC_ACT_SHOT 2
 #define IP_MAX_LEN 16
 
+#define DISCARD 1
+#define SUBMIT 0
+
+// Flags according to RFC 9293 & https://www.iana.org/assignments/ipfix/ipfix.xhtml
+#define FIN_FLAG 0x01
+#define SYN_FLAG 0x02
+#define RST_FLAG 0x04
+#define PSH_FLAG 0x08
+#define ACK_FLAG 0x10
+#define URG_FLAG 0x20
+#define ECE_FLAG 0x40
+#define CWR_FLAG 0x80
+// Custom flags exported
+#define SYN_ACK_FLAG 0x100
+#define FIN_ACK_FLAG 0x200
+#define RST_ACK_FLAG 0x400
+
+#define IS_SYN_PACKET(pkt)    ((pkt->flags & SYN_FLAG) || (pkt->flags & SYN_ACK_FLAG))
+#define IS_ACK_PACKET(pkt)    ((pkt->flags & ACK_FLAG) || (pkt->flags & SYN_ACK_FLAG))
+
+#if defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && \
+    __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+#define bpf_ntohs(x)        __builtin_bswap16(x)
+#define bpf_htons(x)        __builtin_bswap16(x)
+#define bpf_ntohl(x)        __builtin_bswap32(x)
+#define bpf_htonl(x)        __builtin_bswap32(x)
+#elif defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && \
+    __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+#define bpf_ntohs(x)        (x)
+#define bpf_htons(x)        (x)
+#define bpf_ntohl(x)        (x)
+#define bpf_htonl(x)        (x)
+#else
+# error "Endianness detection needs to be set up for your compiler?!"
+#endif
+
 typedef __u8 u8;
 typedef __u16 u16;
 typedef __u32 u32;
@@ -18,6 +54,15 @@ typedef __u64 u64;
 #define ETH_P_ARP 0x0806
 #define IPPROTO_ICMPV6 58
 
+// according to field 61 in https://www.iana.org/assignments/ipfix/ipfix.xhtml
+typedef enum {
+    INGRESS         = 0,
+    EGRESS          = 1,
+    MAX_DIRECTION   = 2,
+} direction_t;
+
+const u8 ip4in6[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff};
+
 typedef struct flow_metrics_t {
     u32 packets;
     u64 bytes;
@@ -45,6 +90,7 @@ typedef struct flow_metrics_t {
         u64 req_mono_time_ts;
         u64 rsp_mono_time_ts;
     } __attribute__((packed)) dns_record;
+    u64 flow_rtt;
 } __attribute__((packed)) flow_metrics;
 
 // Force emitting struct tcp_drops into the ELF.
@@ -79,6 +125,16 @@ typedef struct flow_id_t {
 // Force emitting struct flow_id into the ELF.
 const struct flow_id_t *unused2 __attribute__((unused));
 
+// Standard 4 tuple and a sequence identifier.
+// No need to emit this struct. It's used only in kernel space
+typedef struct flow_seq_id_t {
+    u16 src_port;
+    u16 dst_port;
+    u8 src_ip[IP_MAX_LEN];
+    u8 dst_ip[IP_MAX_LEN];
+    u32 seq_id;
+} __attribute__((packed)) flow_seq_id;
+
 // Flow record is a tuple containing both flow identifier and metrics. It is used to send
 // a complete flow via ring buffer when only when the accounting hashmap is full.
 // Contents in this struct must match byte-by-byte with Go's pkc/flow/Record struct
@@ -93,4 +149,14 @@ const struct flow_record_t *unused3 __attribute__((unused));
 // Force emitting struct dns_record into the ELF.
 const struct dns_record_t *unused4 __attribute__((unused));
 
-#endif
+// Internal structure: Packet info structure parsed around functions.
+typedef struct pkt_info_t {
+    flow_id *id;
+    u64 current_ts; // ts recorded when pkt came.
+    u16 flags;      // TCP specific
+    void *l4_hdr;   // Stores the actual l4 header
+    u64 rtt;        // rtt calculated from the flow if possible. else zero
+} pkt_info;
+
+#endif /* __TYPES_H__ */
+
diff --git a/bpf/utils.h b/bpf/utils.h
index 5338f1b72..8a6a79b7f 100644
--- a/bpf/utils.h
+++ b/bpf/utils.h
@@ -1,76 +1,19 @@
 #ifndef __UTILS_H__
 #define __UTILS_H__
 
-#include <vmlinux.h>
-#include <bpf_helpers.h>
-
-#include "flow.h"
+#include "types.h"
 #include "maps_definition.h"
-#include "configs.h"
-
-#define DISCARD 1
-#define SUBMIT 0
-
-// according to field 61 in https://www.iana.org/assignments/ipfix/ipfix.xhtml
-typedef enum {
-    INGRESS         = 0,
-    EGRESS          = 1,
-    MAX_DIRECTION   = 2,
-} direction_t;
-
-// L4_info structure contains L4 headers parsed information.
-struct l4_info_t {
-    // TCP/UDP/SCTP source port in host byte order
-    u16 src_port;
-    // TCP/UDP/SCTP destination port in host byte order
-    u16 dst_port;
-    // ICMPv4/ICMPv6 type value
-    u8 icmp_type;
-    // ICMPv4/ICMPv6 code value
-    u8 icmp_code;
-    // TCP flags
-    u16 flags;
-};
-
-const u8 ip4in6[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff};
-
-// Flags according to RFC 9293 & https://www.iana.org/assignments/ipfix/ipfix.xhtml
-#define FIN_FLAG 0x01
-#define SYN_FLAG 0x02
-#define RST_FLAG 0x04
-#define PSH_FLAG 0x08
-#define ACK_FLAG 0x10
-#define URG_FLAG 0x20
-#define ECE_FLAG 0x40
-#define CWR_FLAG 0x80
-// Custom flags exported
-#define SYN_ACK_FLAG 0x100
-#define FIN_ACK_FLAG 0x200
-#define RST_ACK_FLAG 0x400
-
-#if defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && \
-	__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
-#define bpf_ntohs(x)		__builtin_bswap16(x)
-#define bpf_htons(x)		__builtin_bswap16(x)
-#elif defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && \
-	__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
-#define bpf_ntohs(x)		(x)
-#define bpf_htons(x)		(x)
-#else
-# error "Endianness detection needs to be set up for your compiler?!"
-#endif
-
 
 // sets the TCP header flags for connection information
 static inline void set_flags(struct tcphdr *th, u16 *flags) {
-    //If both ACK and SYN are set, then it is server -> client communication during 3-way handshake.
+    //If both ACK and SYN are set, then it is server -> client communication during 3-way handshake. 
     if (th->ack && th->syn) {
         *flags |= SYN_ACK_FLAG;
     } else if (th->ack && th->fin ) {
         // If both ACK and FIN are set, then it is graceful termination from server.
         *flags |= FIN_ACK_FLAG;
     } else if (th->ack && th->rst ) {
-        // If both ACK and RST are set, then it is abrupt connection termination.
+        // If both ACK and RST are set, then it is abrupt connection termination. 
         *flags |= RST_ACK_FLAG;
     } else if (th->fin) {
         *flags |= FIN_FLAG;
@@ -93,42 +36,49 @@ static inline void set_flags(struct tcphdr *th, u16 *flags) {
 
 // Extract L4 info for the supported protocols
 static inline void fill_l4info(void *l4_hdr_start, void *data_end, u8 protocol,
-                               struct l4_info_t *l4_info) {
-	switch (protocol) {
+                               pkt_info *pkt) {
+    flow_id *id = pkt->id;
+    id->transport_protocol = protocol;
+    switch (protocol) {
     case IPPROTO_TCP: {
         struct tcphdr *tcp = l4_hdr_start;
         if ((void *)tcp + sizeof(*tcp) <= data_end) {
-            l4_info->src_port = bpf_ntohs(tcp->source);
-            l4_info->dst_port = bpf_ntohs(tcp->dest);
-            set_flags(tcp, &l4_info->flags);
+            id->src_port = bpf_ntohs(tcp->source);
+            id->dst_port = bpf_ntohs(tcp->dest);
+            set_flags(tcp, &pkt->flags);
+            pkt->l4_hdr = (void *) tcp;
         }
     } break;
     case IPPROTO_UDP: {
         struct udphdr *udp = l4_hdr_start;
         if ((void *)udp + sizeof(*udp) <= data_end) {
-            l4_info->src_port = bpf_ntohs(udp->source);
-            l4_info->dst_port = bpf_ntohs(udp->dest);
+            id->src_port = bpf_ntohs(udp->source);
+            id->dst_port = bpf_ntohs(udp->dest);
+            pkt->l4_hdr = (void *) udp;
         }
     } break;
     case IPPROTO_SCTP: {
         struct sctphdr *sctph = l4_hdr_start;
         if ((void *)sctph + sizeof(*sctph) <= data_end) {
-            l4_info->src_port = bpf_ntohs(sctph->source);
-            l4_info->dst_port = bpf_ntohs(sctph->dest);
+            id->src_port = bpf_ntohs(sctph->source);
+            id->dst_port = bpf_ntohs(sctph->dest);
+            pkt->l4_hdr = (void *) sctph;
         }
     } break;
     case IPPROTO_ICMP: {
         struct icmphdr *icmph = l4_hdr_start;
         if ((void *)icmph + sizeof(*icmph) <= data_end) {
-            l4_info->icmp_type = icmph->type;
-            l4_info->icmp_code = icmph->code;
+            id->icmp_type = icmph->type;
+            id->icmp_code = icmph->code;
+            pkt->l4_hdr = (void *) icmph;
         }
     } break;
     case IPPROTO_ICMPV6: {
         struct icmp6hdr *icmp6h = l4_hdr_start;
          if ((void *)icmp6h + sizeof(*icmp6h) <= data_end) {
-            l4_info->icmp_type = icmp6h->icmp6_type;
-            l4_info->icmp_code = icmp6h->icmp6_code;
+            id->icmp_type = icmp6h->icmp6_type;
+            id->icmp_code = icmp6h->icmp6_code;
+            pkt->l4_hdr = (void *) icmp6h;
         }
     } break;
     default:
@@ -137,68 +87,59 @@ static inline void fill_l4info(void *l4_hdr_start, void *data_end, u8 protocol,
 }
 
 // sets flow fields from IPv4 header information
-static inline int fill_iphdr(struct iphdr *ip, void *data_end, flow_id *id, u16 *flags) {
-    struct l4_info_t l4_info;
+static inline int fill_iphdr(struct iphdr *ip, void *data_end, pkt_info *pkt) {
     void *l4_hdr_start;
 
     l4_hdr_start = (void *)ip + sizeof(*ip);
     if (l4_hdr_start > data_end) {
         return DISCARD;
     }
-    __builtin_memset(&l4_info, 0, sizeof(l4_info));
+    flow_id *id = pkt->id;
+    /* Save the IP Address to id directly. copy once. */
     __builtin_memcpy(id->src_ip, ip4in6, sizeof(ip4in6));
     __builtin_memcpy(id->dst_ip, ip4in6, sizeof(ip4in6));
     __builtin_memcpy(id->src_ip + sizeof(ip4in6), &ip->saddr, sizeof(ip->saddr));
     __builtin_memcpy(id->dst_ip + sizeof(ip4in6), &ip->daddr, sizeof(ip->daddr));
-    id->transport_protocol = ip->protocol;
-    fill_l4info(l4_hdr_start, data_end, ip->protocol, &l4_info);
-    id->src_port = l4_info.src_port;
-    id->dst_port = l4_info.dst_port;
-    id->icmp_type = l4_info.icmp_type;
-    id->icmp_code = l4_info.icmp_code;
-    *flags = l4_info.flags;
 
+    /* fill l4 header which will be added to id in flow_monitor function.*/
+    fill_l4info(l4_hdr_start, data_end, ip->protocol, pkt);
     return SUBMIT;
 }
 
 // sets flow fields from IPv6 header information
-static inline int fill_ip6hdr(struct ipv6hdr *ip, void *data_end, flow_id *id, u16 *flags) {
-    struct l4_info_t l4_info;
+static inline int fill_ip6hdr(struct ipv6hdr *ip, void *data_end, pkt_info *pkt) {
     void *l4_hdr_start;
 
     l4_hdr_start = (void *)ip + sizeof(*ip);
     if (l4_hdr_start > data_end) {
         return DISCARD;
     }
-    __builtin_memset(&l4_info, 0, sizeof(l4_info));
+    flow_id *id = pkt->id;
+    /* Save the IP Address to id directly. copy once. */
     __builtin_memcpy(id->src_ip, ip->saddr.in6_u.u6_addr8, IP_MAX_LEN);
     __builtin_memcpy(id->dst_ip, ip->daddr.in6_u.u6_addr8, IP_MAX_LEN);
-    id->transport_protocol = ip->nexthdr;
-    fill_l4info(l4_hdr_start, data_end, ip->nexthdr, &l4_info);
-    id->src_port = l4_info.src_port;
-    id->dst_port = l4_info.dst_port;
-    id->icmp_type = l4_info.icmp_type;
-    id->icmp_code = l4_info.icmp_code;
-    *flags = l4_info.flags;
 
+    /* fill l4 header which will be added to id in flow_monitor function.*/
+    fill_l4info(l4_hdr_start, data_end, ip->nexthdr, pkt);
     return SUBMIT;
 }
 
 // sets flow fields from Ethernet header information
-static inline int fill_ethhdr(struct ethhdr *eth, void *data_end, flow_id *id, u16 *flags) {
+static inline int fill_ethhdr(struct ethhdr *eth, void *data_end, pkt_info *pkt) {
     if ((void *)eth + sizeof(*eth) > data_end) {
         return DISCARD;
     }
+    flow_id *id = pkt->id;
     __builtin_memcpy(id->dst_mac, eth->h_dest, ETH_ALEN);
     __builtin_memcpy(id->src_mac, eth->h_source, ETH_ALEN);
     id->eth_protocol = bpf_ntohs(eth->h_proto);
 
     if (id->eth_protocol == ETH_P_IP) {
         struct iphdr *ip = (void *)eth + sizeof(*eth);
-        return fill_iphdr(ip, data_end, id, flags);
+        return fill_iphdr(ip, data_end, pkt);
     } else if (id->eth_protocol == ETH_P_IPV6) {
         struct ipv6hdr *ip6 = (void *)eth + sizeof(*eth);
-        return fill_ip6hdr(ip6, data_end, id, flags);
+        return fill_ip6hdr(ip6, data_end, pkt);
     } else {
         // TODO : Need to implement other specific ethertypes if needed
         // For now other parts of flow id remain zero
diff --git a/docs/config.md b/docs/config.md
index 22827e9c9..d456199ae 100644
--- a/docs/config.md
+++ b/docs/config.md
@@ -63,6 +63,8 @@ The following environment variables are available to configure the NetObserv eBF
   * `KAFKA_TLS_USER_KEY_PATH` (default: unset). Path to the user (client) private key for mutual TLS connections.
 * `PROFILE_PORT` (default: unset). Sets the listening port for [Go's Pprof tool](https://pkg.go.dev/net/http/pprof).
   If it is not set, profile is disabled.
+* `ENABLE_RTT` (default: `false` disabled). If `true` enables RTT calculations for the captured flows in the ebpf agent.
+  See [docs](./rtt_calculations.md) for more details on this feature.
 
 ## Development-only variables
 
diff --git a/docs/rtt_calculations.md b/docs/rtt_calculations.md
new file mode 100644
index 000000000..6d96b1236
--- /dev/null
+++ b/docs/rtt_calculations.md
@@ -0,0 +1,27 @@
+# RTT calculations done by ebpf-agent
+
+This agent has the capablity to perform Round-Trip-Time calculations for packet flows. Currently the agent will capture and report RTT for tcp handshake only
+but can be extended to any other protocol.
+
+The design of the system is like this,
+1. For every SYN packet that gets detected at Egress, the agent will capture standard 4-tuple information and packet sequence id and put it into a `flow_sequences` ebpf map as key and the value of which will be set to timestamp the packet was detected.
+
+1. Now for every ACK packet that gets detected at Ingress, the agent will check if the 4-tuple information (reversed for incoming flow) and sequence id (sequence id of ACK - 1) is present in the `flow_sequences` hashmap, if so it will calculate the handshake RTT as,
+`rtt = ack-timestampack - syn-timestamp(from map)`
+
+1. This approach is very simple but can be extended to perform continous RTT tracking for a TCP flow or perform RTT tracking for any other protocol like, ICMP etc.
+
+This rtt in flow logs is reported as, actual RTT for the flow logs which is present and can be calculated (handshake packets), zero for flows where it is not calculated yet (any protocols other than TCP) or is not present (non handshake tcp packets).
+
+## Concerns
+
+### Packet Retransmissions:
+
+In case of packet retransmissions the behavior of tracker is as follows,
+
+1. If SYN packet is retransmitted only the last SYN packet is taken into account which is correct behavior.
+
+1. If ACK packet is retransmitted the last ACK will be considered (the ACK which finally got received by receiver),
+in that case while the behavior of our program is as expected, because receiver will only see one and the last ACK but
+the RTT reported by the receiver will be much higher than the actual number.
+For now, this is an erroneous case and can be fixed later by doing either continous or multiple RTT monitoring per flow.
\ No newline at end of file
diff --git a/examples/flowlogs-dump/server/flowlogs-dump-collector.go b/examples/flowlogs-dump/server/flowlogs-dump-collector.go
index d04af1c02..b083a96ee 100644
--- a/examples/flowlogs-dump/server/flowlogs-dump-collector.go
+++ b/examples/flowlogs-dump/server/flowlogs-dump-collector.go
@@ -72,7 +72,7 @@ func main() {
 	for records := range receivedRecords {
 		for _, record := range records.Entries {
 			if record.EthProtocol == ipv6 {
-				log.Printf("%s: %v %s IP %s:%d > %s:%d: protocol:%s type: %d code: %d dir:%d bytes:%d packets:%d flags:%d ends: %v dnsId: %d dnsFlags: 0x%04x dnsReq: %v dnsRsp: %v\n",
+				log.Printf("%s: %v %s IP %s:%d > %s:%d: protocol:%s type: %d code: %d dir:%d bytes:%d packets:%d flags:%d ends: %v dnsId: %d dnsFlags: 0x%04x dnsReq: %v dnsRsp: %v rtt %v\n",
 					ipProto[record.EthProtocol],
 					record.TimeFlowStart.AsTime().Local().Format("15:04:05.000000"),
 					record.Interface,
@@ -92,9 +92,10 @@ func main() {
 					record.GetDnsFlags(),
 					record.GetTimeDnsReq(),
 					record.GetTimeDnsRsp(),
+					record.TimeFlowRtt.AsDuration().Microseconds(),
 				)
 			} else {
-				log.Printf("%s: %v %s IP %s:%d > %s:%d: protocol:%s type: %d code: %d dir:%d bytes:%d packets:%d flags:%d ends: %v dnsId: %d dnsFlags: 0x%04x dnsReq: %v dnsRsp: %v\n",
+				log.Printf("%s: %v %s IP %s:%d > %s:%d: protocol:%s type: %d code: %d dir:%d bytes:%d packets:%d flags:%d ends: %v dnsId: %d dnsFlags: 0x%04x dnsReq: %v dnsRsp: %v rtt %v\n",
 					ipProto[record.EthProtocol],
 					record.TimeFlowStart.AsTime().Local().Format("15:04:05.000000"),
 					record.Interface,
@@ -114,6 +115,7 @@ func main() {
 					record.GetDnsFlags(),
 					record.GetTimeDnsReq(),
 					record.GetTimeDnsRsp(),
+					record.TimeFlowRtt.AsDuration().Microseconds(),
 				)
 			}
 		}
diff --git a/pkg/agent/agent.go b/pkg/agent/agent.go
index 2553feef6..18d71990c 100644
--- a/pkg/agent/agent.go
+++ b/pkg/agent/agent.go
@@ -116,13 +116,23 @@ func FlowsAgent(cfg *Config) (*Flows, error) {
 	}
 
 	ingress, egress := flowDirections(cfg)
-
 	debug := false
 	if cfg.LogLevel == logrus.TraceLevel.String() || cfg.LogLevel == logrus.DebugLevel.String() {
 		debug = true
 	}
 
-	fetcher, err := ebpf.NewFlowFetcher(debug, cfg.Sampling, cfg.CacheMaxFlows, ingress, egress, cfg.EnableTCPDrops, cfg.EnableDNSTracking)
+	ebpfConfig := &ebpf.FlowFetcherConfig{
+		EnableIngress: ingress,
+		EnableEgress:  egress,
+		Debug:         debug,
+		Sampling:      cfg.Sampling,
+		CacheMaxSize:  cfg.CacheMaxFlows,
+		TCPDrops:      cfg.EnableTCPDrops,
+		DNSTracker:    cfg.EnableDNSTracking,
+		EnableRTT:     cfg.EnableRTT,
+	}
+
+	fetcher, err := ebpf.NewFlowFetcher(ebpfConfig)
 	if err != nil {
 		return nil, err
 	}
diff --git a/pkg/agent/config.go b/pkg/agent/config.go
index 7cc146295..71b0b7ddb 100644
--- a/pkg/agent/config.go
+++ b/pkg/agent/config.go
@@ -136,6 +136,10 @@ type Config struct {
 	KafkaSASLClientSecretPath string `env:"KAFKA_SASL_CLIENT_SECRET_PATH"`
 	// ProfilePort sets the listening port for Go's Pprof tool. If it is not set, profile is disabled
 	ProfilePort int `env:"PROFILE_PORT"`
+	// Enable RTT calculations for the flows, default is false (disabled), set to true to enable.
+	// This feature requires the flows agent to attach at both Ingress and Egress hookpoints.
+	// If both Ingress and Egress are not enabled then this feature will not be enabled even if set to true via env.
+	EnableRTT bool `env:"ENABLE_RTT" envDefault:"false"`
 	// EnableGC enables golang garbage collection run at the end of every map eviction, default is true
 	EnableGC bool `env:"ENABLE_GARBAGE_COLLECTION" envDefault:"true"`
 	// EnableTcpDrops enable TCP drops eBPF hook to account for tcp dropped flows
diff --git a/pkg/ebpf/bpf_bpfeb.go b/pkg/ebpf/bpf_bpfeb.go
index c1037c2d1..3171606c1 100644
--- a/pkg/ebpf/bpf_bpfeb.go
+++ b/pkg/ebpf/bpf_bpfeb.go
@@ -48,6 +48,7 @@ type BpfFlowMetricsT struct {
 	Errno           uint8
 	TcpDrops        BpfTcpDropsT
 	DnsRecord       BpfDnsRecordT
+	FlowRtt         uint64
 }
 
 type BpfFlowRecordT struct {
@@ -55,6 +56,14 @@ type BpfFlowRecordT struct {
 	Metrics BpfFlowMetrics
 }
 
+type BpfFlowSeqId struct {
+	SrcPort uint16
+	DstPort uint16
+	SrcIp   [16]uint8
+	DstIp   [16]uint8
+	SeqId   uint32
+}
+
 type BpfTcpDropsT struct {
 	Packets         uint32
 	Bytes           uint64
@@ -116,6 +125,7 @@ type BpfProgramSpecs struct {
 type BpfMapSpecs struct {
 	AggregatedFlows *ebpf.MapSpec `ebpf:"aggregated_flows"`
 	DirectFlows     *ebpf.MapSpec `ebpf:"direct_flows"`
+	FlowSequences   *ebpf.MapSpec `ebpf:"flow_sequences"`
 }
 
 // BpfObjects contains all objects after they have been loaded into the kernel.
@@ -139,12 +149,14 @@ func (o *BpfObjects) Close() error {
 type BpfMaps struct {
 	AggregatedFlows *ebpf.Map `ebpf:"aggregated_flows"`
 	DirectFlows     *ebpf.Map `ebpf:"direct_flows"`
+	FlowSequences   *ebpf.Map `ebpf:"flow_sequences"`
 }
 
 func (m *BpfMaps) Close() error {
 	return _BpfClose(
 		m.AggregatedFlows,
 		m.DirectFlows,
+		m.FlowSequences,
 	)
 }
 
@@ -177,6 +189,5 @@ func _BpfClose(closers ...io.Closer) error {
 }
 
 // Do not access this directly.
-//
 //go:embed bpf_bpfeb.o
 var _BpfBytes []byte
diff --git a/pkg/ebpf/bpf_bpfeb.o b/pkg/ebpf/bpf_bpfeb.o
index cdaf6f13945bac619aaad7889be15ae739665777..92303ee5b710b77162cc4a4ebdea73096ff99b66 100644
GIT binary patch
literal 72280
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

literal 67240
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
aEkWXF_%bNpgOW8U9f9<~_I1GgF987UZa`ZA

diff --git a/pkg/ebpf/bpf_bpfel.go b/pkg/ebpf/bpf_bpfel.go
index 4aa8bfd8c..32e900b5b 100644
--- a/pkg/ebpf/bpf_bpfel.go
+++ b/pkg/ebpf/bpf_bpfel.go
@@ -48,6 +48,7 @@ type BpfFlowMetricsT struct {
 	Errno           uint8
 	TcpDrops        BpfTcpDropsT
 	DnsRecord       BpfDnsRecordT
+	FlowRtt         uint64
 }
 
 type BpfFlowRecordT struct {
@@ -55,6 +56,14 @@ type BpfFlowRecordT struct {
 	Metrics BpfFlowMetrics
 }
 
+type BpfFlowSeqId struct {
+	SrcPort uint16
+	DstPort uint16
+	SrcIp   [16]uint8
+	DstIp   [16]uint8
+	SeqId   uint32
+}
+
 type BpfTcpDropsT struct {
 	Packets         uint32
 	Bytes           uint64
@@ -116,6 +125,7 @@ type BpfProgramSpecs struct {
 type BpfMapSpecs struct {
 	AggregatedFlows *ebpf.MapSpec `ebpf:"aggregated_flows"`
 	DirectFlows     *ebpf.MapSpec `ebpf:"direct_flows"`
+	FlowSequences   *ebpf.MapSpec `ebpf:"flow_sequences"`
 }
 
 // BpfObjects contains all objects after they have been loaded into the kernel.
@@ -139,12 +149,14 @@ func (o *BpfObjects) Close() error {
 type BpfMaps struct {
 	AggregatedFlows *ebpf.Map `ebpf:"aggregated_flows"`
 	DirectFlows     *ebpf.Map `ebpf:"direct_flows"`
+	FlowSequences   *ebpf.Map `ebpf:"flow_sequences"`
 }
 
 func (m *BpfMaps) Close() error {
 	return _BpfClose(
 		m.AggregatedFlows,
 		m.DirectFlows,
+		m.FlowSequences,
 	)
 }
 
@@ -177,6 +189,5 @@ func _BpfClose(closers ...io.Closer) error {
 }
 
 // Do not access this directly.
-//
 //go:embed bpf_bpfel.o
 var _BpfBytes []byte
diff --git a/pkg/ebpf/bpf_bpfel.o b/pkg/ebpf/bpf_bpfel.o
index df2199eef85efc66c71fe22bac3642b760bfa572..4e3eb08e6013c0cb8dee3457fb206dfb289988a3 100644
GIT binary patch
literal 74160
zcmb<-^>JfjWMqH=MuzVU2p&w7fx$oqA?g4Yc3===5M|h}0p>957l+UiY!DhoCMH5y
zqKuqiMk@mY13Lo)157-ffq_ARfq|hMO7CX^D`T)1g3$U<S{|f`fq@~EA%q1a12Tt|
zfq`K^)V}Rd=VeR%_z#k=mihptUqI;xQ2GXxz5u09K<NWudjBGjZUzQ+CI*HB|NsB5
z)|vqpua?>Yr8hw76%aaW0hms#3;=6PEc5}>`=RaznZw7xz@R(H7VPfr%wTDT{UQ*W
z-vmMzI)i+}z));;4s2ebGgvu8vDH~9AEL3?>I{?*38-SL(@;Jn0E(?nLHNQDbBnD`
zg83kOK|zISFU*{yV0DGgFnf+c_`)DvAa@;x@SS1y9D(v-?mQ0V!~6jW*Gyp^utWAk
z{dtFlfkA+Qfg#%q65gWB#tdzD85lyD8yGl1X@il0K?xLI6UD&>gWL@=xY+6zh+-(V
zx(TIULFt!Z8l(<nQLz;yev7THgT;%ju0iRmQ2Gj#z6_-=LFtQ78j>!Gt<FRF&!F^E
zDE$OVKZeqep!7p14M}IkR`;QNNct<bdJg6%Dx-!+IST`W1Oo#@vDZDYJS?0*;-GLU
z_PPreFSfc3rpuWbz~NMEbqCB(R0gSHU_jOfG4CB%9$6fuve@e_SiIQkHJC=2_Xf-_
zREFeJRt8T{a5AtnGBB8d<KrnfVQgoC*uP&HEX~0045156_`wXAKMGAisUGAni2Dmo
zc%kwTcNdyK!lBp;;;%vzZm2vYo(oO5pnOPt7n(raRqO?c-$D~mY5|!KiRVHSP^kjq
zL*l#81e$KWAn{&k0!^1*koYe&0VgkpVlPNKC^P|kkD=HLk{$|8p!vcJk}e93Vd)-{
zJ_?ng_CwPNC|p3{ju|d6cR<n)!kv(Gg>VNXJt5o)NoNRmK++e&ose`_r~<MT<ZnoN
zD>Q++(+iRg5%B<tcSJlv(gz|QAn5@SPtf!Lj|WITL&Os#{~_W5lD-R#q48t|N%w`y
z5dZIA0*+1wb`}PP8UO$P-#-b$Zxvu*xXR4Hz{;Qo7J!xG#ZsTZ>9JVqBb0`e=fzU*
zp?rw@i=`m`Dwcw{w^$0|k76l^`--I??k<*sxTjbO;?80zNca~^LE@!Y3KHJMQjmBk
zmV$(Du@ofSi=`mpSu6z!=VB>Hel3=Qr0-%WNV+bTf~4nSDM&glmV%_;Vkt<vEtZ0$
z*J3G1IxUuhq|ah0NV+VRf~3b{DM&gjmV%_eVkt<vE0%(mOH!Y~;UEEtZgALvh(bXS
z$-p4WC<>N=g=e)?23UQyR05QafYJd_+5=2iE`-!~g+j()gF=~j7(p>uxd>A4i8674
z&4s0Nc4h_!P*tWo8B|g*Fo<$AK=g62f?E}tiy`%7I5PtS6C(qIC^Lv;VA#JHtc(Gq
ze*vhTwQ>O4UnndCmPm(|bA_VPV7`Aam}025vVf=)l>-Z;vqH+FLIGJY-yf3A8486V
z`2uc^0HlH956R{X)m8=&a|EQo`atavP>wDXkp%PoA&ne{LJ^Sf7#Px_<zAsMq+<1l
z)@OynVqo=fdn84{eE-Q{iUA}JDtG;%<s`@+5WjK>#D17PAb&u_A^!7sh3HRIf|OIq
zQIPmb<_ZD3JJ|{nZ-v4jT?}A*Anu2h!!Y{_MIa3kxcfyR3B*4HVm?S5WCF}T$zDES
z^9u!3zzRU_1)D1jDe(Obz`_iLB9QzF(hreW1xvupDHMh@3_<<}%ZsW*<e~9cD5?eK
zgZvGam(&FF{ilK{29P+|U8YbzwB6tj2@ZxrVMv1zZoYs#SRpKa3k5)}2nGhY`y~}2
z@)N)mSR8CV)IZ5wF<^fudqMI?a#RYKUnr~t)&RFhL>tUUgs&c$4-W@XT`(Va_(JmG
z9VSS-w@}y+tiDjh2tteMLuf&W!;-af!0t$Agrsx-K(I7JwiG14!t8~Gd$yMsSUqw(
z*5m*G|LEmJ<zh&F1Jzp~6G821P>qMK4pE+TgOo9dGIW7ykh<Mq7KGT&#J~VbA*>87
zU;*TOF96Q>&0ujt;aLqU2So6PE1~p-C@1izvqDK|I_HFhZy_w5TY{a-P$&#d=dkif
z0GiIB<p?NUfYT8yzq3Nxx0MT^`50Orf#M0Iu5tk+++pcBQ3;g#85okip!qurJ%6L6
za}j7dhn6RWBG7aWE1yK6>6}ph7KN5;u<{dDu0it~M!6;eE!SZ73P8(O257j6K+9Kn
zxd|;-VeXQIma9`B;R*{6SUAAL5neukLW==h4uC?aPykx4LBq3909vlW?3aX=Yv}nK
z(k)|v=Wi=${`P|9Z?yVG1X|y~{3!yhXJGyih1N4T!xuGwgZh8}|NsAAC=AWlB9MGt
zC<@K@f{=Vqt9%a1*PseplmSw2Rf0GS3=EZvApKT(NH8)~YeD+Agvt$&d7z{Z%Kwm<
zgpi1G0@PYyU=U@1L=;HfJ%|!82`VQ*DRe)`5C#SYka-{-iG`5*qPXi2xcthN`Ua-U
z86o)z)~`o)AE<v0G9PR(lmM9r@}ek1Cs?Eq+zMe}fR&$xphAv;fx#c-2nGg*LMDhq
z(wU&?m>HtL9}+DLAaPJi^oNF1Av2_X3rerxbjb)J85sN_!OKv{2<gYb?PG!TWBeV#
z&S5BIg@g;Jego+&WPwy@u=>7`1=5cJ<qxnt2PkwH82ll{D!3g2b`LE5LBq!%lAOTf
z79jt_+Gn8t9Y}q#0mNU(;-DN{Yyk0pF{GGbD2Ikau>!~xNVtKd;O=LFq<>JjfZfLo
z$v?30N-T!>lOO7y{mBqM$Q>4-ey#x|e<6#5azwEKq`W{D2c?K&14y}nEDmx{u>r{S
z3=GKPAdzANNI8To4)H&vorWw9a(}S_q+BabfRu;(q45ZEFT`Dt_(K+l_yZEp$l?%p
zflOs!Ko*Di1Cnl##Ubv3#4oZq#2=7!P%HpRAE0~yGPzg)l72E5LfX}^bXlwbi3ddd
zLE@=$AtYamGD7?b8<zs91N%e47aT#z;$VL(ppIjK)Pwz@;Ekak>~94x3~{hO6d>aW
z$mWCnt>6JxUo7ATrV;*g2lEN#b6EL7eEa1rI6;dtoB`9Iaw7t46NCVjOCa~c%mtMr
zpqOE0I0jY^>PLYX$<TIJVj)D|{v-$u3Lj87Bx^zI7cFRgo&{}JW<l$9DM<So7B9%*
z0t)wRttsGg4_O>!ZnoAW3~^96W@}9Vi)TyqfoWK}$d-cCZy<MrT$n5c=`UnULE4kq
zQdwa2+0cGrwp1FFUjn6zpmYJ0&V$l5P`V0AS3v19DBS|3o1k<9l&*u)Jy5y}N_Rl%
zHZYAI@5uc`Z0%U|_=k-Li?a2DqKg3(&mjN9FruD<<Rg%L0ZfvCfdP~bKqUpNoPec+
zc2Hsfm0wwqa02N=(gxPo0n!gCPQmpWsKpz~0Ll00>Jjd!g1fT~$v}`hKus~2{j3b7
zV0D=bA>-S{0-)T>z<|g%kOphzLdZA?a{2+OELJcFn~p3FN^ivqpwT@B24rzaJ_p&3
zDh^7A#R`y)FS2@2zA09Kj29q_gVJZQ0;D1>7693X>|RI(QMnK@E`zKO;$BF530WLu
zLa_p*Uw|wQaWACbg)9znFQos5EDmumq#uVY4skD}zfddyG8Ngqkp5}qLdZA}vOb7=
zA^lrqafo{%{Rd=mkjcdgkbVTRIK;h>{s^)-#J!;26>5Ay+zV;{7Yl%NBfA&Uz^Pma
z8FxZ958_@(KLS}C;$BF57g-$QUPyg{EDo{}R_`E-L);6k=b`N;Q27XPFQlF?hV~y2
z=@(MZS1yE%b0M1taWAx9M=}rMUQljD4Ht-eG3z^sd!h9_k~t9fLMnb_dm-+HC@dBL
z@sPt8(%-0D2$|<V)(3Gfq`!hJ4skDJTpU>(;$F!3II=jzy^wKoWO0alq3sWd^T6#k
zkPC|yAnlc60Z?lJ*}af*sB$4>-UZn_h<hRJ4P<eMdm#lMvN*)Okn$5*9O7O`dj(k>
z;$BF>h%63qFQi>s4B~+10ioj@#h^h0P(NiMWSj$8AH=<o1~sxc#J!LXD6%-jz4jR8
zAH=<O7~&B3+G2=<oLH=20~Rk9umaPF^lJ^~S1yFqv&i;C+>6-`g18sb4nkHBaWAwT
zgcQFJ_d?oB$m${Pg$x)Xi$mP&0(MuifD@QTxEIpFty~Ccry%QtxEC_ege(qmFQh|_
zEDmw6KiGU^afo~UFvKD5#cX#%+zV-U77IYylL+@h+MSgPA?+(<dm!$O#IOhAUPvns
zSv|zP;TY;6?hV5bhqyNsLmc8>NJp$#AP6jva4%#aqjDi+JOJ5#h<hOu<H+I=_a=bN
zK^BL&Hy%SA;@&t6afo|kF~lM6jRA`n3q*lwgnOgG{K|!p_8zkR5cg(+<&ni9?#;ju
zhqxCs@`_q6L)@E&p&sJiR19&5dsD#T#R8CqHp0D-j%DRSNc$7nT@d#|8tBO45cfh_
zd&uGt_vVA`K^BL&HxEM`;@(^gafo|!z~aRMSzsFB-fS?xav`KWjBF3Yy_H~jWO0al
zD=@?%?gg!wz!tt`80sPJEyWOrxVHo>UMx@qrV;LibmS`+LfYrZ?t-|t5v(3r9O7Qc
z{137?#J%+x>LKA<hanDeZ!Ly6#Jx3O@nV50FpY3;HJG2c5Yit)wjW|1s3naWUJ&yj
z11rS>O<?^9^FXb428PUqkp5V)0Hk$}kZ%X8-w$q;L;4LM0gx>q6QR=>46yYNp!qM*
z!Us`iNc{+2ufWK_kSPMG-@`$|ObiU6ERc3DUVThx`WQj_K%vZl-#!*JeJmh-kai--
zJs_{3xCd-5q}>OS2i4Rl@?iHu+HD|tP<W!q3xLdrw8KF1ATOfGgYAd3qd@YY77L0z
z2S`7pT?CQ`r56-=1&}<XT?3K_)%+;(4j_3*I|U>UN|~90knjeL&w<kGaYhCP5S_}%
z%m5mv&4dI818h7k8(ROu;&VTw`h~A|s)Q8d48?|!{!c2iBq*90M42_f>!?JT85uw=
zC{_k&eGbW1;CW9_OH@}GQa@)xvL6F%eC`f2WZbjZ5Rx81^F<*4f!fjF{HF+VH3LIt
z5hzv|u;_#IuQ2sN`eU$h3()v9DBku%ic1F2eEiD)|NpasLj^QnE5-ndAyH;^22hI!
z<R4J_W@Ui(w~+h;3RzucNdJja|FAMZ0)9V|`JnWns|@L%6hgzRSP{}6Ei3}1UeG!M
zP;O^nz|;rnKTzr}%=p0{&aB|oZrI!dNtd|%QLG5*e^-}5`~y#a5N|MS2PG;728QY^
zNPDO{3(}6O&VsZ*tFs{O=ISiSd{cE6WIn1o3o`FqouvUDZ>i2wfYK6BS^!FOKxqaj
z{o@~~e5=m-0Ht3*=?75y29&-4rB6WV15kPgl->ZPS3v0nP<jTGo&cpgpmYP6t}F({
zJ_E!4g&<cjfY&88{QLhOG*0pYI*$M<UlJ=I<Dj5%FHp|VZ9EN580h*cq3Z)gnL#B0
z0|Q7sD8=zZx`7PaA>AQ{>?+83OLY}wT&21SGG0+#1sMmZu7dQhtE(XW*6J!qf3Ug=
z($6Zc+7AxD?5aIr8rdED|3lmlav-SQ0J$Go9^}77A;^SQwia|ggb7kEWNSg(m0blH
zuS>3iwA-qyAnnaep<UpBsuVr}ruiYm2Mqg{fw>IqYzzz;pmjLV@(UD>pq?qr9iZ?4
zsf3ji{Gh-A&6g-b`f<fl&~=E4pipLDD3*e*LsSI$2E>Q1Lxh@NECpGISf~g|_r+4s
zb&iT4UxU;`);WUg1to3V_CnVs!tI5wTZG#SU6+^$G6iHVbloD{UP$~D!tI5uTg*%Z
zm0k=CccAkr*;0`B6J>-<{E9N#G2Crqfag0_h6b=l(c>#qXa^|R7|_E#xeC%wtwxI{
zeDMLQACTh%lz=eT6``$js)DX7s)DX7s)DX7s)DX7s)DX7s)DX7f~MQzD(Jc*XnHQL
zg054lg07RQg07RQg07RQg07RQg07RQg07Q-=8NJg=sGEAekrbkth-8thBHR{ObfD}
z3RxUfFBNOS)>lE+Rl(a|(Dhb{i6B*|?K)72S*!(FABJfjY`qv{ofyJA$ojFuL`Zvr
zl>yQ}1f@q%gjP#I+QHRQkoJ4E6f{1ip!p6uj!tZPz!&eJmK;3Zq4RP3q4|g(+CC{1
zf)r52T9EiI6oRIAEl9i<3PJOk79{=)g`oLN3z7~Bg`oLZ3z8lRg`oLZ3z9Ahg}}+1
zp;!x2t`#Oh%HLuwNIEGLf{bq!L*uPb2vmA7Fu>xgPzcg)E7pRniz^g@<ga2aNIVt_
zLB_9&wIJ){3WcEKR$7qta)m;WcqrC_l&^(?Q2U|l=RoBZD4ubL3nbkl!Ud9k5#a(!
z$B1x&q-R99K+-iLTp;Ni5iXGOzc2~p3Xs1c=^YU+ko1QL7f8B8gbOsi!NUcT9ueUJ
z$=8T*fvjUhgbSn|LWBz>e-%Q@Jy`o7oRI-sfrm1_0=Gk}yDGr-DP}s|21@1_<rd7G
z<Sb}<&w{4+EJ!`Ge>qqi13NpkK7qC)LGgoJeq}<sw+xvTkaUJT&$9<q4?*>T+MmfR
z3=I1r-AizJ3~u)_GBAMKz0h@`cQ_#RU~v~@edzv)5O;veZ&dY=dixG1RQ)W-`cY86
z2IZJy=sL>cEXcZp!sU?qI&&qozDC;*fIg1{%BP^563PHczaVo#{9-A}%oAmRj29F#
zfqFd*;B^R~98kyz8MlYc`xY`n#{WV68L&Jvq=10+UqIrZ5)!`Nff+Kt0AIhr1Zf!f
zLnwwqCdhmRe14w=GEd<T89oHJyFmVf?IVD%Q+I&ai!2Vx8O06|_Z36e=fTTc=zImp
z9<ci$-4cdEW>D#ew4RX>GOvPIUjgY~fcypaFAHQ|2DUx{Bn~zY(kutB`v8R?%>T&g
z4&1&{f{X{j%GJun(EI^)52(Kd_J;z*!2L+#AbW}xApJ08age);6(Ie#Vgu-W6?DBb
z$UKNVWL~Ox0%RVlxB%Lpg0{0j>OdwJD?t2*T#teCfdV8Pki|j%ELMPo7qU1gM2i(b
zBx*egaX%z}k<~-|3rPpX0+57(h&M?3K@LZ3>u_N6=;-sa==ldR4+<G~6=i^ovx3w?
zW-KB38dRQuQW(r!P`(4@UseXlxHCvSH0Zz@K<Yt0L!ZZm?P~z(2i1_s{s5&1Q2qrO
z0L#BH`#|eKK;fHg1*!j&tsv!LG8be%Jedp94$oW+EjJ+DQU*}|0LQl%WE`n-DKvdS
zhK<4Upm@mkf~>pFj+zE)<}rZ7jS;j@1~M;RY&97yo^1u0UoTt?DW{69rh>&2q3Iab
zKLxoL9FJCzbpgoYAp44~dcpdNwYtGHD7}H*sRfyzPlmQ@ilrd)^u<!0V0FdNc2Kbt
zWIaN$)I_K_WZbP-svpeHmV&G=%a)o4<<EiAv!FC&{YtjfGAMrulwJg-A?wYvrPe|D
zYoPQhD7^(rZvxY>_3g;<2}+m9>jyyn9Z)&}#V-tl!x`Ft1l3Hi^#kbY5a|?D`Y|ws
zvTX$0yB{)K&j9P6!}^WYRnY!;6|_HI1?`VlLHpxX(EfN8v_D=2?T=SM`{Py6{&*F%
zKVAjxk5_@KbB5|FXn(v4+8?ii_Q$KB{qZVjf4mCXAFqP;$E%?I@hWJ4yb9VMuY&f+
ztDybyDrkSa3fdp9g7(L&ApP;`Do8r66b7Xl29$nf#lQdmVeK+dK1A-HS64yOMPeef
zUki<YQ27E%m)TN~bb;t6LGoF36(rwPS3%q1Rgm;nT?NfIRnYY*(0+Du6=dC0brmEX
zWhO%V!^zP8FtneK+z#IWYKK7E*&ug=TC|{Y0@QMbl?%B0rI2!<5Z*7X2B(igc)t{~
zUZxOgez8;~R320cf%>VC^)ZNkX)RbDWG|?k!)-5Q-3`LtQm{URy^wMV)-EiTDu&9#
z?1h9c!rpSQJZ66w((V&wge-&=WwZzPhe2fwXxtQ*pI8}8!5IX(eF;hrxckMBes(ol
zeBp~1<aQ+}d_WGyET<slOtI8VkTgSa6|@|!YK8J4<!EtLGn5ZmuT)&s2<1c4TX9uA
zln+UF#Z~Q4KBSy3u9^zvL(2E!Do8n9Tm>y3tDxm0G`$vALCVKsXu2(~nhw^FyI%|~
zzoC^IsGJ7nlVUAs`7H%4zhU#{Qjqc+cfS}?9wXQH5cB4O-BBzx8%%@pBPeGVOF_zQ
z-2Gxm|FBvLGOkh$9XCPWFH3BCz!&eJ77RQ;66_a4;v3QbgTy<c{|AYGME?(x4iNo6
zNP0l@{~+lC(f@;_4@AEhl1>o)KS;bG`hSr4LiGP2@r39XL*fz9|AW-Ki2fg>{zdfv
zAn6g&|AVAUP`L%lld$p^)~-d27eLZ2B3vNp7ZEOybc_fWNP0$u3nX15!UdAP5#a(U
zml6G9NP0(v3ncv^!UdA<5a9w%Z}5IGBt0U+1(L53;R4Cuh;V__2Z(Ti<S$tH2kQ@u
zGOC07!=SK2F26z<=Yr=uK;;UkOskfH)E}7X7khshxjzi5PeA==P(FgquYlqQ#D}G0
zbo)W}g63O_r51zpA-ungvp)=JFTwiPxckA7dKb}eUI;cH(J!74=4TdyYCFU@C}>yT
zkN^Mwt1?zGFff7US3s?5$apy@e3FUI?>NE>X*?PfUa)iv3Mb@pJ`=M1fFUyj)JkJu
zKyK&dA=TT2#}6RkMJSv=@c^oKVevpP+|nT9TjgxvU}6YoV_*QS6xt37BnHsFNJa+G
zj7}(LAecr@C*b<A5E4H8kmYO)mBr9@3S^lB%DhJcblw1DBP<<du1o^QUpOZN18ANT
z=08w54jL(3&d30sk1Upgtm{oIgY<hdS3ufL$l+OlWxp869#F-;A7mJ`y$otWgtD7~
zeFzFK5KEL3qzaNgKr5?2@dy%0)`H|C5Fex=Sqn0Mklh8LleHk@X_<>5^I5R@&ulBm
zI9#$8WV|kOF~pw;d5CyA8)QG-aVVXf1?eAv;se}o%Yw8AlcD38$<T4hWG%=zTDI07
zaQG!d=T(xmzCihq@uOrd$aq~cbUZQ{I<A_`1(|P1=7RS7AjuQF9uI7<7NlNG)`GNi
zkozOx^bYMO@`DmP=v)L9NdAMZD*(kGXdED01e6*X7_uSK;PWy-^>#K3#6m*xhu+VD
zrAv6f1!4?%{ufjpVv`5OBPf4ilLy5qGXDQRwWuh+NTDRTKp~|lzd#|mC^fMpGcR2s
zFST4DEhoQRK{bVo0Zmb9K?+0>ngU$ni76={BjKu(^GkD5^3+Qdic*VHi^@_JiVG5x
zQx!7v6iPBu6^b(R(vwQl^b}l*@(T)J8bNMQC{8Sc@fC_w3rkb;l2a9mQj_zGQWR8E
zKuYq96jIAFlfhm9+Xqu-1ybN109m$%90XKl&wtGbJ|_ZX=ou3R1`y_iEGYyDfp;;1
z;)j8O0n|bVov8xlGJpsALD36JI-pg#pnQv@4x}H1nII_)#6;BtQVSAgVqjnar8&@w
z518Sg*?5q7pfOj-h!g`KsEB~cGcYhPK}JSFCZL*&tOit;LC1SIKr;uR)tWpE3@o5E
z2Ow{P`eGmxK%+#U`Vr&~P}dujZ9sJ>XcZcW4O&eJD%n7*PCzTCK&zxc>>msa44{=p
zAag1h85lsTcR=h8Mg|5@PZVV43`Pb9(6)3CdjTT@!&(Lga9dynBLf2{KY)tn4U7y7
z2S5&CVBi4FfE<CcLGC#PVKail8pOW|;d6kR?suSUP`C3Tgbm)A25JjHxR9^`*$s*(
z^tgbDgUo#o(ZB&(3h)`q28F>-2pbmv5FP^q6KKUX8zitfK=Cik$N<`vzyeyCsl>>@
z0P+_|u@)l(18DXfRBjnS*`P269r*$hU%<e?5W>j701CGU3=9lWjF9m8z`($ez{tP=
z8kq)#a~30{ES|u~0N%9#(hJ&tRtI$hXhl&IlnqKhpf~`fF;G~5($RcIP&<Qx1r%1e
z+_xI)4v_nHK-~d~_oGn%fa3l-BLf2q0|N^vT|9xR2l*4`2T)i(hx!xb=O0iu$V`wr
zRt5$ZP@e;o-XXJ53=Eu13=E)|E08;RnHU&Aa-jMa<PT6j0HqCKCUE$ID_mJnVqjq4
z1C3omybLm#feA8-3TC6^PnbQRd;=MQ#Z&{C$pDKpf!wDDv4aCNQfvioqe0vaOYb0+
zu=Eb{Gbo%uc>?5TSpERTtp^h%EkL*afwVD!;ts?Bg(FBk$iI*gVFm_}pFyobP*{M%
z1vK&u3JXxUfXV_;SolNS#s?bZM)p5wR6LG}0n`R(0htS$7J`hJGceRJLDpn}%x!_P
zLFV>C*FJ#EoyNq#02+}8rNg;Q3=H7aSBwk{OF)Gb0|N^vErHw$@-N8!pg0GmClG%F
z69afREGW<HV}i8TKyCo31BE+?KE%Yp;Kabd2Fi<<AbwzY#srR11{Tm+77Ppwa?A|i
zOl!joPG=0E;B!nE7>b#}{$l81hMaY^8nT3d;V3gCUEF160M8bEV}_(9(9|rb{Ig<V
zU;veUVJwh525O3f%9shzvkz9WK=Ruu76$O@s5dMSe{i!x&fw5u1?{_KU~plD#A7lm
z0|TgxXkdk$F*KhQl3w?)GBAM3guAQ^450D=RPcl1S%!^)0hBjw*dTEm#s<mL#n3iY
zKN|xBC>^h7gPhTHnGLe%|2rE411LR<urn}#(t|NO1NbzTP<93eP?{)WXJ7!O)5+`%
z44^c+ft`T?ls+!7GcbVC#cOs32GDE>D+dF3Rha?@0|O|1*l;i~fYL+&2P8dYb3o#}
zn}dM?G!3(a0}}5CI2af}&8P<)4B)o)4-UwgMW88UP@ST~37I=|;$&a|?UIV&WB{*a
zE9Ycj0Ik}e!U<`suj6E30Im8z!^yw^YP-JSWMBZ*LtI=844|~A#>Kz@+I3(BsnB5M
zH!N9$^D)R>pfm$YLm<q^zyQh)4E9_QzqxRM(-05Hy=%C^<!uXSd=#V><W>+3!l2dp
zpmYvmgID%5GB9l6W?%rVf_H%02x@X1U}9j{&JA(D12Y4|UT#QSH!w3W9E7qLFf%Zm
z;$~m~rKJPR3=Ef`><i2c47Z@{2h0o%FSr>PK&$&dFf%ax;D)5J56ldV|Do)U%nXdI
zJP`3u%nVFCQ1%yQ21d{^U!Z#KD>DP5EL8j(GXtXrl>MEVfzcSs{s9gt1_tmB0~Q7b
zR~`li(6HzORt5$yC>vBT`0+3>fL47wurV+ML)i^%3=9!G5I-JZV_*O+CjoVl9<VVm
zr1L<|`+zRF1C{-(pgax=L(rTVh%VxR#4(6n$peXB5W9{C61N~W2!paTNN*btB+Y=t
zx}j`PS^)7uZ4*$r1Y(2A4N(6F#0C|?pz>z|4<vno#HR2-;t0fsVkUn^28IQojL*OT
z-bD^FcM}h|Okn}py$eat86HTQ1gW_SWh2`SO1F1;z-1Y@jRtZzNG-@Nkh?)_5C-u<
zZUv?5=RDxF2rer@>Y-D-P$djZptKI+!2I)xhk*gIT9tv}E5t64Gz>F=+F&3KOg$Sf
z0|RuqECVku0|R772LppNsE}h|-~g?NRfe)b?KX8N8`R#@g|K1a!id~<0NKF+4kk!B
z0LpKmJ`zYAR0M;{cn}-1!-Rpsnimnze!Qsh0IDuP>LZZEQ+OE|Ky4%B@Pf=Tg2M~q
zG6qDtfVl;f{y}a5*$u*=Z~%<~fY^}TAq))pybKJGofaTba5>ciQd7<g$$KEtPF_eJ
z1DQJs%4TL@V4MSGvoJ6)E`_pL85o$>L)q*M42(OVYz_tn#sg3`Cj$fH2`C#>{M>}H
zxfvK3pFr85r0^Qb=4D`D{0U|Afzl=)#6A2B42;5j5O;#YOcyFHz`($01!W5|Ffe*U
z*+L8qOkq&A2m=FS7L+Z@z`$4wWs5N|F!n*&;vhdl*%Ay4Osk=6DFz0{olv$k0|Vn(
zC|ibsf$=VsEz7{b_zudJV_;xp;)l3do`Hdp7s^&(U|^JjvK1K^7&W16B?bmYV<=mh
zfq~Hm%2r`uVDy5rRT&r<!}%d)C@igkcKCqONCH2ko&~iVGx@=J5IhD`2o(plt;+Zr
z7(jg&P?_EcHRl2-vKbh_E6qUdm@a+>2JmhrMh1o{P`$9W7-)ABtlS6f+yS+>=RnOV
zU}Rv}3}u5>C7yt?LG5o)n+aqus6TTPDh}$yyn?b1FfuUwgt9L{>lIMC1*Kz9K?0qo
z2D>yAOfoQVf+C-R0o?xp34!tuNIhtaB&d!7iAf7U!V08R9YjF;OCULz`FaA7avUUP
zhQtPi5$ISKm{~COjslQy2B~*LVuSb~HK1l%ga9O*L1O6wkTd{dgRmI`!)RWE=8>V6
z*Fd}0sFBw|yX6SwwRi>w23TGL<>`UQYmnW0pi~PkPr#?d;L2YhRiN|_%7eJ_6tWsh
z@=+-?FN4}AATvR22~fYP1u72Ot=A8#5EvN1Zk{i|zyR6V$H1@zss^$H5L}mn)vOf&
z`w?m!m|_C;*Uk$tFvK!2v~VypFkBH}V1P~mFgy@oVCV(K5eoyuE2!QE76yht0t^hG
zQ_2>A`cZ-m41Ej?3<p>k7(hqff!uI_m4QJ{5Mmdot*Ir*z%U179UB9KC6o<nQ+f$9
zFo4SJ26hI9P^fwb4hDuaL5TSY91IL)f{?PSfrEje5z1b`!NAZ1RS)WuOcP{aSO_v7
z+NlREC3N6qU|1l?zyKOIYT#sGSS1MY3#dc5T@Vsh4qOZjN1^5<a4|5Phq4>E7#Qve
zGBAMJy9>A&7~Tj%+A;?q{Sk(vAiKC37=A+i;=s+o02+Kc4ie{KU;rHj2r45Lco-N|
zg&<|A1E`HD1oamW1B0&+0|RL0p@D~iAyNo326h0{_J*nl4gTao*$R9N3}r$PH#qPy
zFtkG14SWm?GlUozPJ+UpkAY!<5Cg+$P<-(-FsuVL3K$p|8u%F)b_qekZ~;F9!zm#K
zhBF}b{0s~?pyof|XJB|F#K15E<bDAL#!pZ-qW}Zre<+(tfPs-u7@~$*fPqmK%4QK@
zV9|oIIRqFOtb`$TD<}^+LD>od3=Doywt)ZxL!2<wF9Hk<Il>GKpfRKd0S1N|VFm`!
zG}Qr6x)X+^AJD+y6ewE(lwO1(Vdx;pz_1?5P7q{ZI3&!#a2DiWK?a7CQ1^i1|0<Nd
zLXd&sCDaWY1Q{6q3PZ*t4+t_aaEU<ddLYQaASS}V0B$b`F)%2JFfd#Mg{Ke$gT4qf
zzJwSUtVJO0?E^v#3@#!N|AGcO{6!$)BOuJc5G?{pV+z6y3@K2ygD?X_E>ukd$lp+Q
zhA;!;1SmUGn1OKxl$|Baz_wF_f#EX9U&0IwheaU$^8>;R3>Tnm(4nArL>L&ZfZQp<
z!0=Lpf#Dh`enl7<K8Y|eTnELeC<6nND1_}G%D^B1WjBa2FvvsM2Sgbd^hFsMz+<Um
z3=DRn3=FqHW{NQ|1Vhy{h%qq4i!w0W1(`3#z>qJ>zyLmTOq_wCP82d;>mbg+&??Hn
za37>boPlA2C<6m%N9+M{28MZ};Bk=_(D^MOXF+!Ef>;a;pxwWqdI!V<jhlh$gH<56
zg8a_Fz_3-6fdRBd4K#+lUlcMPGlPMF<s_6nhk=3dI+Q&Z)ZT`&=P@uaeg^rU0aDh0
z%m?kn1+{%x#2{%8R0r{jF))CZPJ`NYqGAjTpxv*aHk%TZ?Eo745@TQhO%H>{0zl?~
zcdjxsFxZJf&Q}AC3xLEyJ6J*NKrzS&B4{ii4ax?M1%T9mPIm;21yqYc${A26x(#ZM
z0;qyvU|{G0oz)IygX$enUw66~19ZhQ$P@+!$S!CGh9!`}We(7|5=aKrRs^YEFUG(C
z*+I>~uoKD#jlms<st1i*LDjQ@tU4zKDJwu?*FkX%VjwVhL;=)Z1gQm;aUdy>+d%xM
zVhjw><>eq@2I$s7hEJGwf$O8cVu&^*yEvj93)alQzzM4FKx~ltpel`D9FmqmVzNkV
zeQ|L91vR4?K>cgT&TIw-D{;tq_po#YszX6(5u_i)hN%OwgBTeYKxr4$9)|3AhSZy&
zF!UE^V1Vp;hU#QsVDe*RU<d{^?x1ruG2#pike$>JHL(715-4v#gc!2L85khDvl$pl
z#Ub;@P$>`v4qI5?7UW-$AgFH&qCtHNP#A;U1LDKPL2(Nb2jO~1WO6`uSR>pIs`uTY
znm`oDZ6I^H#3AJ{NNkEYV$5NoI0N)_QIHH6Gx<RKEHHaPaSyT+EDH)i1_oA;n^z;n
z%NB9S{0~UYVYE1cl>wkQ0-Yd;97murbdVm9u`qQYH-qfE0x<_H{Zt%M7l1e)k=V%d
zHXu2eUeLrIsNDh*<CZ|^l|f>I<Usa%Gcqt}LmFQk{ZK*BSQRMmSV}<Z4v?@tr~?hk
zrwj}Xt`ZCkvp{7g0|SExR4-_|M6d)TE<o-F>47d$2Qfiw1;F_(MuLF>dbBA6XsZio
zN(H1oUxI-FdXy(a1=LK?Tyh7RnbW|gK?s<CCrLo+Ac!af!*m#ffq`Kr5*t)jfZ}tS
z1f>1~NzH|_LFoisCqSAwASuxD6mb4sDgmwgKz`?eut8~H3)G#n85kIjLBa<-&UOtc
z+(2WFps_Jfyx*1p4>Ez(fGn5`A{ZDLUPwUNPN4BOm|jqO5hM*O6F}^FAOduT4G#mu
zd?*`4f&2w>52#E4jYosTKx1?uHpt$$P`BYz1JVPUlL2|@7gBhF#(zO!21*Ygzrf4{
zjj@8*AUA{bg3?kjH1B}i3<^(HNyz*sNS+&s4dR2;gVs*L*h@icS|q{q2P_KA3=E2r
zka`LvuOSI34?%v>gR(*O8Yrwl?I=*aW+DlxUqJPmwIn3XgT^TAC82FjMg|5~NoYD@
zW?)F*ho}MB<qcI2uFIh81ZD;XP`_p)s9t7fU<j9FVAuqz>p^-Y85lsTYe4fLDUuA}
zxm-}&K3kH30km5a)P^sRWMJ3{$|IZ%45g9`44~D*4cy>%0l59y!Og(XA_+-{6SyJs
zprCf?3~mO7Zm9SIZU%<Ql92Saft!J0mLvni9*`Tj85kBzGBE511r84b!y0Iqfb#u*
zNl5#oL4twdFlfSxfq?_Mr3#b>!DF+aytV?Qmw|!d3{=fZ1_p*(l92iZ6n7x$RUm?a
zf#H!PByWP!07wWFzo0z(1{R(mK?Vkf)leElfzl*M%}1zTKw>{785q`pDjpCAg28nG
z$loBfAP#798I%q|^E<p!ka!0v6_$dO;h^*;EycjF4ipa1`D1Wd2TgmRbhRF&0W<*&
znf?OvHh@Vm!33IzSCK;aRZj|%|3I>!V?#mJ3&^iVQVa~BH3Oireg`QAhRq-a3=9lz
zP&UXdK2p%Sosoed2+9T>H5ChGgT~vEp={6`I4C|r?Fvwu&69$RCj~GvFjPU=5sVBB
zZBRC7oS+BdPVnyFDN+m!TS4tRMh1qNpb0ky297OIH-XARQ2t&ag=hz@mO|9M>!cuU
zJ&^KEP`#kMepm{8PAv;4Z(Wsw%-4a`JcY7B;$NX`kbl{wA!<PRPZG)oB`hN-8{{u<
zC>xX)Q=n{68?#m#Jg*6!p9QTAfVJU3bMhcI$gX~<dXQZ+plpy`3#B3P1#<HaX~g*Z
z9%)D(0;xYJ4JltiWB-?>p?z@%28Mgm&@zC5f#IbzBprbY_m7~-N(KfF(7EH^AZ*wi
z94I-0f`JJXAAh95^Qz!50?qsH1IZwz1CaaJWFT!|kpDqf4uH}mDE=g6pzdR2V332d
zLF*G#plr~XsxFibS}$TM11Xn4WtR<<4GKGFDEk2;1A~_g#GjzBKu(uIGLX0jg#|1P
z!RirMduA^KI1WJ5VGLn1kT3<M8&KVG5bCcK83u+!pt1|f2jwY{AE8{P!%zljE)vRQ
zfa!(V1G=6A6o{a@1EdC2W`N3-Oc}&HN0|%*!!eK~0|P?~Xz(36&kmZi0?n6#q<UmP
zBm)P?oJkNid=6(eG#o(gUn;}E09`M`uu2A!pF!zqBa{v5XMs&(U|<5}w`~x!I6!kq
zC!lOlc%Fl@&p{Q#+9#kk#(AjNRj3+JUW5uU1tOI{m!N_S3=CXeNaA6P3=FrC-26s{
zf#E7t?PqBGg53OD22$oDyV(=T9A6~%4XA$PxPZ;6f#U5JRGtYsZw%tX<U#c}h!0W+
zT~7pBf4~b9hp7Y2X@k_k#6jvqk=)?U$iTo1%D@Z^9H6mKkXmRmW0)-mNvohWK8xfS
z7#=|-S3=pKxsOe9kTMj>zo4oBG}Hj<E`rnQ5(V%YhZYeA28LA%ka81b$2uq*RA+31
zvO(!=mjc90P}%_HSx~<MRHh$-ii7Mu4OI^cbI`m7s80eaJI*UGFg#&^%u9is`xLYu
ziGhLPD#!q|c?XbPAT`fG1Oo%ZT?Gb)=TJ6?0@Z^cHJ~~J)Q16yf$}Vf4KWUq2l1&<
zQUb60XaUuUpmqz$o#=koQet3u39Va=l^}ixnQyNI2`i9)-JxtyeFk#JE7Uv=4s(#%
zpnMDFfFhcKffZy9Nd0RN0rle>C>un9{0LG5@*`+G0VD?UBZv(ui$HurYHlfm*P?*q
z_n|Vx{UCiWplnb)zEy^lZy>uqLfN3W`>71+QztMmu>6CvQy3UnKwFbRb!`R%10%Z%
zL`^0G10y$-oyEYw$PZ;_gXSWk>>LILMsX-Rmw|y%8p_UNU|^Jovhx`j7?o8Z?gWkF
zz|suJzgkdn&=?NL51?QK_0>W&A?wgU<qWR%Nuc&NNFHQPsV1~8U|?W?tx1BF!=U^Q
zDicBLK;D7YPiunvUOb?+b9c1BWjwg8hbt^W_Q3K4%<Z5w0(0*d1_lNneek**7Lc7F
z^`LeUNFFqw3}S=g0n|nYu|e?wTKfTFgYq#bKY`dFe}Lw7L2OW61e&V^u|Z~n<}g8Q
zP?-Tr*B~~iEfJ;<DZfE&Cs6wbBo3-qLGz^`HmF_&tzG#FYMV1MFu>+T6_^+p(x7@l
z<5-|I9$@uM3=D-(@dhRa2GE=aNPGbkq<sxygT}h5plTj4F)*}3*`NZkU!Q^D8>sKg
z%)l@U$_A~0Spro98pqlIWjnAiFzkl16F?b>fq~&W$ek<<450N3pkfj<hj0|C26U~#
zIVf8JwBV0{fdRDc(t(wM;W|_t)X#XJ56Q<1SQ!}J=tJ9JQ1!4n7vv9+l?Y*w>mgwY
z5(i;W{DGE3g36n(`V0)9^_3toC}whlmg_Jzpfwu5ppsCE$pfJVycX%dJ_7@2-6*pG
zBn|$CDTLNJFnLgV1Fbuafh07Zzfg6sv<y?H?Eo<cykH)phUqPY29Zplx&+LCw(oO6
z>KP$@D9~+C1)#*pz`(-{btfqQf!3>@hAcqg0PR7!;t0u$pfVLyKY-R?g3P?{2wp=4
zUY`Y;GXmKKO2e-lp<~hv3=AKkYCvffqz5!T1fst})qv6($cvyn0P-)B69WS)BLf2)
zWI+rM2O|T+LT5-G1ufUXl}A@PBg(sV&I}CPps_p9nc$$sT+sRQ1Q&=op!fuJ<v`^(
z$SoNzkn{o)2k8aXXP`1P*M)(B7rLGnq>hDw0X!~K;KIPb2Mw=M7l^$e`C1nS27ah`
zlM4d_sBZ%j2Vqc|4oXv?@B_syNUYlhQYM1z0`XyLra;9(VsoKvm>O961-Tt$9tfXu
zMfmHoE5t7#z4xGOkiTBKLh5OdIbT8INd97j`isepfdRBW8KjrTje$V~>K8FLgkR*{
zK=+%0R4_28xiK(^LDd+zF))Zj*$`Psegf6qAU7gOfvZbU7=Xk<<+6nvq+SQ{UECmH
z0x|<ReEi+OX|M&P1{AiS{L8?=z#0d#7sOy-U`&Uy*%%lY3!!Y#x||9qn}dNtqR9=?
zJ^+~mtK&g-fy@MjDF*`sbH5uT47nK?m}W!SpmjORplr~(oHbB3XkE@0sGC7y3o;AT
zmX$<!m=n~$QGg7#@`3iYBcvF(kgj&+1oiDTq3Wcedxk8~_%QQ9c?HS_ho?NK@y!74
zgEKfo^?>RGB)h=sU~42n{`Z2a1NAA9)G?_dI9#B0<-t&ODo{5;?PbzHQU~f1Mnl!9
zqp8zIQU_YVl?+t}>enKq7?|`B94>v(`3vrlbO9Rg1?3x1{s-Az=?+;#3tBVN2sKL=
z%}ygEvp{ukCsdswsyZ%Ec!11=<txw?j-apst)-m^)dSg84OInhqBAhS)PdIIu7IjD
zN7xBc3=VIYI#4_10#uzP9(AB;k*82~)_Bx`_Otzgs<XwT4zyle7}QW_VBoWdsxyM}
zVeSp~0Ou`G^N&Fdss>bMXd<z7kl3KH8IT7-YM@thg6~C*@Bjx6*c^}?NDU}YKu)27
ztV0H^H3o@;;v~)kJXQc!F9kIp6!x-EHi(h~5s>jI2IzKv&^Qx=86zZ*g5t@7k%0lU
zeisxMR*aDTASk?T7#SEq?M+aa+JVN37$9quLG2^ZI0h(e92p_=l_0%o9^kqZ>>g#P
zy&(7GLBb2PwT7VviQR|92K7%tSLlNLHXTWP4ibAA5_=yK8#I>$(|Zz09Mn&TiG$Y4
z!`Ptl3K$!-&H={0f~5Bj68kk0`x6rT4-%UpGp~dpKHf1X$T2cL*fYvCJ|r^0H9nr9
zq_QBDAvduiJ~gkTC^NN~AtkdYHMt}nv=6J80Yt`Uroia<5{A^0jQE10{F40S{2Zv-
z%=|ot;-cjE+{9#tl;RRF4dQ1OfVr6kVA+EFq7pD4%qS^J%qs@55Qb$Y=N80+odaei
z=clAHWTwSu=B1=oFq9gaF~rA%$kM#x%=Em}6oujpkcp)hAaM%@xNvetVi7~Bu@Okv
z*a#sG3IMQoa#Kr+GLxZxgL2|a7zz@Tvr|io8ImeXQi~aiOA?Dp;&b!!^5aV~b5r9>
ziWyS#QcwlbauU;vLHpP8@)=5!3*te0@roHz@`~djyW1e4R#Z~LP-<oZa*mk^Lr#8P
zx&oMhI~e3Jxc2xGhMdHb)M8KsfJ}#Sic1npQeiS6d*YK5ON&#HEQ>E;$V_1<N-acn
zV^MJdsz7#XB|}+aPAMqT3*sSONK8*JN=;8JNlihH_Ttn+c+^AK@g)op2E=EuU3$d~
zB}IwJsqv|0sd**wMTzC{*=a?osqw|xNeroZB@D&cNr@>bMGQIl$%!SP!~#!0MX8C!
z`FRZS@hOQVi7-?0N{T8O3W`!wa|=r1lk-dSN*D?<Q$VJGLpUC)DcIX7-p@ZI-X+LC
zAi&inKGHRW0VD?E#|ODO2K)Pg<%0uUoju(=U0txq#s~X5dt=cT;2jbl;_n|H?Ca>`
zgP||PIUwFSIMf$I0%BUco2O5RYY>KPs0$8ley$-9EnvT3=<^Tpa1HYC561MKCk_KW
z1L8gXJX|oH;297f6acXc!<tY(PiM#Aka$nOcpsy9-%y_rFdsu*gj<kre1N}?r*kBR
zoM%A1pMOA*e~3SZ6f|stoWq<#-P|yw!J6WIT`>a{6xzNnrhfh*ZvLTun6U_z5A}16
z2yk@{!4l6<6>g56KA}Ob7*<1F=H%$??c?u`Aq~>)=Huudj8!JeHON2Q)6c~}9ILdy
zk4wCZV~8Vm$uQR-e0tsdeO-gxF&zwYQIMOnxv`OPe1Ky(c87WTg*p0oy2J;&28O!&
zIpZ+JH5g0k2bmAo9_feG?an^_!Pw1oa|{mg4{*h<4HO=Z&fZv!1Z6mU@{Z2l@u7af
zu6`kSg4E4FJ}}fZ)HOaJDAW(T1O46nv1c^TfO!AV5I_GQ|IiRu%usa-aEo_#5AqKU
zh<9}lat+2*;TaHS=HeOb=;VVX75ce)x_iVs2e~?ixPp=*Mi@X8fTVEh27Apd6ib-|
z(d^>th%JNQa&MrEXRtH&uy76tjmMQEB3uG693SEw@9Bp<R6_kc9Q|B;TwUV9nH)na
zsL;k<oO(OOy9fKn2fJeCN|2^dXa9i6csIvTAIzfB#WgG*TL}mf4{~*M!7RH#!5Sar
z>4#~TpFg&8$-^ZmJ|rmA&l$r*A&vpK>Hv^bNCb`&*wfh;SAh=A%-91ET--alxCFTd
z1^EYIOP2ATemIjgtgdtN#PqqZV*~@ZJ(XCLUd(`~)xq_BL4IaliGFc*l0HI0PhSs=
zk_yuF;cXhd3{dM+0j^4;xTL5wxkLeM3bs~*f)>a=O@(R(1qB6#`1qvK%$$<Uy!hPI
z+~U*{4YlIzBpn3<9fjh|s?_{6jpFPiO-*YC11m$Y`lNz1P@^&_71UBlfvScnh1gu2
z9iLR1mZqtr0J2Ee4%$Ki8)5=BBsH%zSD`pN3AxFk0BLzB*g|zdxYl6xnQ00d5Wa$)
zLa?_JI9Fk9hQPc94TR$S<ZK14;%o(5kac>++13nD*D)j~F~sMkC6_Sdq~<YzT1fFA
zMs8v<n9fKk0@H=1simp$xryLY7Z~E>lXLR(Qd8pd)6$AlOBf(LhP?cYlp=;SFpr@i
zH8ndmg&`v~F(p2&C^4O(AT2jFH!&wCKbfJR0MvM`OwLJVNK7utEK7|~ttd&&E6&W%
zD`qH3%*+8bgTY$CE@CJtDoq82EkkK>YEdx*lH#JIJWvZhC$qSOAtxsu%*jiwC;>I?
z${12o!8pD+xhSzDIRnxzMrjfkB|-GW#}_5V7bF&e+Lp=rIr&8lMM?2RnduoNAVyAV
zS_uQlj(CuF7;?Z&uwBL344DP-DXAbI!a}2@xFj*R0Nj+!1vBIGiW#yY4Sa@Ta3dW=
zg4^d{0@gM!Db6nfHIEbXk~8v)7~+ew<BL*LGQq5*_@dObl;RSGlvGHZ<`;nj2oxUi
z@deo>;7$$92{1lGW_n(JQEGfj8be-MJUA<W+*@3lo12=#ke{C)pP!vr$&h0bpOILc
z!BAWdq02MVGUGu#m6Z6h#GK3&27~}ZUVeO9GN_-DoLEp?ngeNTr{*Om7Q}-ROLB2(
zE(3^w>V&whEGIE9z5sNlM_vicjmTmU9m)B*1v#lDsqw|-5P_W3veX<%cP=##bWliq
za(-S~W>GE!xX+Z5nv+?UT2u+{JTa6c#}{X37Q`p#Bo-HErd5Ij5=-JU^U{k_i;EfZ
zQZkE^!I2H={S}lIgEDYIYEelgLuOuHY7vMF?s0;HlA$Oy7wnJxw6vW3#1sZ79iLX7
z5}%t`lnociF-C}i<100}BsGO0ttdYiVS5_Haj6i;q@*SnRTh9$73bua$EO$NLp+?9
z4{~s72}5ymZhU5bd@1O}6OczB{nLV?%>1Ivl1gye%FIk-0LL0MAoEM|8Nkev<V*%|
zK8sH-C}k*4O$NIb;zdM{7?hGzi=aNwOD!qSFUkfdZ@3_+41lV_(1xY~Nhv7I7~<p0
z;pqU}$%S|iT3p1(C#4#iG2|r{WP<vB#i@BIsYPJNf?WzqCPihbDe<6^peR2-7wSlO
zhYsSE%mT0gtRMsT?&3=ric-_S-8p0?B*%cHiWw41@^dqj<4YL8s#1$UCAyUXym$qb
zk+uqcp*}vE44_hzAs&<slk;<PLE{hE@kJH!pj-&bnqXFZW*Q`J5F*L>`PrGNAa~{D
zCuf6bP+z(j#3)KG%gHZK1oc+q!6)a$g9}!$RBCc6s3e37Bqb(i=j5k@<kIqs$`gxH
z;=!>B5`YI$ZfY)wpOX_`TAZ2;V!}f;JH9BnEU7dNB$$?&Q<7Q)Vin})WF~_W5Xc+x
z$%)AsV3+3Srsg7yFV0JWYAgqdgPjEG8^?pWa95NR7ef2?#o6)YMVTe32=9Q3e^5>b
z*$I&<fMj8i0BHOM%7y3X;_Uc>#N^Dp^mx!PL@7A9it|!H#b!Q84~PNr0U{GX@*zTJ
z5or9PI6EFR(gZaOCIl*=LB<s2mzJc)gUT)tFTFS)lG%&1<3VhYMsP(_oDB&LNby#j
z9bZxb&TCM0DVfEINja(DFv(6W%8LglmE!F9y!`m&jMQY1dXV{WZczn@3#z_AX#(sy
zr~`{LGSk560bDGB`~n;Ig4zXkQ))U`PfliDdTJ3UC_u)6(tkYoSf+e%$RsD`<bYC5
zJjf1^g480gcxq8md~rU+mc-=jc#s-s$^sdVCR7R@28l1JC`yHSxu7UDEwv~<skFE<
zz92s*2V^#!6Q5L?k`5}evf~R<Q;Xo1CuQcP#1~|M6D3#zGQI*)lw1S}yrSeXkZ-^-
z46Z9dMwb*rMvRKH<BKy&OH%U7^B}^YVWr~i_^M<mBN^mTm~%nq#HXYtrsQPirN-xi
zng!r^1B(}>f`<XYc@7+sB^6-t(!A1Qh)X~*2=N6dmcXS6$kO7}<Wgvn8=stBQ~;OA
zP0dXPXHHOZO^r{^NX$zIXC-hOswg!v1)R$uX&-!w705WS1L7gB0r8<x0m`Z%F1WT$
zEJ=;8$jvMP4{a4^$HQuTkb<Jr(qf2Ll9NDuP&2f+B)=#TVs}w;DMMZ{xT4R7<abak
z7=f!jaB&t7FUgYQ(-Lztb3l$v24^{t<CEjT7BCcNLs_6u1M@Nq%FOcfpvv=7OF+$$
zWbm+Ca(q&LX<kZvN@`hrCaAPY23MqDU3uUTO^z=!i%$WM&VdXrGXr@yz8Ee5FEEqi
zQ}XjllJg5H<C9X;GeNPQ9A8oaDOKRDPmmc!SOrtlU`~RYlbQ$0q{;Ch%L)=fZ7Bp3
zWDvqxMagAQH-YLWV<WH!pgABJG$;&Wg9dH0ljA|b0yPcJ1e*rpfi>opf(qv3cu@F5
zgCD97<PwNT2BIBVP*9Xw#!!%7T%4JdlNt{S;1UK<=w;@afgQ{MVw5tJLU<N1hM^gZ
zWo!hk+RRKqBdFQQ@S-_69%N5y9ymcH$Cs4Hr+|tDNMi`<*qoeV6gQQ^1wh`)%uCMC
z1r^QU1_dZ>B$vgPLqoQt92}i_6`)cqIlc&1P$tKhXXd5kmxCH);N~#c>f*eVc(BrZ
z&_Fo2umCw1l#v<o%kxrG7|IJ7iVHIHKq4R+D3hTGB)|X~_l3!VIbhMmqU4Ntm~eav
zLm`X}8iWRo2!nbe&<Y32jfZi|6EjPo2@KTOi7#P569H=g=e5$bG;j-vp%BzXf_9+5
zfy+<?swd$UBghNc@#Te}VQPkow4z*4sR^ofD+)kS%aBwFYC|MdW~Nkt8YQ4aTaaJO
z04kA+7}8VoGE*2JjSA4rL<&Q3YEEi$Nq!MSPFe{=a%mBWDo@PGW+=$dDTEjnUzD1e
zSDac@0`5@d=Rs`ED`J3Ua#%42c1>AoGE`e;UTQ^RatYKE$)yZM<)9FaFJS<ODV$db
zVL`$Mq=F$iucVj(tT;7=AwE6_Tns|I05J_T)l<okT2YW$lv>P?R+^U#9+n3?0Nl<i
zW5|U#6Yf7~W(4IBh7@pC0+aE%iN)Cr;E5av2@wF*N|_Zosd@1!pzdB8gk8)4suuGZ
zVC^zcX%4XlWNd12G01Nw42fo-9K{eH530UXbK*-gQ;dz`OCTz9GSgB)krAJqmd*gG
zIpaa|HSsx_xtS#l8K9OJ5+5uNnb$#9fg%D{lbDhc4-Jm^;?(5)yp&>yVb~<VI!cQ{
zJ!5bHqUyjV0S;J%%S($GK<0wH0qQnG`bc0kkS1U}C<TG%<0?VD1qM*f3GqEt9^C3<
z$jHx0fn*N|6J%ZyIGXcIOBj;!^K%&Doj@em=#tz5P~RQY8H6UhqSV676b49boRL_R
z%8*|GN(PBJAWIW-(u)}q6LZq@iy2ZOR5FADn+B@c3o;qt%^Fbt1Scd=ZUprjAh{7V
z1XKj8B|zQvqWpZ&G-R={5v0ct>R%Tmrl-b(8-XAesP6_ExB$2H@={Acbyr$yVo7OH
zDky!VrxnDPFl3izro@*pKuA#Y0Mr1;FNHP%lGBUwOA8nvy-iR8%*+R6=e*Psqzc%;
z%D@UT)Pp&`l$nA&yp)*&8eIa7M3q`7fb)`qEok%!oS2jIb3i=EAW*5HnF1tmL1H@K
zrV@w+kp(pf3X1X(<5HkGJ@_D2sfDJFf<~!@f|jOQakj1<Qs+hwRM3Mh1`kjfft+q^
z0qGZ|=z$6%&=e_T00}&n6`z@zX3YQ|h||;4Pbx^$FD=Q;Db~vX>%lUhmRgd5?Bmpu
z43L)%tiV>88bh?9yC19x6ixYQ8Xz4y3b28_)RK&hlp+N!P0-Mst{o_GC}=AbXD8{}
zA-bbb8;n6S%Amoi3~+0TAtSyxzqBYhl>s`<%wPcR0-`!Qxu8-bGey@9)L+R>Ox96I
zEy>V>7@?!!8sZV}=;P|A2?==YIzcnkNID_5qUbfSGJ^OVWD)Ybw}Pz#C@}I$@-vD-
zUe|-V6>1-7ED%$RE!bHB@ty&&5kOFq0vm*!Dl!Y;Ng}fVlq4WMWQEKETtSN3;fDq*
zD2<pxoe#1HOCm2oj`GX`kVcS7Fh)@h3u{n_ft;6FV3L_<hU82Tm#}tFRN>VQ_98=O
zMh-(+Y7uC}k)Z@s_2!p=$2mbI1i0H;Qj)^}?#Y1$07`QW%|NATQ89yom8BItv4DJm
z#}lCB2pK$vct%r4K`paD58UuY@)$$_<TZ%lkO5|p+1S$*#EUo#2UnrUhJytlhMPkY
z8pvcVq;e&*Ko7=)CS{NcP}(Cd$&{H9pJ+hc2v9x*uaU?}%3&x-tOSj&fdd~ja0`;m
z$S;7_qy|=IpwI?kgxm3ixQ+rWeD%QXWj$DXSx3P$Al}z8A|8@qA?6wqVJ;-F!RCTP
z62G~ifCFQ+@P+ye61<?C3kz@sMOy{W0Pu`Ue26nR)4~cwXfi;LhmvGO-YrQ+&b%eb
zICC%h_#G%cfZd4_mf&d*u=$8-50Dj_)}WOqpqPP_U*Iul&>{^6(9l6~Y9T{WYOx_h
zN`6`zLmH^pR+-08R9wPPP@Dl$!BAS1&XAg%%8*=M!~p3NfP~@;N{S$n3U1k<6n7=b
z1$q#>prxGxxFLw42Gli%sVGi`E@#nD1N#A7F~TH4B_${-L5)fUTZn0p*iZmTfeIa{
z6xcCHQiz~~$C<4Hj0shzprDYMq6b;il$oCgvLLevAy<@IqF@U;NE<TGlarsHU0M*I
zn3oa{J{CI_ydDNri-F3A6dg$QucH9=fDUv%2<8!R#(}OUQqY30sR0`S4W8V@f_SJM
zsX3{+8ftJ=(3Lkj3YjS|^FWCaE)Ow95jy?}of!kC6I3O-cAz#FcvMpl(#|bb(6&`D
zM0i;Nw+2wt8LS*!Rp+GUfhN_=ASnT47jB)<WlA7>AuE#<Y@wk;l*Lf(;9ym-g#<4t
z8o`YtPy-0mq(agNp2LB}F(|Wwf*%^MxPxB@Er4_sKokFtevz<v0fhu8ZoqRk@wutR
z#fj;u#R_U_3Lu*lZ50eqDtM4`kmUtMnRzAI8cN`CCQy=70ELzU*gf#`(N$Ao@{~Xc
zs|3k5Ji5U{j3C`eC%>baP-<qPkX%{>o<9S15uiyCGV7I|S`wdEtO2zQEvG;y^daGi
zlDhL!%OMHU7AYm_p+uh!JlW`Brbt@_L#*=9bbu0_SQSE2sx72VnUk6aQ3MKqNYjjn
zm{tR|^3`BIL62p^5nRgvNdSmdZ=j(eP<N#yHMaod6X?1&&`3&rUSe)4R0BvEG;2ac
zAQS0%sU`X#DUb<}4jys?9<-_uWM6h_5p+5o#Dfe+K@Eeoz9AC0orOBPj;qh2qmYvd
zDlQEm(O+DiS(2QgpaCmh;Yl2`nkr2}X<3%0Aexqtl#J*Cft5nL5FmAkE<|Zc0oMKl
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

literal 67888
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
U2otuB2&B&(8rL8h=x`7N0D<kP;s5{u

diff --git a/pkg/ebpf/tracer.go b/pkg/ebpf/tracer.go
index 29eba8bf1..c59cab711 100644
--- a/pkg/ebpf/tracer.go
+++ b/pkg/ebpf/tracer.go
@@ -22,10 +22,13 @@ import (
 
 const (
 	qdiscType = "clsact"
+	// ebpf map names as defined in flows.c
+	aggregatedFlowsMap = "aggregated_flows"
+	flowSequencesMap   = "flow_sequences"
 	// constants defined in flows.c as "volatile const"
 	constSampling      = "sampling"
 	constTraceMessages = "trace_messages"
-	aggregatedFlowsMap = "aggregated_flows"
+	constEnableRtt     = "enable_rtt"
 )
 
 var log = logrus.WithField("component", "ebpf.FlowFetcher")
@@ -47,11 +50,18 @@ type FlowFetcher struct {
 	dnsTrackerTracePoint link.Link
 }
 
-func NewFlowFetcher(
-	traceMessages bool,
-	sampling, cacheMaxSize int,
-	ingress, egress, tcpDrops, dnsTracker bool,
-) (*FlowFetcher, error) {
+type FlowFetcherConfig struct {
+	EnableIngress bool
+	EnableEgress  bool
+	Debug         bool
+	Sampling      int
+	CacheMaxSize  int
+	TCPDrops      bool
+	DNSTracker    bool
+	EnableRTT     bool
+}
+
+func NewFlowFetcher(cfg *FlowFetcherConfig) (*FlowFetcher, error) {
 	if err := rlimit.RemoveMemlock(); err != nil {
 		log.WithError(err).
 			Warn("can't remove mem lock. The agent could not be able to start eBPF programs")
@@ -63,16 +73,34 @@ func NewFlowFetcher(
 		return nil, fmt.Errorf("loading BPF data: %w", err)
 	}
 
-	// Resize aggregated flows map according to user-provided configuration
-	spec.Maps[aggregatedFlowsMap].MaxEntries = uint32(cacheMaxSize)
+	// Resize maps according to user-provided configuration
+	spec.Maps[aggregatedFlowsMap].MaxEntries = uint32(cfg.CacheMaxSize)
+	spec.Maps[flowSequencesMap].MaxEntries = uint32(cfg.CacheMaxSize)
 
 	traceMsgs := 0
-	if traceMessages {
+	if cfg.Debug {
 		traceMsgs = 1
 	}
+
+	enableRtt := 0
+	if cfg.EnableRTT {
+		if !(cfg.EnableEgress && cfg.EnableIngress) {
+			log.Warnf("ENABLE_RTT is set to true. But both Ingress AND Egress are not enabled. Disabling ENABLE_RTT")
+			enableRtt = 0
+		} else {
+			enableRtt = 1
+		}
+	}
+
+	if enableRtt == 0 {
+		// Cannot set the size of map to be 0 so set it to 1.
+		spec.Maps[flowSequencesMap].MaxEntries = uint32(1)
+	}
+
 	if err := spec.RewriteConstants(map[string]interface{}{
-		constSampling:      uint32(sampling),
+		constSampling:      uint32(cfg.Sampling),
 		constTraceMessages: uint8(traceMsgs),
+		constEnableRtt:     uint8(enableRtt),
 	}); err != nil {
 		return nil, fmt.Errorf("rewriting BPF constants definition: %w", err)
 	}
@@ -86,6 +114,7 @@ func NewFlowFetcher(
 		}
 		return nil, fmt.Errorf("loading and assigning BPF objects: %w", err)
 	}
+
 	/*
 	 * since we load the program only when the we start we need to release
 	 * memory used by cached kernel BTF see https://github.com/cilium/ebpf/issues/1063
@@ -94,7 +123,7 @@ func NewFlowFetcher(
 	btf.FlushKernelSpec()
 
 	var tcpDropsLink link.Link
-	if tcpDrops {
+	if cfg.TCPDrops {
 		tcpDropsLink, err = link.Tracepoint("skb", "kfree_skb", objects.KfreeSkb, nil)
 		if err != nil {
 			return nil, fmt.Errorf("failed to attach the BPF program to kfree_skb tracepoint: %w", err)
@@ -102,7 +131,7 @@ func NewFlowFetcher(
 	}
 
 	var dnsTrackerLink link.Link
-	if dnsTracker {
+	if cfg.DNSTracker {
 		dnsTrackerLink, err = link.Tracepoint("net", "net_dev_queue", objects.TraceNetPackets, nil)
 		if err != nil {
 			return nil, fmt.Errorf("failed to attach the BPF program to trace_net_packets: %w", err)
@@ -120,9 +149,9 @@ func NewFlowFetcher(
 		egressFilters:        map[ifaces.Interface]*netlink.BpfFilter{},
 		ingressFilters:       map[ifaces.Interface]*netlink.BpfFilter{},
 		qdiscs:               map[ifaces.Interface]*netlink.GenericQdisc{},
-		cacheMaxSize:         cacheMaxSize,
-		enableIngress:        ingress,
-		enableEgress:         egress,
+		cacheMaxSize:         cfg.CacheMaxSize,
+		enableIngress:        cfg.EnableIngress,
+		enableEgress:         cfg.EnableEgress,
 		tcpDropsTracePoint:   tcpDropsLink,
 		dnsTrackerTracePoint: dnsTrackerLink,
 	}, nil
diff --git a/pkg/exporter/proto.go b/pkg/exporter/proto.go
index df460b1ba..1fa61db04 100644
--- a/pkg/exporter/proto.go
+++ b/pkg/exporter/proto.go
@@ -6,6 +6,7 @@ import (
 
 	"github.com/netobserv/netobserv-ebpf-agent/pkg/flow"
 	"github.com/netobserv/netobserv-ebpf-agent/pkg/pbflow"
+	"google.golang.org/protobuf/types/known/durationpb"
 	"google.golang.org/protobuf/types/known/timestamppb"
 )
 
@@ -77,6 +78,7 @@ func v4FlowToPB(fr *flow.Record) *pbflow.Record {
 		TcpDropLatestDropCause: fr.Metrics.TcpDrops.LatestDropCause,
 		DnsId:                  uint32(fr.Metrics.DnsRecord.Id),
 		DnsFlags:               uint32(fr.Metrics.DnsRecord.Flags),
+		TimeFlowRtt:            durationpb.New(fr.TimeFlowRtt),
 	}
 	if fr.Metrics.DnsRecord.ReqMonoTimeTs != 0 {
 		pbflowRecord.TimeDnsReq = &timestamppb.Timestamp{
@@ -133,6 +135,7 @@ func v6FlowToPB(fr *flow.Record) *pbflow.Record {
 		TcpDropLatestDropCause: fr.Metrics.TcpDrops.LatestDropCause,
 		DnsId:                  uint32(fr.Metrics.DnsRecord.Id),
 		DnsFlags:               uint32(fr.Metrics.DnsRecord.Flags),
+		TimeFlowRtt:            durationpb.New(fr.TimeFlowRtt),
 	}
 	if fr.Metrics.DnsRecord.ReqMonoTimeTs != 0 {
 		pbflowRecord.TimeDnsReq = &timestamppb.Timestamp{
diff --git a/pkg/flow/record.go b/pkg/flow/record.go
index d8313b1cd..ef9ea23f9 100644
--- a/pkg/flow/record.go
+++ b/pkg/flow/record.go
@@ -52,6 +52,8 @@ type Record struct {
 
 	// AgentIP provides information about the source of the flow (the Agent that traced it)
 	AgentIP net.IP
+	// Calculated RTT which is set when record is created by calling NewRecord
+	TimeFlowRtt time.Duration
 }
 
 func NewRecord(
@@ -62,7 +64,7 @@ func NewRecord(
 ) *Record {
 	startDelta := time.Duration(monotonicCurrentTime - metrics.StartMonoTimeTs)
 	endDelta := time.Duration(monotonicCurrentTime - metrics.EndMonoTimeTs)
-	var reqDNS, rspDNS time.Duration
+
 	var record = Record{
 		RawRecord: RawRecord{
 			Id:      key,
@@ -71,12 +73,16 @@ func NewRecord(
 		TimeFlowStart: currentTime.Add(-startDelta),
 		TimeFlowEnd:   currentTime.Add(-endDelta),
 	}
+	if metrics.FlowRtt != 0 {
+		rttDelta := time.Duration(metrics.FlowRtt)
+		record.TimeFlowRtt = rttDelta
+	}
 	if metrics.DnsRecord.ReqMonoTimeTs != 0 {
-		reqDNS = time.Duration(monotonicCurrentTime - metrics.DnsRecord.ReqMonoTimeTs)
+		reqDNS := time.Duration(monotonicCurrentTime - metrics.DnsRecord.ReqMonoTimeTs)
 		record.TimeDNSRequest = currentTime.Add(-reqDNS)
 	}
 	if metrics.DnsRecord.RspMonoTimeTs != 0 {
-		rspDNS = time.Duration(monotonicCurrentTime - metrics.DnsRecord.RspMonoTimeTs)
+		rspDNS := time.Duration(monotonicCurrentTime - metrics.DnsRecord.RspMonoTimeTs)
 		record.TimeDNSResponse = currentTime.Add(-rspDNS)
 	}
 	return &record
diff --git a/pkg/flow/record_test.go b/pkg/flow/record_test.go
index fc6b0abed..772f4c715 100644
--- a/pkg/flow/record_test.go
+++ b/pkg/flow/record_test.go
@@ -43,6 +43,8 @@ func TestRecordBinaryEncoding(t *testing.T) {
 		0x80, 00, // flags
 		0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, // req ts
 		0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, // rsp ts
+		// u64 flow_rtt
+		0xad, 0xde, 0xef, 0xbe, 0xef, 0xbe, 0xad, 0xde,
 	}))
 	require.NoError(t, err)
 
@@ -81,6 +83,7 @@ func TestRecordBinaryEncoding(t *testing.T) {
 				ReqMonoTimeTs: 0x1817161514131211,
 				RspMonoTimeTs: 0x2827262524232221,
 			},
+			FlowRtt: 0xdeadbeefbeefdead,
 		},
 	}, *fr)
 	// assert that IP addresses are interpreted as IPv4 addresses
diff --git a/pkg/pbflow/flow.pb.go b/pkg/pbflow/flow.pb.go
index 60076f902..c14ac8d33 100644
--- a/pkg/pbflow/flow.pb.go
+++ b/pkg/pbflow/flow.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0-devel
-// 	protoc        v3.14.0
+// 	protoc-gen-go v1.30.0
+// 	protoc        v3.19.4
 // source: proto/flow.proto
 
 package pbflow
@@ -9,6 +9,7 @@ package pbflow
 import (
 	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
 	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	durationpb "google.golang.org/protobuf/types/known/durationpb"
 	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
 	reflect "reflect"
 	sync "sync"
@@ -190,6 +191,7 @@ type Record struct {
 	DnsFlags               uint32                 `protobuf:"varint,22,opt,name=dns_flags,json=dnsFlags,proto3" json:"dns_flags,omitempty"`
 	TimeDnsReq             *timestamppb.Timestamp `protobuf:"bytes,23,opt,name=time_dns_req,json=timeDnsReq,proto3" json:"time_dns_req,omitempty"`
 	TimeDnsRsp             *timestamppb.Timestamp `protobuf:"bytes,24,opt,name=time_dns_rsp,json=timeDnsRsp,proto3" json:"time_dns_rsp,omitempty"`
+	TimeFlowRtt            *durationpb.Duration   `protobuf:"bytes,25,opt,name=time_flow_rtt,json=timeFlowRtt,proto3" json:"time_flow_rtt,omitempty"`
 }
 
 func (x *Record) Reset() {
@@ -392,6 +394,13 @@ func (x *Record) GetTimeDnsRsp() *timestamppb.Timestamp {
 	return nil
 }
 
+func (x *Record) GetTimeFlowRtt() *durationpb.Duration {
+	if x != nil {
+		return x.TimeFlowRtt
+	}
+	return nil
+}
+
 type DataLink struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -653,12 +662,14 @@ var file_proto_flow_proto_rawDesc = []byte{
 	0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x70, 0x72, 0x6f,
 	0x74, 0x6f, 0x12, 0x06, 0x70, 0x62, 0x66, 0x6c, 0x6f, 0x77, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67,
 	0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65,
-	0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x10, 0x0a, 0x0e, 0x43,
+	0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f,
+	0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72,
+	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x10, 0x0a, 0x0e, 0x43,
 	0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x33, 0x0a,
 	0x07, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x28, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72,
 	0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x66, 0x6c,
 	0x6f, 0x77, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69,
-	0x65, 0x73, 0x22, 0xf0, 0x07, 0x0a, 0x06, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x21, 0x0a,
+	0x65, 0x73, 0x22, 0xaf, 0x08, 0x0a, 0x06, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x21, 0x0a,
 	0x0c, 0x65, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x01, 0x20,
 	0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
 	0x12, 0x2f, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20,
@@ -721,34 +732,38 @@ var file_proto_flow_proto_rawDesc = []byte{
 	0x64, 0x6e, 0x73, 0x5f, 0x72, 0x73, 0x70, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
 	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
 	0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x44,
-	0x6e, 0x73, 0x52, 0x73, 0x70, 0x22, 0x3c, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x6e,
-	0x6b, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x04, 0x52, 0x06, 0x73, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x73,
-	0x74, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x64, 0x73, 0x74,
-	0x4d, 0x61, 0x63, 0x22, 0x57, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x25,
-	0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x0a, 0x2e, 0x70, 0x62, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x49, 0x50, 0x52, 0x07, 0x73, 0x72,
-	0x63, 0x41, 0x64, 0x64, 0x72, 0x12, 0x25, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x64,
-	0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x66, 0x6c, 0x6f, 0x77,
-	0x2e, 0x49, 0x50, 0x52, 0x07, 0x64, 0x73, 0x74, 0x41, 0x64, 0x64, 0x72, 0x22, 0x3d, 0x0a, 0x02,
-	0x49, 0x50, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07,
-	0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x42, 0x0b,
-	0x0a, 0x09, 0x69, 0x70, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0x5d, 0x0a, 0x09, 0x54,
-	0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f,
-	0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50,
-	0x6f, 0x72, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1a,
-	0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d,
-	0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2a, 0x24, 0x0a, 0x09, 0x44, 0x69,
-	0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x47, 0x52, 0x45,
-	0x53, 0x53, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01,
-	0x32, 0x3e, 0x0a, 0x09, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x31, 0x0a,
-	0x04, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x52,
-	0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x1a, 0x16, 0x2e, 0x70, 0x62, 0x66, 0x6c, 0x6f, 0x77, 0x2e,
-	0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00,
-	0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x70, 0x62, 0x66, 0x6c, 0x6f, 0x77, 0x62, 0x06, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x33,
+	0x6e, 0x73, 0x52, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x6c,
+	0x6f, 0x77, 0x5f, 0x72, 0x74, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67,
+	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,
+	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x6c, 0x6f,
+	0x77, 0x52, 0x74, 0x74, 0x22, 0x3c, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x6e, 0x6b,
+	0x12, 0x17, 0x0a, 0x07, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28,
+	0x04, 0x52, 0x06, 0x73, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x73, 0x74,
+	0x5f, 0x6d, 0x61, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x64, 0x73, 0x74, 0x4d,
+	0x61, 0x63, 0x22, 0x57, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x25, 0x0a,
+	0x08, 0x73, 0x72, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+	0x0a, 0x2e, 0x70, 0x62, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x49, 0x50, 0x52, 0x07, 0x73, 0x72, 0x63,
+	0x41, 0x64, 0x64, 0x72, 0x12, 0x25, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72,
+	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x66, 0x6c, 0x6f, 0x77, 0x2e,
+	0x49, 0x50, 0x52, 0x07, 0x64, 0x73, 0x74, 0x41, 0x64, 0x64, 0x72, 0x22, 0x3d, 0x0a, 0x02, 0x49,
+	0x50, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x48,
+	0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18,
+	0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x42, 0x0b, 0x0a,
+	0x09, 0x69, 0x70, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0x5d, 0x0a, 0x09, 0x54, 0x72,
+	0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70,
+	0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f,
+	0x72, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02,
+	0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a,
+	0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52,
+	0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2a, 0x24, 0x0a, 0x09, 0x44, 0x69, 0x72,
+	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53,
+	0x53, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x32,
+	0x3e, 0x0a, 0x09, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x04,
+	0x53, 0x65, 0x6e, 0x64, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x52, 0x65,
+	0x63, 0x6f, 0x72, 0x64, 0x73, 0x1a, 0x16, 0x2e, 0x70, 0x62, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x43,
+	0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x42,
+	0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x70, 0x62, 0x66, 0x6c, 0x6f, 0x77, 0x62, 0x06, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x33,
 }
 
 var (
@@ -775,6 +790,7 @@ var file_proto_flow_proto_goTypes = []interface{}{
 	(*IP)(nil),                    // 6: pbflow.IP
 	(*Transport)(nil),             // 7: pbflow.Transport
 	(*timestamppb.Timestamp)(nil), // 8: google.protobuf.Timestamp
+	(*durationpb.Duration)(nil),   // 9: google.protobuf.Duration
 }
 var file_proto_flow_proto_depIdxs = []int32{
 	3,  // 0: pbflow.Records.entries:type_name -> pbflow.Record
@@ -787,15 +803,16 @@ var file_proto_flow_proto_depIdxs = []int32{
 	6,  // 7: pbflow.Record.agent_ip:type_name -> pbflow.IP
 	8,  // 8: pbflow.Record.time_dns_req:type_name -> google.protobuf.Timestamp
 	8,  // 9: pbflow.Record.time_dns_rsp:type_name -> google.protobuf.Timestamp
-	6,  // 10: pbflow.Network.src_addr:type_name -> pbflow.IP
-	6,  // 11: pbflow.Network.dst_addr:type_name -> pbflow.IP
-	2,  // 12: pbflow.Collector.Send:input_type -> pbflow.Records
-	1,  // 13: pbflow.Collector.Send:output_type -> pbflow.CollectorReply
-	13, // [13:14] is the sub-list for method output_type
-	12, // [12:13] is the sub-list for method input_type
-	12, // [12:12] is the sub-list for extension type_name
-	12, // [12:12] is the sub-list for extension extendee
-	0,  // [0:12] is the sub-list for field type_name
+	9,  // 10: pbflow.Record.time_flow_rtt:type_name -> google.protobuf.Duration
+	6,  // 11: pbflow.Network.src_addr:type_name -> pbflow.IP
+	6,  // 12: pbflow.Network.dst_addr:type_name -> pbflow.IP
+	2,  // 13: pbflow.Collector.Send:input_type -> pbflow.Records
+	1,  // 14: pbflow.Collector.Send:output_type -> pbflow.CollectorReply
+	14, // [14:15] is the sub-list for method output_type
+	13, // [13:14] is the sub-list for method input_type
+	13, // [13:13] is the sub-list for extension type_name
+	13, // [13:13] is the sub-list for extension extendee
+	0,  // [0:13] is the sub-list for field type_name
 }
 
 func init() { file_proto_flow_proto_init() }
diff --git a/pkg/pbflow/flow_grpc.pb.go b/pkg/pbflow/flow_grpc.pb.go
index 6b2e9616c..fccb88095 100644
--- a/pkg/pbflow/flow_grpc.pb.go
+++ b/pkg/pbflow/flow_grpc.pb.go
@@ -1,4 +1,8 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
+// versions:
+// - protoc-gen-go-grpc v1.3.0
+// - protoc             v3.19.4
+// source: proto/flow.proto
 
 package pbflow
 
@@ -14,6 +18,10 @@ import (
 // Requires gRPC-Go v1.32.0 or later.
 const _ = grpc.SupportPackageIsVersion7
 
+const (
+	Collector_Send_FullMethodName = "/pbflow.Collector/Send"
+)
+
 // CollectorClient is the client API for Collector service.
 //
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
@@ -31,7 +39,7 @@ func NewCollectorClient(cc grpc.ClientConnInterface) CollectorClient {
 
 func (c *collectorClient) Send(ctx context.Context, in *Records, opts ...grpc.CallOption) (*CollectorReply, error) {
 	out := new(CollectorReply)
-	err := c.cc.Invoke(ctx, "/pbflow.Collector/Send", in, out, opts...)
+	err := c.cc.Invoke(ctx, Collector_Send_FullMethodName, in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -76,7 +84,7 @@ func _Collector_Send_Handler(srv interface{}, ctx context.Context, dec func(inte
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/pbflow.Collector/Send",
+		FullMethod: Collector_Send_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(CollectorServer).Send(ctx, req.(*Records))
diff --git a/proto/flow.proto b/proto/flow.proto
index fb854059f..1b15f0f69 100644
--- a/proto/flow.proto
+++ b/proto/flow.proto
@@ -3,6 +3,7 @@ syntax = "proto3";
 package pbflow;
 
 import 'google/protobuf/timestamp.proto';
+import 'google/protobuf/duration.proto';
 
 option go_package = "./pbflow";
 
@@ -52,6 +53,7 @@ message Record {
   uint32 dns_flags = 22;
   google.protobuf.Timestamp time_dns_req = 23;
   google.protobuf.Timestamp time_dns_rsp = 24;
+  google.protobuf.Duration time_flow_rtt = 25;
 }
 
 message DataLink {
-- 
GitLab