From 4206605f2ee3035596f24804647e832b34aea452 Mon Sep 17 00:00:00 2001 From: gatieme Date: Sun, 4 Sep 2016 23:42:38 +0800 Subject: [PATCH] ... --- .../04-net/04-/{ => 01-net_device}/README.md | 0 .../04-net/{05 => 04-/02-receive}/README.md | 480 ++++++++++-------- study/kernel/04-net/04-/images/napi.png | Bin 0 -> 62524 bytes .../04-net/04-/images/net_rx_action.png | Bin 0 -> 40641 bytes .../04-/images/receive_kernel_route.png | Bin 0 -> 53403 bytes 5 files changed, 265 insertions(+), 215 deletions(-) rename study/kernel/04-net/04-/{ => 01-net_device}/README.md (100%) rename study/kernel/04-net/{05 => 04-/02-receive}/README.md (78%) create mode 100644 study/kernel/04-net/04-/images/napi.png create mode 100644 study/kernel/04-net/04-/images/net_rx_action.png create mode 100644 study/kernel/04-net/04-/images/receive_kernel_route.png diff --git a/study/kernel/04-net/04-/README.md b/study/kernel/04-net/04-/01-net_device/README.md similarity index 100% rename from study/kernel/04-net/04-/README.md rename to study/kernel/04-net/04-/01-net_device/README.md diff --git a/study/kernel/04-net/05/README.md b/study/kernel/04-net/04-/02-receive/README.md similarity index 78% rename from study/kernel/04-net/05/README.md rename to study/kernel/04-net/04-/02-receive/README.md index ea08c89..528d123 100644 --- a/study/kernel/04-net/05/README.md +++ b/study/kernel/04-net/04-/02-receive/README.md @@ -1,215 +1,265 @@ -进程虚拟地址空间 -======= - -| 日期 | 内核版本 | 架构| 作者 | GitHub| CSDN | -| ------- |:-------:|:-------:|:-------:|:-------:|:-------:| -| 2016-06-14 | [Linux-4.7](http://lxr.free-electrons.com/source/?v=4.7) | X86 & arm | [gatieme](http://blog.csdn.net/gatieme) | [LinuxDeviceDrivers](https://github.com/gatieme/LDD-LinuxDeviceDrivers) | [Linux内存管理](http://blog.csdn.net/gatieme/article/category/6225543) | - - -#2 接受分组 -------- - - -分组到达内核的时间是不可预测的. 所有现代的设备驱动程序都使用中断来通知内核(或系统)有分组到达. 网络驱动程序对特定于设备的中断设置了一个处理例程, 因此每当该中断被引发时(即分组到达), 内核都调用该处理程序, 将数据从网卡传输到物理内存, 或通知内核在一定时间后进行处理. - -几乎所有的网卡都支持DMA模式, 能够自行将数据传输到物理内存. 但这些数据仍然需要解释和处理,这在稍后进行. - -##2.1 传统方法 -------- - -当前, 内核为分组的接收提供了两个框架. 其中一个很早以前就集成到内核中了, 因而称为传统方法. 但与超高速网络适配器协作时, 该API会出现问题,因而网络子系统的开发者已经设计了一种新的API(通常称为NAPI 1). 我们首先从传统方法开始, 因为它比较易于理解. 另外, 使用旧API的适配器较多, 而使用新API的较少. 这没有问题, 因为其物理传输速度没那么高, 不需要新方法. NAPI在稍后讨论 - -图12-10给出了在一个分组到达网络适配器之后,该分组穿过内核到达网络层函数的路径 - - -因为分组是在中断上下文中接收到的, 所以处理例程只能执行一些基本的任务,避免系统(或当前CPU)的其他任务延迟太长时间. - -在中断上下文中, 数据由3个短函数2处理, 执行了下列任务. - -![接收到的分组穿过内核的路径]() - - -1. net_interrupt是由设备驱动程序设置的中断处理程序. 它将确定该中断是否真的是由接收到的分组引发的(也存在其他的可能性, 例如, 报告错误或确认某些适配器执行的传输任务). 如果确实如此,则控制将转移到`net_rx`. - -2. `net_rx`函数也是特定于网卡的, 首先创建一个新的套接字缓冲区. 分组的内容接下来从网卡传输到缓冲区(也就是进入了物理内存), 然后使用内核源代码中针对各种传输类型的库函数来分析首部数据. 这项分析将确定分组数据所使用的网络层协议,例如IP协议. - -3. 与上述两个方法不同, `netif_rx`函数不是特定于网络驱动程序的,该函数位于`net/core/dev.c`. 调用该函数,标志着控制由特定于网卡的代码转移到了网络层的通用接口部分. - -该函数的作用在于, 将接收到的分组放置到一个特定于CPU的等待队列上, 并退出中断上下文, 使得CPU可以执行其他任务. - -内核在全局定义的softnet_data数组中管理进出分组的等待队列, 数组项类型为softnet_data. 为提高多处理器系统的性能, 对每个CPU都会创建等待队列, 支持分组的并行处理. - -不心使用显式的锁机制来保护等待队列免受并发访问, 因为每个CPU都只修改自身的队列, 不会干扰其他CPU的工作. 下文将忽略多处理器相关内容, 只考虑单"softnet_data等待队列", 避免过度复杂化. - - -定义[`include/linux/netdevice.h?v=4.7, line 2719`](http://lxr.free-electrons.com/source/include/linux/netdevice.h?v=4.7#L2719) - - -```cpp -// http://lxr.free-electrons.com/source/include/linux/netdevice.h#L2719 -/* - * Incoming packets are placed on per-CPU queues - */ -struct softnet_data { - struct list_head poll_list; - struct sk_buff_head process_queue; - - /* stats */ - unsigned int processed; - unsigned int time_squeeze; - unsigned int received_rps; -#ifdef CONFIG_RPS - struct softnet_data *rps_ipi_list; -#endif -#ifdef CONFIG_NET_FLOW_LIMIT - struct sd_flow_limit __rcu *flow_limit; -#endif - struct Qdisc *output_queue; - struct Qdisc **output_queue_tailp; - struct sk_buff *completion_queue; - -#ifdef CONFIG_RPS - /* input_queue_head should be written by cpu owning this struct, - * and only read by other cpus. Worth using a cache line. - */ - unsigned int input_queue_head ____cacheline_aligned_in_smp; - - /* Elements below can be accessed between CPUs for RPS/RFS */ - struct call_single_data csd ____cacheline_aligned_in_smp; - struct softnet_data *rps_ipi_next; - unsigned int cpu; - unsigned int input_queue_tail; -#endif - unsigned int dropped; - struct sk_buff_head input_pkt_queue; - struct napi_struct backlog; - -}; -``` - -目前只对该数据结构的一个成员`input_pkt_queue`感兴趣: - - -```cpp -// http://lxr.free-electrons.com/source/include/linux/netdevice.h?v=4.7#L2753 -struct softnet_data { - struct sk_buff_head input_pkt_queue; -} -``` - -* `input_pkt_queue`使用上文提到的`sk_buff_head`表头, 对所有进入的分组建立一个链表. - -* [`netif_rx`](http://lxr.free-electrons.com/source/net/core/dev.c?v=4.7#L3830)在结束工作之前将软中断`NET_RX_SOFTIRQ`标记为即将执行, 然后退出中断上下文. - -* [`net_rx_action`](http://lxr.free-electrons.com/source/net/core/dev.c?v=4.7#L5177)用作该软中断的处理程序. 其代码流程图在图12-11给出. 请记住, 这里描述的是一个简化的版本. 完整版包含了对高速网络适配器引入的新方法, 将在下文介绍. - - -![图12-11 net_rx_action 的代码流程图]() - - -在一些准备任务之后,工作转移到[`process_backlog`](http://lxr.free-electrons.com/source/net/core/dev.c?v=4.7#L4809), 该函数在循环中执行下列步骤. 为简化描述, 假定循环一直进行, 直至所有的待决分组都处理完成,不会被其他情况中断. - -1. [`__skb_dequeue`](http://lxr.free-electrons.com/source/include/linux/skbuff.h?v=4.7#L1741)从等待队列移除一个套接字缓冲区, 该缓冲区管理着一个接收到的分组. - -2. 由[`netif_receive_skb`](http://lxr.free-electrons.com/source/net/core/dev.c?v=4.7#L4290)函数分析分组类型, 以便根据分组类型将分组传递给网络层的接收函数(即传递到网络系统的更高一层). 为此, 该函数遍历所有可能负责当前分组类型的所有网络层函数, 一一调用[`deliver_skb`](http://lxr.free-electrons.com/source/net/core/dev.c?v=4.7#L1807). - -接下来[`deliver_skb`](http://lxr.free-electrons.com/source/net/core/dev.c?v=4.7#L1807)函数使用一个特定于分组类型的处理程序[`func`](http://lxr.free-electrons.com/source/include/linux/netdevice.h?v=4.7#L2131), 承担对分组的更高层(例如互联网络层)的处理. - -[`netif_receive_skb`](http://lxr.free-electrons.com/source/net/core/dev.c?v=4.7#L4290)也处理诸如桥接之类的专门特性, 但讨论这些边角情况是不必要的, 至少在平均水准的系统中, 此类特性都属于边缘情况. - -所有用于从底层的网络访问层接收数据的网络层函数都注册在一个散列表中, 通过全局数组[`ptype_base`](http://lxr.free-electrons.com/source/net/core/dev.c?v=4.7#L153)实现. - -新的协议通过[`dev_add_pack`](http://lxr.free-electrons.com/source/net/core/dev.c?v=4.7#L397)增加. 各个数组项的类型为[`struct packet_type`](http://lxr.free-electrons.com/source/include/linux/netdevice.h?v=4.7#L2128), 定义如下: - -```cpp -// http://lxr.free-electrons.com/source/include/linux/netdevice.h?v=4.7#L2128 -struct packet_type { - __be16 type; /* This is really htons(ether_type). */ - struct net_device *dev; /* NULL is wildcarded here */ - int (*func) (struct sk_buff *, - struct net_device *, - struct packet_type *, - struct net_device *); - bool (*id_match)(struct packet_type *ptype, - struct sock *sk); - void *af_packet_priv; - struct list_head list; -}; -``` - -| 字段 | 描述 | -|:---:|:----:| -| type | 指定了协议的标识符,处理程序会使用该标识符 | -| dev | 将一个协议处理程序绑定到特定的网卡(NULL 指针表示该处理程序对系统中所有网络设备都有效) | -| func | 是该结构的主要成员。它是一个指向网络层函数的指针,如果分组的类型适当,将其传递给该函数. 其中一个处理程序就是 ip_rcv ,用于基于IPv4的协议,在下文讨论 | - -`netif_receive_skb`对给定的套接字缓冲区查找适当的处理程序, 并调用其`func`函数, 将处理分组的职责委托给网络层, 这是网络实现中更高的一层. - - - -##2.2 对高速接口的支持 -------- - -如果设备不支持过高的传输率, 那么此前讨论的旧式方法可以很好地将分组从网络设备传输到内核的更高层. 每次一个以太网帧到达时, 都使用一个IRQ来通知内核. - -这里暗含着"快"和"慢"的概念. 对低速设备来说, 在下一个分组到达之前, IRQ的处理通常已经结束. 由于下一个分组也通过IRQ通知, 如果前一个分组的IRQ尚未处理完成, 则会导致问题, 高速设备通常就是这样. 现代以太网卡的运作高达`10000 Mbit/s`, 如果使用旧式方法来驱动此类设备, 将造成所谓的"中断风暴". 如果在分组等待处理时接收到新的IRQ, 内核不会收到新的信息 : 在分组进入处理过程之前, 内核是可以接收IRQ的, 在分组的处理结束后, 内核也可以接收IRQ, 这些不过是"旧闻"而已. 为解决该问题, NAPI使用了IRQ和轮询的组合. - -假定某个网络适配器此前没有分组到达, 但从现在开始, 分组将以高频率频繁到达. 这就是NAPI设备的情况, 如下所述. - -1. 第一个分组将导致网络适配器发出IRQ. 为防止进一步的分组导致发出更多的IRQ, 驱动程序会关闭该适配器的Rx IRQ. 并将该适配器放置到一个轮询表上. - -2. 只要适配器上还有分组需要处理, 内核就一直对轮询表上的设备进行轮询. - -3. 重新启用Rx中断. - - -如果在新的分组到达时, 旧的分组仍然处于处理过程中, 工作不会因额外的中断而减速. 虽然对设备驱动程序(和一般意义上的内核代码)来说轮询通常是一个很差的方法, 但在这里该方法没有什么不利之处:在没有分组还需要处理时,将停止轮询,设备将回复到通常的IRQ驱动的运行方式. 在没有中断支持的情况下, 轮询空的接收队列将不必要地浪费时间, 但NAPI并非如此. - -NAPI的另一个优点是可以高效地丢弃分组. 如果内核确信因为有很多其他工作需要处理, 而导致无法处理任何新的分组,那么网络适配器可以直接丢弃分组,无须复制到内核. - -只有设备满足如下两个条件时,才能实现NAPI方法。 - -1. 设备必须能够保留多个接收的分组,例如保存到DMA环形缓冲区中. 下文将该缓冲区称为Rx缓冲区. - -2. 该设备必须能够禁用用于分组接收的IRQ. 而且, 发送分组或其他可能通过IRQ进行的操作, 都仍然必须是启用的。 - -如果系统中有多个设备, 会怎么样呢? 这是通过循环轮询各个设备来解决的. 图12-12概述了这种情况. - -![图12-12 NAPI机制和循环轮询表概览]() - - -回想前文提到的, 如果一个分组到达一个空的Rx缓冲区, 则将相应的设备置于轮询表中. 由于链表本身的性质, 轮询表可以包含多个设备. - -内核以循环方式处理链表上的所有设备 : 内核依次轮询各个设备, 如果已经花费了一定的时间来处理某个设备, 则选择下一个设备进行处理. 此外, 某个设备都带有一个相对权重, 表示与轮询表中其他设备相比, 该设备的相对重要性. 较快的设备权重较大,较慢的设备权重较小. 由于权重指定了在一个轮询的循环中处理多少分组, 这确保了内核将更多地注意速度较快的设备. - -现在我们已经弄清楚了NAPI的基本原理, 接下来将讨论其实现细节. 与旧的API相比, 关键性的变化在于, 支持NAPI的设备必须提供一个 poll函数. 该方法是特定于设备的, 在用`netif_napi_add`注册网卡时指定. 调用该函数注册, 表明设备可以且必须用新方法处理. - -```CPP - -static inline void netif_napi_add(struct net_device *dev, -struct napi_struct *napi, -int (*poll)(struct napi_struct *, int), -int weight); -``` - -| 参数 | 描述 | -|:----:|:----:| -| dev | 指向所述设备的`net_device`实例 | -| poll | 指定了在IRQ禁用时用来轮询设备的函数 | -| weight | 指定了设备接口的相对权重。实际上可以对 weight 指定任意整数值。通常10/100 Mbit网卡的驱动程序 -指定为16,而1 000/10 000 Mbit网卡的驱动程序指定为64。无论如何,权重都不能超过该设备可以在 -Rx缓冲区中存储的分组的数目。 -netif_napi_add 还需要另一个参数,是一个指向 struct napi_struct 实例的指针。该结构用于 -管理轮询表上的设备。其定义如下: - -struct napi_struct { -struct list_head poll_list; -}; -unsigned long state; -int weight; -int (*poll)(struct napi_struct *, int); -轮询表通过一个标准的内核双链表实现, poll_list 用作链表元素。 weight 和 poll 的语义同上文 -所述。 state 可以是 NAPI_STATE_SCHED 或 NAPI_STATE_DISABLE ,前者表示设备将在内核的下一次循 -环时被轮询,后者表示轮询已经结束且没有更多的分组等待处理,但设备尚未从轮询表移除。 -请注意, struct napi_struct 经常嵌入到一个更大的结构中,后者包含了与网卡有关的、特定 -于驱动程序的数据。这样在内核使用 poll 函数轮询网卡时,可用 container_of 机制获得相关信息 \ No newline at end of file +进程虚拟地址空间 +======= + +| 日期 | 内核版本 | 架构| 作者 | GitHub| CSDN | +| ------- |:-------:|:-------:|:-------:|:-------:|:-------:| +| 2016-06-14 | [Linux-4.7](http://lxr.free-electrons.com/source/?v=4.7) | X86 & arm | [gatieme](http://blog.csdn.net/gatieme) | [LinuxDeviceDrivers](https://github.com/gatieme/LDD-LinuxDeviceDrivers) | [Linux内存管理](http://blog.csdn.net/gatieme/article/category/6225543) | + + +#2 接受分组 +------- + + +分组到达内核的时间是不可预测的. 所有现代的设备驱动程序都使用中断来通知内核(或系统)有分组到达. 网络驱动程序对特定于设备的中断设置了一个处理例程, 因此每当该中断被引发时(即分组到达), 内核都调用该处理程序, 将数据从网卡传输到物理内存, 或通知内核在一定时间后进行处理. + +几乎所有的网卡都支持DMA模式, 能够自行将数据传输到物理内存. 但这些数据仍然需要解释和处理,这在稍后进行. + +##2.1 传统方法 +------- + +当前, 内核为分组的接收提供了两个框架. 其中一个很早以前就集成到内核中了, 因而称为传统方法. 但与超高速网络适配器协作时, 该API会出现问题,因而网络子系统的开发者已经设计了一种新的API(通常称为NAPI 1). 我们首先从传统方法开始, 因为它比较易于理解. 另外, 使用旧API的适配器较多, 而使用新API的较少. 这没有问题, 因为其物理传输速度没那么高, 不需要新方法. NAPI在稍后讨论 + +下图出了在一个分组到达网络适配器之后,该分组穿过内核到达网络层函数的路径 + + +因为分组是在中断上下文中接收到的, 所以处理例程只能执行一些基本的任务,避免系统(或当前CPU)的其他任务延迟太长时间. + +在中断上下文中, 数据由3个短函数2处理, 执行了下列任务. + +![接收到的分组穿过内核的路径](../images/receive_kernel_route.png) + + +1. net_interrupt是由设备驱动程序设置的中断处理程序. 它将确定该中断是否真的是由接收到的分组引发的(也存在其他的可能性, 例如, 报告错误或确认某些适配器执行的传输任务). 如果确实如此,则控制将转移到`net_rx`. + +2. `net_rx`函数也是特定于网卡的, 首先创建一个新的套接字缓冲区. 分组的内容接下来从网卡传输到缓冲区(也就是进入了物理内存), 然后使用内核源代码中针对各种传输类型的库函数来分析首部数据. 这项分析将确定分组数据所使用的网络层协议,例如IP协议. + +3. 与上述两个方法不同, `netif_rx`函数不是特定于网络驱动程序的,该函数位于`net/core/dev.c`. 调用该函数,标志着控制由特定于网卡的代码转移到了网络层的通用接口部分. + +该函数的作用在于, 将接收到的分组放置到一个特定于CPU的等待队列上, 并退出中断上下文, 使得CPU可以执行其他任务. + +内核在全局定义的softnet_data数组中管理进出分组的等待队列, 数组项类型为softnet_data. 为提高多处理器系统的性能, 对每个CPU都会创建等待队列, 支持分组的并行处理. + +不心使用显式的锁机制来保护等待队列免受并发访问, 因为每个CPU都只修改自身的队列, 不会干扰其他CPU的工作. 下文将忽略多处理器相关内容, 只考虑单"softnet_data等待队列", 避免过度复杂化. + + +定义[`include/linux/netdevice.h?v=4.7, line 2719`](http://lxr.free-electrons.com/source/include/linux/netdevice.h?v=4.7#L2719) + + +```cpp +// http://lxr.free-electrons.com/source/include/linux/netdevice.h#L2719 +/* + * Incoming packets are placed on per-CPU queues + */ +struct softnet_data { + struct list_head poll_list; + struct sk_buff_head process_queue; + + /* stats */ + unsigned int processed; + unsigned int time_squeeze; + unsigned int received_rps; +#ifdef CONFIG_RPS + struct softnet_data *rps_ipi_list; +#endif +#ifdef CONFIG_NET_FLOW_LIMIT + struct sd_flow_limit __rcu *flow_limit; +#endif + struct Qdisc *output_queue; + struct Qdisc **output_queue_tailp; + struct sk_buff *completion_queue; + +#ifdef CONFIG_RPS + /* input_queue_head should be written by cpu owning this struct, + * and only read by other cpus. Worth using a cache line. + */ + unsigned int input_queue_head ____cacheline_aligned_in_smp; + + /* Elements below can be accessed between CPUs for RPS/RFS */ + struct call_single_data csd ____cacheline_aligned_in_smp; + struct softnet_data *rps_ipi_next; + unsigned int cpu; + unsigned int input_queue_tail; +#endif + unsigned int dropped; + struct sk_buff_head input_pkt_queue; + struct napi_struct backlog; + +}; +``` + +目前只对该数据结构的一个成员`input_pkt_queue`感兴趣: + + +```cpp +// http://lxr.free-electrons.com/source/include/linux/netdevice.h?v=4.7#L2753 +struct softnet_data { + struct sk_buff_head input_pkt_queue; +} +``` + +* `input_pkt_queue`使用上文提到的`sk_buff_head`表头, 对所有进入的分组建立一个链表. + +* [`netif_rx`](http://lxr.free-electrons.com/source/net/core/dev.c?v=4.7#L3830)在结束工作之前将软中断`NET_RX_SOFTIRQ`标记为即将执行, 然后退出中断上下文. + +* [`net_rx_action`](http://lxr.free-electrons.com/source/net/core/dev.c?v=4.7#L5177)用作该软中断的处理程序. 其代码流程图在图12-11给出. 请记住, 这里描述的是一个简化的版本. 完整版包含了对高速网络适配器引入的新方法, 将在下文介绍. + + +![图12-11 net_rx_action 的代码流程图](../images/net_rx_action.png) + + +在一些准备任务之后,工作转移到[`process_backlog`](http://lxr.free-electrons.com/source/net/core/dev.c?v=4.7#L4809), 该函数在循环中执行下列步骤. 为简化描述, 假定循环一直进行, 直至所有的待决分组都处理完成,不会被其他情况中断. + +1. [`__skb_dequeue`](http://lxr.free-electrons.com/source/include/linux/skbuff.h?v=4.7#L1741)从等待队列移除一个套接字缓冲区, 该缓冲区管理着一个接收到的分组. + +2. 由[`netif_receive_skb`](http://lxr.free-electrons.com/source/net/core/dev.c?v=4.7#L4290)函数分析分组类型, 以便根据分组类型将分组传递给网络层的接收函数(即传递到网络系统的更高一层). 为此, 该函数遍历所有可能负责当前分组类型的所有网络层函数, 一一调用[`deliver_skb`](http://lxr.free-electrons.com/source/net/core/dev.c?v=4.7#L1807). + +接下来[`deliver_skb`](http://lxr.free-electrons.com/source/net/core/dev.c?v=4.7#L1807)函数使用一个特定于分组类型的处理程序[`func`](http://lxr.free-electrons.com/source/include/linux/netdevice.h?v=4.7#L2131), 承担对分组的更高层(例如互联网络层)的处理. + +[`netif_receive_skb`](http://lxr.free-electrons.com/source/net/core/dev.c?v=4.7#L4290)也处理诸如桥接之类的专门特性, 但讨论这些边角情况是不必要的, 至少在平均水准的系统中, 此类特性都属于边缘情况. + +所有用于从底层的网络访问层接收数据的网络层函数都注册在一个散列表中, 通过全局数组[`ptype_base`](http://lxr.free-electrons.com/source/net/core/dev.c?v=4.7#L153)实现. + +新的协议通过[`dev_add_pack`](http://lxr.free-electrons.com/source/net/core/dev.c?v=4.7#L397)增加. 各个数组项的类型为[`struct packet_type`](http://lxr.free-electrons.com/source/include/linux/netdevice.h?v=4.7#L2128), 定义如下: + +```cpp +// http://lxr.free-electrons.com/source/include/linux/netdevice.h?v=4.7#L2128 +struct packet_type { + __be16 type; /* This is really htons(ether_type). */ + struct net_device *dev; /* NULL is wildcarded here */ + int (*func) (struct sk_buff *, + struct net_device *, + struct packet_type *, + struct net_device *); + bool (*id_match)(struct packet_type *ptype, + struct sock *sk); + void *af_packet_priv; + struct list_head list; +}; +``` + +| 字段 | 描述 | +|:---:|:----:| +| type | 指定了协议的标识符,处理程序会使用该标识符 | +| dev | 将一个协议处理程序绑定到特定的网卡(NULL 指针表示该处理程序对系统中所有网络设备都有效) | +| func | 是该结构的主要成员。它是一个指向网络层函数的指针,如果分组的类型适当,将其传递给该函数. 其中一个处理程序就是 ip_rcv ,用于基于IPv4的协议,在下文讨论 | + +`netif_receive_skb`对给定的套接字缓冲区查找适当的处理程序, 并调用其`func`函数, 将处理分组的职责委托给网络层, 这是网络实现中更高的一层. + + + +##2.2 对高速接口的支持 +------- + + + +###2.2.1 NAPI机制与轮询 +------- + + +如果设备不支持过高的传输率, 那么此前讨论的旧式方法可以很好地将分组从网络设备传输到内核的更高层. 每次一个以太网帧到达时, 都使用一个IRQ来通知内核. + +这里暗含着"快"和"慢"的概念. 对低速设备来说, 在下一个分组到达之前, IRQ的处理通常已经结束. 由于下一个分组也通过IRQ通知, 如果前一个分组的IRQ尚未处理完成, 则会导致问题, 高速设备通常就是这样. 现代以太网卡的运作高达`10000 Mbit/s`, 如果使用旧式方法来驱动此类设备, 将造成所谓的"中断风暴". 如果在分组等待处理时接收到新的IRQ, 内核不会收到新的信息 : 在分组进入处理过程之前, 内核是可以接收IRQ的, 在分组的处理结束后, 内核也可以接收IRQ, 这些不过是"旧闻"而已. 为解决该问题, NAPI使用了IRQ和轮询的组合. + +假定某个网络适配器此前没有分组到达, 但从现在开始, 分组将以高频率频繁到达. 这就是NAPI设备的情况, 如下所述. + +1. 第一个分组将导致网络适配器发出IRQ. 为防止进一步的分组导致发出更多的IRQ, 驱动程序会关闭该适配器的Rx IRQ. 并将该适配器放置到一个轮询表上. + +2. 只要适配器上还有分组需要处理, 内核就一直对轮询表上的设备进行轮询. + +3. 重新启用Rx中断. + + +如果在新的分组到达时, 旧的分组仍然处于处理过程中, 工作不会因额外的中断而减速. 虽然对设备驱动程序(和一般意义上的内核代码)来说轮询通常是一个很差的方法, 但在这里该方法没有什么不利之处:在没有分组还需要处理时,将停止轮询,设备将回复到通常的IRQ驱动的运行方式. 在没有中断支持的情况下, 轮询空的接收队列将不必要地浪费时间, 但NAPI并非如此. + +NAPI的另一个优点是可以高效地丢弃分组. 如果内核确信因为有很多其他工作需要处理, 而导致无法处理任何新的分组,那么网络适配器可以直接丢弃分组,无须复制到内核. + +只有设备满足如下两个条件时,才能实现NAPI方法。 + +1. 设备必须能够保留多个接收的分组,例如保存到DMA环形缓冲区中. 下文将该缓冲区称为Rx缓冲区. + +2. 该设备必须能够禁用用于分组接收的IRQ. 而且, 发送分组或其他可能通过IRQ进行的操作, 都仍然必须是启用的。 + +如果系统中有多个设备, 会怎么样呢? 这是通过循环轮询各个设备来解决的. 图12-12概述了这种情况. + +![图12-12 NAPI机制和循环轮询表概览](../images/napi.png) + + +回想前文提到的, 如果一个分组到达一个空的Rx缓冲区, 则将相应的设备置于轮询表中. 由于链表本身的性质, 轮询表可以包含多个设备. + +内核以循环方式处理链表上的所有设备 : 内核依次轮询各个设备, 如果已经花费了一定的时间来处理某个设备, 则选择下一个设备进行处理. 此外, 某个设备都带有一个相对权重, 表示与轮询表中其他设备相比, 该设备的相对重要性. 较快的设备权重较大,较慢的设备权重较小. 由于权重指定了在一个轮询的循环中处理多少分组, 这确保了内核将更多地注意速度较快的设备. + +###2.2.2 napi机制的实现细节 +------- + +现在我们已经弄清楚了NAPI的基本原理, 接下来将讨论其实现细节. 与旧的API相比, 关键性的变化在于, 支持NAPI的设备必须提供一个 poll函数. 该方法是特定于设备的, 在用`netif_napi_add`注册网卡时指定. 调用该函数注册, 表明设备可以且必须用新方法处理. + +```CPP +/** + * netif_napi_add - initialize a NAPI context + * @dev: network device + * @napi: NAPI context + * @poll: polling function + * @weight: default weight + * + * netif_napi_add() must be used to initialize a NAPI context prior to calling + * *any* of the other NAPI-related functions. + */ +void netif_napi_add( + struct net_device *dev, + struct napi_struct *napi, + int (*poll)(struct napi_struct *, int), + int weight); +``` + +| 参数 | 描述 | +|:----:|:----:| +| dev | 指向所述设备的`net_device`实例 | +| napi | 该结构用于管理轮询表上的设备 | +| poll | 指定了在IRQ禁用时用来轮询设备的函数 | +| weight | 指定了设备接口的相对权重。实际上可以对 weight 指定任意整数值。通常10/100 Mbit网卡的驱动程序, 指定为16,而1 000/10 000 Mbit网卡的驱动程序指定为64。无论如何,权重都不能超过该设备可以在Rx缓冲区中存储的分组的数目 | + + +`netif_napi_add`还需要另一个参数,是一个指向`struct napi_struct`实例的指针. 该结构用于管理轮询表上的设备. 其定义如下 : + +```cpp +/* + * Structure for NAPI scheduling similar to tasklet but with weighting + */ +struct napi_struct { + /* The poll_list must only be managed by the entity which + * changes the state of the NAPI_STATE_SCHED bit. This means + * whoever atomically sets that bit can add this napi_struct + * to the per-CPU poll_list, and whoever clears that bit + * can remove from the list right before clearing the bit. + */ + struct list_head poll_list; + + unsigned long state; + int weight; + unsigned int gro_count; + int (*poll)(struct napi_struct *, int); +#ifdef CONFIG_NETPOLL + spinlock_t poll_lock; + int poll_owner; +#endif + struct net_device *dev; + struct sk_buff *gro_list; + struct sk_buff *skb; + struct hrtimer timer; + struct list_head dev_list; + struct hlist_node napi_hash_node; + unsigned int napi_id; +}; +``` + +轮询表通过一个标准的内核双链表实现, `poll_list`用作链表元素. `weight`和 `poll`的语义同上文所述. `state` 以是`NAPI_STATE_SCHED`或`NAPI_STATE_DISABLE`, 前者表示设备将在内核的下一次循环时被轮询, 后者表示轮询已经结束且没有更多的分组等待处理,但设备尚未从轮询表移除. + +请注意, `struct napi_struct`经常嵌入到一个更大的结构中,后者包含了与网卡有关的、特定于驱动程序的数据. 这样在内核使用`poll`函数轮询网卡时,可用 `container_of`机制获得相关信息. + + + +##2.2.3 实现poll函数 +------- + + +`poll`函数需要两个参数 : 一个指向`napi_struct`实例的指针和一个指定了"预算"的整数, 预算表示内核允许驱动程序处理的分组数目. 我们并不打算处理真实网卡的可能的奇异之处, 因此讨论一个伪函数, 该函数用于一个需要`NAPI`的超高速适配器 : \ No newline at end of file diff --git a/study/kernel/04-net/04-/images/napi.png b/study/kernel/04-net/04-/images/napi.png new file mode 100644 index 0000000000000000000000000000000000000000..201b6a96d9e5e3f8749c3f47a6d6569e483bca4d GIT binary patch literal 62524 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 JsgN=a{$H$qGw}cb literal 0 HcmV?d00001 diff --git a/study/kernel/04-net/04-/images/net_rx_action.png b/study/kernel/04-net/04-/images/net_rx_action.png new file mode 100644 index 0000000000000000000000000000000000000000..adece9d51fd21a604e0c96bb7019a0475b7134ac GIT binary patch literal 40641 zcmd43WmKC{7cSVA;x5IdI23QO;!c6$EgmQYcXufc#f!TYXp38r;7)N35ZsG91OiOx z_pP~i?z%r_X3dZJ!FrQ7ubi{bK3kssY$DZENrfeF*4#iy5k33muJs#dY=BCC$r&D zJbRX-r642u$e-Ct39h+^ZtdOWccd(BXaHdw^qWq<^5rt|r+d zrH&7Ng+xS@^xeGbItMH~_l4y~Q1(6`cg$~5^!ngn5nO%mZvT;C?JJ%X8f{2C%}3>% z)c=0`7Q{pwg7~bCj*;4)1OR*FYgZadJ^wdcg(68!ef{u9$l(Rq=0tv{=Gp#-I&2=}Y3^vs_uv1` zg?E&XWY&DPXglT*zf*_Bp%*OB;ccYk^JDs zf07cPCFDJfZNNQSo|%z0*U3Ns)86ib-++ZF`|#86oAUYi$^~!9>Ha2VTK@bc8MU7X zmw6KA3__@%q_nBh-Wp?pYz_M3n4Vs-d3+9esZ8uUaDA7PFz6vE>G_xw8_0l={exD3 z?6@hd)!zc-4<92)6hEj`#kaZlYW!g8Lt|V?$-+hENVRZon(wcu2-Yt+@#nERbC2+jkJnE5p zXsBwY&dGtFv+RerL_>A?$8P;EzgraFKI!Zrl|O7NMrI;^cdnJWprC-qeORZ(^Wo)A zON+7LPdtJR6Z{J?(owdQLM1Wqb0tK%e88BT<^&m{dflm zS-haHYJB>avPFv*$;oc5hu$PLtm9)7}FPHi^i#EE&i9p)lR2X4i0hl zt#@CJLCPl=Z4qyalvW3)c64eidCJIVWre|75iya{HG*VUS5(|)3+=wbkJ03TnGgpF zB_+ZIA)z^!fmbN7=o_>7-rKjp1tNpfrWa9Cp~j}BU%8Cd@n4YzBG$IEMaC+>n5Z=1 zuz+NH)acp9i(=pVkVcu1fQOKV3j7M-L3>ZMqk-mv=8_@uOG{K9@m=n!fH+&*7zjqZb@Vi3dUpkN<&I$5s$!@e#S zaEp4D4i=EU*Zb~zVk_oJX+96Uf=rlpT5O$}!BHP>oPZNGW^AO}T+fu1`O1vi@k>;* zd#V%dtpc|2D|TLMhY=Mwrl;DmEW(fj+U_P zIC}<$M(vl%s`7f|4l0b=W3l%i!^iUTEvNIS!vwK|)t|qUk(H64d_?v(mxa0cUZ0AF z;ZjDc6Ebx+SMx!>lFydw1WwsAS6OYCC)Kgv1MZFO#Jz9uQc_ZUb&{J7J*bpYIQm&3 z^j4B_GosF4a7mW6O;*~F;J`mGTYMvrmYTmjt`%BICYBdU8v41~F1^SEfnQg)<*Vr{ z>ITdMxjh{2HX=&dwAc-Q@>-&Z2Sfxgee6j9%IB3PKioFD9lmY8aPGlBQj!Q=z@7q~ z&vIl|87~R3>(;!)&S*#xiwz?VyFA9`bHj$mLBn+I#Qz!Qfw5FJ_v~87_>8Owm=Z~W z-?iBIAMLMPQ7Ruofn%c|wz~qcFiC7?%eu%p9S6cc7JCkAG_Gz$4W)9@v+~^c!YrRC1K+)@u@ULNhD`$ z^i0Y*-@IJ5e~1>_zR{Z`0D!MME~9o}iC(0j*n%FN6M&M!=bvLtW~M_L-xEW=59@d? zHoFKEt7gCWxub4bYkuE{*uUuf_AYC=4)gA@v8r9s@87}V2Tv{u6V;kc+&oneAY%8cEpwsHb8H{KW$DT`5wE zQSwWNi&!J1d<9|1`d=*dL?&{Z4#d|@eEDolpH%t6us~z$jg*2ANOZyDC{~-x2!rtj zC)^rNMWXon$%Lb|Zs+6Hb)n_MylmxP$|r(>h5TvmICZ<+aI~n?{vE;n{_HOrrIW^{go0$j`*x?C++i- z6yl@(!FhufgL8T6K+^3Y)NpFQ8^Gb2X1}4|M3KD1!)f-^)#i_E<16vHUWlOF@Ec5v=SA{v1#1d?aA~+ z^^)Sx3!J|Hmdf8*b{q>EOG3vKE2z5*pZJ9Im%`)*n=Wjlffk#)+YJ)|o^CTdQ^ z|KPx}7)Ko<$P|RjWP6KuLd1-FAhi>Fh)?pWv!S!9N+Vy9ky6N&rQBY_^`$-FLgul} zZ#7^>|7ZHU{K{N<_7k!ou@G7weqsls_SKzkLvcxGUvEcKl5e=!-jRVwchdR-xGFBR zV`Vz5{sPTIqg0K)gQ!c*Zr$Mx->!#n-1zL~Ja)f!hsV*vfv;tLMWXq;)0C!ibanMc z(W+0}-G z>a+#d4Rzlc&5l$OgRJtJFwkTH3mYNG9xIJMxqZ>%WEdJa%%qTvPPWj|(cv}>@0k>J z{^^1dhql4;&yPiW@l{ACFQL~562U^)>LAzj;jI|`lLlS1!^tAd0y=v28dLNLO^uU_ zzwe0NmQ~CP(31uS17Y0$qgEJnIFwC$YIM)A-J3^?!-#`jy~W7A8psQEbN#w9 zlF7}-@%6fs_NUG-Iu+{o(ay=gPx?($Skx&~@8Nhf%-G&Fhy6MJiSRzOxQO*GJrSIP z6cGj!>>7sDEUdpch8-HCYG5SaKpiSQHMoKRf@kcnMB$ z4+5mq|@T+rik#eTox-%Y=s%EKn zzNxVh%f=`_;He8y$>+Um@CT!)E%5QFVytIM3xAlA+3Pz6o+Q`BW$cj;X#Y&AdmC;S z*TaS1xamjDt&M)`d{MIak2!t=M`6Jd>mK_EqGopuK z=t#WlW=tdfKRr~CxxM4)p`gfU){E(yME;p7SJ>~m@jLo#VIKl&=2#c>kL17GV)w(( zoqt;GW1cgx5%HoU%vWw)Q1Mq9KFr5~I3a&biez4n-#0eG;);C};L5c-^&cT!Xte6F z{|VgB)yEkEkpKI}Ybanj;$J2Mr~ZGIw%o9$3V2_wzvtzxzk!CpF`B(DChDd2dwTk( z{sk}bxia;Vn)2kl*{PKhIU@70A_}Qb(k}pIhHcT9S>FF0w@i^_ttBnynwHR&@PfL! zdKV=uB`JxBA+i_FgR`(OxgyWJQmL5ydmvTyv|;lB82L#PdgLgI{%)IH*>?tj8yahw^e!yrlkDe3hih8o9oY)$jVP!9j}0( zeUo&ATGZS5kwn2_K-=$@DD0f11@^8;pT8D~Djx=9RMM#OJ7?PD<0evky5p=6{yk5j z=C}p&p4Y}cT=5m#dS`dI6zkIqJ{-w|M_rnTB3(DN85Fi28J}Wn7(i|ODGx!TeIqHE z_`kmXKLeGDQ2c*+QHWx|K71mvq>JOM)qbTVQ0)FT-vD+d=sf+Ig|SJ!_iQUf|LNt% zpU8P->HZ$O5}pZo5?)aEV(6o}JpG_{-H@a{u%XYuEJke+7z|5lpgf=5LxQ z;)D$Kp%C+?`1eDhTwb#`SlH(nMPJpITS)m$esIep#0mGalu3-I*#x!IR2VcT@dMi3 z0so9JJe$Sx!AxfG6b;iedf@uG)L>;I5mo0kBf?6vz=W{z^Gb0-+WcdyIxHfh;4JL_ z#BVPndCo;ZPWo(L4tu<#nAQ9J)rK^*k^r9oO+S;#*ND^Tgg~+V=%%{Ra(S8@JJa#n z#xkbpoCH4U_7r9eK-9m zkTOH0+)@a)^CpW#qQ+DD|2-3N>ktt;03BKJ^H)92n;E9rIFT@>uEmDx=H4M~$?A2+ zFW=?83&@@Z>Rf3=%{zazSOrl%*^^wdv^e;0W_BZ+zr-aFsXe3V;kWojO=NZ`x}2#eu>w(7x^s* zGB-G!?0ek~i23?IYW=*t=dG{1*`U((IpEQ``vXGXNA=0!%n|E!5C#EE!~=$%@2YRB zjgMj8We-tz4{&dzcE{KN>NYudc#&<83_JVa`&n^a@wxL|p9d@k^y)4R*&4B0JEz&p zXX{->`y|u^Y0D%|-_?q2}7fw6|jU-5B>&c%so|>k1e|c%DaoQLf&XV_Q78W$vdFI;4KFP^> zD~4!o0o+d~Vs~=z`B<)aaHyB$le>oZDjh(Ng2-pxeW|>zD~%-Mazu@-^`6Pe$wfp& zNI2J!Mn)ICxNAdZm!!lQnf!L&RCC1( zZLO5rmd3}qKmF1}wzejB6!oVo7u!F-z1*)dJvI5nqMgD8Jj~Efqvz&ElgFWwN^Xw1 zIXj;C6+^|OOp4pzcCVJPAH`21lq=?gUebBbV{t|4tCG~lKAP>;|Jy9;Gze;lj7c1# z;16u^z9biF_F6q$%K^oh>9jYL>jokZY16ewq8o{?e#UdXbc@f5|H`J#DKXXAx*BhtjT_C_S{+xSt=)BbDwn|lOB<`)^3mF zb+$5@eT-4Aayh0pjzugh><+$wugvLdxE>Tr!qBs$=vq5l|0&?dPNwVMlEQ^QOk3!J|yeC zlX*Q-gO6I}63KsFIl*dhSB{#_Nu186(b;v|DB~Pp#WBOx0V^U+an&3Bz`ti^1}hb( zmt2NT-*`6qoS(ChEja5($8dsdq0~G^1yi@f#ia%Vt=A{d7h}O^abs1W)N-B3fIiip zRq&O7XPb!DAYOTqEA}Px97d8ssY&lUHKAQo4|ORG-^a6cVSTp+caE^ zrs=TN{~o0=+dcTs%W9>S({t@1IGj|#o-)8)NOR~n6FGlPAapSCq-k#m0`?lB>6XLl zz0j?l0#S9_J3OrDiJ5Zh)v%Pet@s6e%oItudx*#2;1JDsH*fwRm)-2flNTU<<2ZKz zIX7zj-3UxosK&plcD`gZBRCipXLYf+)K}cMap$KUSSyXs?+p#7nOj38ARGX`0!|c! zHukj2>9hu;Uawz7cBA2-_bD_aPPT1w4XlL!+l7h3oO3y(QF}AL*Qfv1vKVw}uq2sC z+C4t_d6J!AXcjAn$J4;hR1Wnv2BT7Snr+GS<~%|K-+yja>yYZ{_XymDHgJvRw8y&} zr4Lb;tn%72z>k;0?G2?L-U_?zPj}r6YEG0m1ccr;FX-(;YAMR>>?SIW0;TqRLxlV;Sm0|jIm5U_H9^t%bTiMWQA-vG$F{+9$Q&f-KZ%VZ2YY8L z&WGjh+9Tc_-dQ6D$p0i%pbLs-Jj)~p&L&woI+KU-1HcyEoLkiozIHN+m)*_Ae$iC- zxXl-%CnC<*Zo8Io3X3GDr6{uzQE1YrsHmQf#u`ceAM!b&OGcIc0E71dDt|u|W5xW# zO#f_UBnGl`aHuz%yf@~g!o+u1CSMO5GqW_`we!_@dv)w633b0x3`Q?)cOQ9EXFdCg zR$_qHegcQCV)Srd3=X$z-@iHA!qnp%GY}W!K^JyE>^qS}x)G}eIT)TxK0ohr6m}xY z$zdicb}_U__@42t!^7COF;ewo@2Vuy1gKn;NtF~8SJlJ+S`2zQTD)C8Db1u=XbyPk zxVDf_ND?F>y7u?zTL>4vFQDJB^+9vM6oZ(1P0A17m@^xJ9Kqi;igUsYckV`*u5Og) ziy|`S&Qf1l&sEU|q|-Kaeq8Q`HmDU@^AYj9Q?I$#s5ZM(`Bafi{gw>gx*oOd&vwl_N zC*bc*SJ3}Mju}ec$}||U%X)PT0IgBXlw_>;SPTn1i}5+Unls4ZJn4$)%pN~~DF_5J zT~{`LAe8Ha!C=vI8w0U`O()iw{l)iLBK`!-v0&DZ%yBgG^Uh`okZ~3}nHqbb{>OBo zS3FLqIyH{yajFGM$4_9Oq$bK5sQ zi`JDexZ-rqN&W;P*R?%n$WKG&0kQectp@Hclw)#w`kaH~=j{*iyThDl)$yURa(#VW z2IjWeZ^g8moAu%&G^-xR@o$zcLZNMk7|=DJ0e@!^Mn+w4`d}IRt@`@ua;yM_}fRHzM1(jZm?wo9CxK{pJeWB))-WR2A#_S(I%En%rUqb5~Mvj{; z=v~NKy{||KI73p{KWF4}88-8ZcfsHjNd98#Psw zGPv$v0SsE4u~8c(h%c_NL3WQ0f$SGk%rc>V#M_faj((2wO-PJNM3Pyga{;T*;Eny% z4`VV!HSBROWQWcm8)dp+&IZ`4LMGvZHCEw|beMl`Gx2i2=F`h}{=l*& zCor)lCd-=f$$;_K4>fNOJjLeip{QcZq&%)K2TI-r^zxVG6 zSeYVG-M0w3d*(`sx;N3eza9GVYf7yp>7sF5O7%BJwFiG+%4GkXqE}0fjPi;NPyuw0EYyh^5 ztSknj2E^B|%5hEVXXLB6`{|)fR0pK?$4R-GOXD!Cy|@sTzZHJ-LO7IjG>jZd-T5{S zZ8*ZGEWDed;?1n3F1ORPfC^%GM@p%GPhkuUxK`SK`f!pE;l+Z(Uw-1-fztu%*Pf|!<#9T&oZ~Nx@_JXiaX-ZDdAZApbLi1om9N60 zqjpNF^^`7{8dacY^nN3f<11bG`5Da56h}2gLox@pVRqe{$Ba4D%d0Em#rjqtJ@H%i z9dE6D$Xy(Do^(Ga0-H?AMZwM>_0#BZp;m`E0p`Gmj9wJ zjywS*oO&-Djj6{!l3B=jokk&0wiDN2`Z!yvjq2sgrnk!RsqCdnj#w1JjTGpU zxU&}tuRH|lJ{CA_gb6xdu*f($P2L)CPtMH9LfsE<+Ng!M|3EDE=c=>-byiC#3qpTM zXvY%!pOvU&%LJobR(p)uw;j#K7>HZX1nK;UrOu|ByiFjqh0g0iyXF|g%MSHAncNB=@u*&_Ayltr$ljH=d`Xe7b(PVN0SS)?VKetz-oR;|Q_5wdpQj&By zRAj#o8v&5NX|ua(iKP(@T5&&UT4@Fft56EZn)CA`a-kG1i_|!iIrqO4g{TMm4RV^C z5{eD=%-dtRQ91Xwz!}9}!iWRm>kj(I%#$WpGJX)qatXwNbFdJFo!QXQmGvKBq1Aar zcLyNk(Pib~;hB5g#kaEW`6z}Lit$SJ-rH^BrxPK=FHG9#QlGOq^&iEGdHMOHMsMZ& zIy#<}FSx0p;bT#tV|w1=RT!N3jD@~-3@mw1!m?1`pz5HFgUR0}M$-7znV|ZV$Dm_c zeqYOg#l}4Kmz`E>jNuWq0Tq{KajO7Kj-f{+UD#Z&UTF;cVU2MZm00C^DmBMf-?^_{ z>3EsJrJWXp@v5{V1ygB@?X$Y&-Qs-W_{_AN=bXGj+n*U_<@N58G8$XR{q;*__fzM- zj@LA{di9;M*Mx#wPO&!Z_^(PoNkb}@;+fmYjKYmm-#70BL}9vBM664>06Eh@_VWZn zau8d}H39?#yM(zcQPTDK5oY z$V#w5d7a_B!Sqw%i{AK)?1cvT`8QgM4cSZ$F~KV+C-lYJvPufU?vM(dhOYEcA!dY; zYwPC1&0tT8NK72>Y!ek}X-UXR>IvwmeSO(#{DzI)u?CbL9jKn3HEXfoWjf;kGMF80 z*!$y7R%=$%{ISn}AZVkZ%CS#MKRM%@h2OiCJxqEi@%%i_+xJWUzt74qf&F{M41L`N zI_PNw*~6|gca&M$6+QWcCAEv3SpN_gnfJ6PaJtB9_|X)x`v@K}IR>;3y9g}TgnMw) zI9KW47=SxVjVUsZE&9Hkt2Fa-`xX?Y1<>NuXDVe2c%=EO?`J$$lO@)6AohFD!`;vB zUWe2iqPJAH7LXlQT`kjT|8V1p5q1Ad2eJ(!q}q#2&Z&;~y0tFFu^vaD1}ci8MF2@E`o= z32AAzU1nHRWZo`TrVxatI8Q26jcsv{FJJ~bgZNWl0y;RlA&2Ybz`FOolh6$RuM zJdq4G9ZC?OShD-!f)smkUOH8^6MCcj5{VoPOT9#ko$FVVq%p$7>Xm;~=BZ zIrOaYakpCSADH(2Zi46kL(+u!{6YG=@qB>r!F)Xh`swL^P`QEJ@Sttg?M+^+HUaxQ z)%Lb3ZmwwbjlT7eeJ70Ur-g=XsExx1G4ym+=W9z?EUm-RZb-}Yz&JPn;qDq&vX9v! zWDbVNXnY8y6@el;5b*{C`pWf@@_N2zU}aU))C_KJ7Lw|gs&<7rC$Z||AfaIQVRA>xt2ZICU|?&%caVE%KT#*FEXN1nV%G&t6GqaD%@b-HGogg z?YJtDpM+3{$}@QsWjg=>i;Vl33cWl!W7F7OgTr{SwEPje8l{)A@>Un)by6A$Z#b|r z=gF;Ocg!iO7bl8yL9RtpC2tYMcIKH&T0RFshb{hlIP5Kc$Cq^<$CnI>{!Jx z%rBiSUMFBDDlQ}BFK5%N@U1vB+Q*T`2>lYwqfsPGr?(5%Dk zJ^tJVHu-u;J)8EI%qUFrVE_x2`V&O$FHOWdXteKA@N$BE-VX_k=I6fufL7BFB!rr& zK7q6qESBHJRSk%ajM{@X?%Y?)_Mgl6qpf?08l4JWj!blpL&orlZ`kdE1Qm4X#?_RB zLFb!+0N=Z6^|ePY2tQa{m^iV1@b><6M$;;DFJlsetjf%Z2FdC40=?~FL%+?pspfL( zqjFbwrZxfsb+0&5@%23qsZ70K3=&7-jnY$>(1WrBqd$RWLJe&AO@I<}^y zdJXoWhhPtB0DvkI{WML`3Zqzs95Z!aa7$G>E}=I zxKwcPjdvM*Fxbb+Zs?C00@m%>tbXj6s20c(^XaPGuu{dXtFijp4F+kqKFfYytg+6#(N52N{IbS zy@=pQoI07bWz9Fc5h|vo=UIVO#x+$#l0O634Y_F!p`fkQp@lE*j&3AeY2ibVO6Nlo zRsFsr3*ZtKcIModqpYU)3n*n{^kKNt!>KHk%kAQ=V+(XQw+5ZhO4clw%UB;5hZdH0 zTky=-hw_vfI3oy^Zk%Uv?i&0r{|Nf83x14BS%;FoH6i+lk@jWnKo`R=~e1m#N9;szyiNvE1DjJJRW&LiZJDt)u zcm!A_YlXCtF%pT}?t(5yFX}EYLiIGNd2$iBwy3qvOvj%Yn;VeshyB?he9Xo?4jSHh z5b$}MPvtU#`EyzLOPO#uz2RATBcufWrdEA}elayp7ISB#YYTG`WwJk$`Pvv#AX}U_ zxIn$oj$1sEm8>;dSqP-b67)k^zab3;%?llgds8|Xiu9g1CB6cY{Ik8zBp4Y@S?rd? zY+97>N|f;xT}V7UJVZRu{o5JST#`=GRS{^t|i7GV)-gJtDNxr z7yWdS$(j=c#K983LK->9DmZ}rBRc=19I;|1Xpbf7M`9@Nj_i59MGEy~+ty6C@LatQ z>THExA-DIN?iUNOcKS_utk}V}{wMLBKlNge{|*OU4W)XLQcwWTA7@R5Vgc}qe9jMp&cJJe?!$6(ke|=j*w2;Ua#DvMYzRA#n z!1znzXlR9m$Pu;GMwdrUDe3O&<8k#+^(qbnPZ>pwhjc+?itL^4%Mf848X+tWB>H?g zA+3fFop4L5T-aNA_ElcH2?DUk!B6D07p|Aa8dZ3)R4$)PZV@47Iy=_Y-Xywz!+ofaIml+meJzFV zF!~r{fjr{&Og1gS2u7LL?E=|o!Oj9s+~^`gGseDHYpGd* zZB6z+AULPjg$Vb}LY>OFcBO121|L*arCIFBgghS~2C_^ir3{6?asM8F9v0K+K7|_| zOSzU>yTLWzV_yrzby#W*2S7ommu7Z%hNp7beadTd0k6MrygS~zCwGS%YeI{E>NarZ zEL|$uBm!nFMz-x7MSYX@zY6iz{|Jnkaex-{X_e_DXleVKSS%gS*9RZJ6OQaFwsINH z5oNQZGMzeE>yC$Xe6`^bRja*a>XUQ4ZhHo>@2>Jb@TbtK3|fiF^!<=@+<(;ycA7n8 zXaE?o){PYJG*q55(^c2@lU?bM8|;eo1~rfKcQ3Sg-7`(sxlaDkf#Lv!fK@=;77Wi{ z!P20_eaRK{LuV{GD1_wMz-}%B3_+-d<;9 zAmbjrZ`yNtwZ-;HMn;Cg1lX4MxSEeBHfk0pYSzeRg`6*2RGIe*S^kbv>lnsLz{j_o zD5gSC9%E^x!=$<5#I)G6;(ohP&>^sOeg3lUzlkOBl@iZ4#~dP5bLsFNV1$aPoWaYj z-i2DheZEFI+?hgd7y)JGy?+ka4?nf|p1$aA#2a|H-~zOyf%dbEQ>C2`CMc|}35a$; zD@(!;mJkqCmsmj9BZv4;8_V_a9Dr4Sew+W*GbLhni55X*MCnt`J&3+W|Kh{s$S|>q_CRrZB zf!*?PbP8D*z`~Y@Xn0WkDqa#NFtRPyZ)#TksbC)xzZe>1&Up<+RVH?=iHb2DL=Dec z)V^v=I9};!v2=R4f~Jnqz99KJj43G)Cz;}Rx3E!T7JYD=d3Jtm*#0sV)7WtFZMhxs z&o=k+(df;)9%^mf%$kP*NV4c?3GOjI2@R5{A27`^KXI@zr_5gJBN1I=vl?M%i>X&t z>!YwcYYr9z{l5I0hC>~27_8{<&nz48uB@$$W>t#8CU<5;Cr-gen2`)wF-eso8LkJ- z?Urifrn#SSOF{&}XtYh3$Rh?v9yl2XFXN57!zH!lPd_@C(b3UY`%chJSAhr>f6&K9 zqN8^i%=WMn*v{3wLX>*V$t3)V8#d&tz3%lae`5YUVe4UKb#xO&!M-16rv8P2X@5W< zNpL74SY=0FvD6sJmkGe59trIcfA)lI3<6jzx1HNv#-p+B&>V0Pr6=Dz?HGba2`eC! z2zhh#gSof`3vs|*TL1JXbX)y~@alwhH zHzI!XP6ZK3M7;UG%PA2L`Jf#0=q2TzEtg?=`@gCo;nhapEtN9PT-;to6wE8ZyhNyCI+Dw|O|`cVm+v-6sXn=21+{X<;*vB@3i z5L5VHI5P!r*Qbg6QyGNoz~LB-~~U6vZS z#w#fYT+-tPPyYRIK72^q4}sh!PV~X64e0k4VU`+W&d_0Z1t<$m8@yTkob0NWaTq$Vc#3>=1X@Oe>+YNUnEQ- zZBZ5DX-DR0Qn9q$*rWN#q#n=wzLoxsX`VTcqg#38^0DI;lcVTC(luVZKwS9E4uDL{ ze`)8f7MJc_9C{K(9Sk#{kr4v=Ommt;cYn; zY8%Jrs1M6XXXK=Law9@$uoH9#>EQhIUht1J{Yyng%)(DiXK3j6(Tz8x#!rh)hL~4e z^@y3U$dU@W%luTMI{n8?L3}56KHqL#E{Et`ZX7DGYgl%+sNP(CC+HA-6J`HcZVf4q zBYRYlKBKu9D%A6e8L!v(NYf`GQmiRxrcY{)k(2 zXApa+9si%sf)P493-DR>`}=LOqfg9MTaZh(qm-nox;{|(K5VYugJ#q_N7~o-MVa+% z&xOKmzi|LS1?E=}R+8WM2G zD=Ec|k}~fi_$3=fEUhWt&dto{wkZBVC3>sP`d8<)pt$*nQCZzF``0p~t>_&tq?5BP zr3ydM3O~)iUDKZguV^BE^X)6`xC{)PvybKo4zF+m{ty6}RC-0*_jMYK=?zg@HfN1O zUfBrbeF|0dr2-G1~=KB5S4nm8;el0@sNrV7JUi1$9jzkk`^ACa_!1%-Uz~ zW+Fm0dSmCDVzWCsbckpVL7YN~+8*0_gQ*Z@<1jrivDo~nv)^N}CUkLyso~IUXnPnC zAp#q@0j;1q?Kip++OIStJ2}6tb8{Up2&D>(CN1S1H`hMciJS9t#I=Xru4(SdZ?5Gi zozuyxFH8~`FT#U*m8J}lZ1rn_j`OqxwimZk;n!(=KIVG4mzNhj0e=p9W1rAn<`yy`G!nY&T{p#32mwnX6^%#kxd^F-Ct^b)w5dLl;>l z$gVp}cF5^+lF^{a^EpVF++@7tIR^7FDQRX$o3c$3ml3g6z4h6eg#YB9LaynLkl)x1 zWdI7qRzyzqtB{Oiq-4|){ApB4tzAhE@%O6mE4=_U-I4Hfu}=>-O{NsV_<8HkS4Zzr zJx}3ekAn64GyS3a5MvtzycTz`6O5L~5*y|R1q~RDzc5@*bsU6J=nFWkzW_6fs8Aj%9W#0LGS|zSVZqY?pf-n z7qBl2*%z$OZ@1cT-R9?`-t6038Ed`6s)m*;Cf{}c12sbj>S*+!cjA{U5D7Kh*LuXw zUZ~%Odd#_>U-cy0SPMCNj_Gdx$Tdc(6L#y%e zIGG&p$bKCj@q&k?8KGrku!L$dr()Rq3JV`ad$!P zi&tkCLUA$*w{nmVu{-jtJ{P-zo%Hf&af5rub2az`ZhRLs>p!Yu)s4goElN0bYK<`! zliwt7*o`jOPb?BsYumqm&zaKRZhL3czSnJ6TBx($^45+@=e`bqWEN26dukvO03!#= z#Y(`eXBwFq`81cta=V>Y^LS5c&3x~g$#n)>m+PnbxJ{=8i|$jFbD!w50mWDwcnl5R zFgW9z&n&rYCCN5gn61O)cVCs2qva{?a2$8Xpa04b@+HeWBPTy~o1Wo=1(1~l^yMYQ za3I(P(gRQnG|VKGK(3sQe4ubkz$3LbmnV9C5zPVo^!qx)0|@>j8t!bBHAucsU)sNu zgLTM;i8Ie=le&V#O2BT^_M$$McSo9ue&wObCFkahk$84C24?pfN^J{ekPFLq5AM71 z_+u(2SpD~4zILwRI8SQ8RL66FZH}au9pm(Qc$4EY;pP5JC<~8d{$U4X5>#%N+1U@( z)YE;f|F~I6`QuND&F-e`lAhMwQ4Po8sm?QKixtwN16KuCjl`f_GC(yeq&!Bs*ex3K z@uje^@W))<6r=VmlO@ysM4ZD3bnVexIm=Z{89$tj)ET?+_!aEY+e~$}FD%V&HS&(* z!nW%#j84x!-#ol2752C~s5|UB8FR=YRguni47<~~5WQzYpqEtt-6JNw-+qkeisByWzZZe5pzC$GaDow_{>!BEh;bkqs!AR8N{#e+4R=Z{T+VQUSE~Z)!8Fz`4;=7KUA#W1Z3?*oNB@(riMZ26-%v=W5z3OeLD$DoKK_! z3=#zzWzCNI!`(TW&-?sD7?af}1Jp|M5yiv(dD^@4t-=+6_Cbj8^IAzewu6O$55}(F z4~Z)^T2TUSx*KNI#Y8Oh4Twe&Wq7Y+%#+rmA-`(%aLMJCct_fRzrSZ#0Qog)Jbp=& z$Hn4ID)*@?hiz^MCe|;5_fy_~_Ea(i(TioL;;2%Lhcfj9x?oYdG~FNRpW@3`PpOrv zAlU~dX31J*O?@nycjSIT9;-Xa#;FY716o$zTY5W6p5G{3vp1~#rN66kgYp|Rd#6*C zu_l@K%?2W;YH?(&O~TGs44A{}v(wU|C6R8?8Pm-cXWt%Fx4q)kr3%Nn+MRBC=Y8oO z@`!Czrr-V?(IBU_OM{saL!rNMwiP86={&E?Y^EcwL-US$$LnJC`GKG#8iE6$tdDAS zLorO#4Xt*=v|VUIwbAD6FQRBDdbK&QCxlJ?a_Eg)$fT>&+VR?W69p&WY|xoP0};@| ze_2}K47$xlKtdD<9UaG17)lgxzR-%xI^}lI=62yzy<%LHmU~hCJ%M{dUQDN8? z0=+&eM6_8cdRW!q8dcUFowPbp;nIjm(2<}L0)gr+AJ*#5G6ftErQK(*iMw0WjFZ?j z$*b3Lx&5vvi8xGAI1*k~tLLtH%%D;TJm5|}-jg6~r~JhCzu-5@=UbiM8I{z2naFbL z$Zc$ZJsgF-h%}j0C0m=_zNo8t&z_fB#5qlLV{=i9chrVoJFdZzcejV)EUxX>CIA7X z6yy@(xjZXOnApqIM~wmdLiT|6*!U{do3p=20qxOlE{Gb7lA(pu^)}z)=7Jv?-q#kd z^Y!^)VNd5r9K~do=Wc7JtbHBaGz%d6NQK1W*U>({=Ww|X-(prFrw3L7(G&v2*GJ2e zC9zZqJ;)gg^)}A?{uufods$-_Ld()>1YsjXEbzUHdA`o635&5VfBE4jCj#$_y~xH! z(zZhx&X33Hof%3^<9D$yu6%jWWTjThBo{*!6?YsQZ=_AQzWFi) zxxJt4TGLk?(Xtz94-ne&gf!`CuosV}Mee7zG^OegoKftawz~w}pUIZ#wh||^eU@tN zoAu3|J8l3Yy2XZ4EA#9}$XPxYi_oN$rg9<0x#Y~X0+}!BX1>G=;F`4ctVcr?+U&Q! zC373Yb$&1~=HXrIA*vW}wnx)Y5d99-?la^MjizRE`8Xv@OZa4Do$V;5bE_rj4FIUA zU{egDlE_@QFOqtvSyAY<&3i3*3nS#^oleNg3eqqeDp1L8w%XFu%RqEK%MHFYQ!ms4 zh<&JvzkaZLhUim^%M++9T&VR9s5ihe6Q*+l9KwQno-)F)=xx zZHS!mVSGQgC{|6L*YPa&1F5K-vU1FEVsmo@Canpt<@8JQUd7WPolJHtd3oRM{m5R{ z#dZT)X5doRYInnqt}hPe7St@2LQy&S#I6=7f{MI*MQFV2A{@sU!9}@Zi z!WeRaZOBB=oR0BbZT}a@5~4Mn#<1NV-SJSs(j*v%iZbt4razN7Jv4w)e&K|#}wIt6y)PPM{0ar!I|m`?oV+D#;(rCKHRk)!d=b_|8DSJ7U* zdb>H_r=Nz*<>Ks?%{1bFDz!&YW?A$;dHX@GpN}tClQmHt-F}h1mbW2+CpZ7BOY%f0R?w%vPZF4^`2ucy9hT_!p zCoet9SLS|HnN38X2%D;Mh+l(!^81rrvNIcVAynx(tqd!6&R@5 z4%-#9sVne0p9JO0#N=628vr_n0JKaz=2=<*ZirhC1i zD#)PI^FNX!&M?$BfITHYJLlyVxB>AT5W+$0V1#$`LEnFLwV$9$6CPEnP}S zx6aNrZ@2ux7XXiBmL}i%Eb9_u^C&>M*O@-leq`}QxKH3qmho4fcJP^)qh197OpP!* zSkYT8Rs|ArS;2o2!2_mS%x-WB2nmLUpz9@E%gq+foA2LnyxxeywW8EeP`;72kI}-^ z#@9|yT6{psmGtK&W+9d7>u_{9w#Y9py|e}GNr-WlX+S@T*l%b}BO}Fv+T+}4EzRkZ z4&|4a_3h7=*~0dvIX~&O1j(Y{&};OFP)g@1tZ~y?+M;r(sy5gx+=#$U0HG`j`X{8a zrIN{s5!ZFBJUzW16fduKpL zuS`k(yA=Va3Q_`u44ZW)T3ZBWUUqo;b)Nc zXyn}TOAj>D366i2@`L(_KQD(D)8>Ot6oCQ~16rJ($Ur=c{oiBh@r*}A8^LB{`9|;c zy?XRPrbq-(=NAim%RYKWmnErg8-bc8zh8Di6OtX9Lg=5K1*PAi;A%^Cztd_zUs52Y zL-^Y%SJVV6r~9yE2}%8p_?1H)Brk{9978u!qE)u6KKu8LNgv}P? za4!T#tvMo`dz>M1)$H~h^_9SqCL7k1{lqPpjEKi&s^k3`l`a9TN_4Bn(rAiw&}@>| zGUqNaqo;<{*@UUR1Ddo$lXcG5@7RnsA&(?P_RZo#_#Iv$IV>K^1>V|PxJ=NIAnIu> zf*dXNFR9)(NeO7vHdobu==JpHu?N%2s44aX7`)|m^PQyn7~PB+ZVdyA=4y8{bP99rvV1*Wh zDK6{!!`T4dRFwlUT?7+mg6s?CNyyGYk%U(_oJQj?l;4r-@uTerQ~?cTb`UK}7848i zzy_3r3YWyRWEjJfjyp)$orHM&;F1J-scU2Vs|j<{xE1WJ-6tMq%c{}^h%6xvd zt4pT}X^x?W zB%FUrd~XyeREgyI>#-6uipZ2o)LS4cDk_o`)j#8YxWNnhJ{UJ5_lg;g2C{)kz^0-Z z6zlHzglKNzuDpRC%y1<0mT;h4RO3A?U!0|hwrXho z-j$6vel3X%&$uE>N_LT5e=rNCY*zJ@%J56|i`{yE);V*F^EG4$8rk(koZN6Vm7-j4 zCeaeR0uT*9{X6#4@S#~&Eb*HJX;O(Q&f)j=bSdR_4|Imi%$?ugb^K9iNOPRUB#z-5 z4+?z|WPaM~ij7)8Z+w>Q64c>aMqwH}(nQ<7yqwB*-u7}9h8-6UMZaEx{j+kNUw1%Z zxz7*=qJDCutfvdRS_yA8K&k!Vyf@xH{>dRM>NBRfZAkE+cZ7MVa^>1* z(bhIj=`I23Q}xV<>j2&$tSnziSE2(gDfrMiA@zA#_&X-< zGuJ@Bai(&&fzZ5a>Pf!w0fp>i4vgt-$4bjO=D+dM?cb4LrR7{q`(3jT6%w1rMwCRm zPK=7ua1rKK=l{fKQoCTq#Dbj{d-(;bArruS2$n!MEM}pOIuBVbm71=xQaMP0p5+M1 zH74L4H~46ioiT`Ji}FRy|Fy=!F+YEgtDKYJ!EpYQ0eH(^oUu9OCMCNDUXMN*>63-M-C>aD#)m0|4;BND z1sy-ab$sr>ZJwFWVEJMSW_n_W!>4I=+3%QCooGGLUz2GyM150q5J7=Z*F^~gQNKch zs9H@qUmf1n@dGwP$ocBgpZ{g&kJP8di{LoB_vZ@b*kc7a#H0MzGxyDx08*@>{^Be3l<%B8y# zzfii=Pk1pDi}=Zp>_M>RXdA#M-Jj{V%csOFjXqo$wukMlbDM)H`S8GO=qXce4r}%_ zCVhQDUvFsKeV1b2*NolK&ban3+Qq$k; zZvP5P+JPdoT)%eJ`S!u?*ISYsy$NL>#@AVFX+#Ke3_G$dDYdmx+T62grar;XQ}l51 z#@~}QTQU_fUm$(6%kt6>czneqF%jQMB3ZZ81FGJ2VT(O+L2_b6wASi8eYQ@2)S4aH zEN@+8U4ue>gWk{A!eU|qLSkTXnGK*PF1?p9Xa@HVqfgym?&vrQTm%aGvUfpWKAUiV{kF!__BmUvyHP2X}VevnM) z-f*oc{7yhSJ=Kt8=~<-c{xc7Vi2@J>_$yXsm`*%30&wuz<=f3mGa!$1 z{D|FEya_6`_Sp}`pkHeUl_=+@Ez>06CRx7t6F{p|42W@-bLwUp-l!<&aH#E(6~-yu@^$pG`eUB}|>qd4lZ9 zb-|m{Gb0ANXX)9+F|B#u%U#7swrG@mIqr^Uuz-Cttj|fNN9(nxYISYF5#F85Dls;F zkcIU2Yc*($kvIp!X6lLJ%wAr`M}8gLRqQ{|M3rP@j4!78#CO2Z65VS{*ZU(J723_= zerP6hzxkYI(!31Eu05*#(nPo|PmXEZTP81QVl`~}1UPWQW2d&`cF>V4a`EBnSrEly zv5XAsgVsxOphsAkjot%s?Hibrj5XaL^FWv?yxlJcp#@(l#IMU*K1HOBCWqyycFrCENA?P^NcIBht6kue&QI^16#{=GOA{vySco3W&v`ds_%b&{?r zOT^0OSL1ztbADMCk$Qqn%9)@@o#%@FP}I5k5nCPQn$IC_dARSmsd+(}>%qt(o4}d? zjZ62Zr&}*7?{M@(M^Ob73Kxv|16Q~jmRb?^Z{}`799`1OFR{zqWj8W!>~YCeq@ziU zF*m<_-wop)iJvf1s`SJL>dbs+SfC0icCNXd%iW=I$3lz?R0Y)L(L$`ZjNR|2AmnSV zB;O(8Q%@GL@+jX;Y$O@(DoF!2^!1bTA9*xr0TuG z-y$NSuk71_z`<4`P3Y*qh{@bpIKp=2$HqWR!w&M25BcS0y{>B#c}KFZ*9!i@sjUhr zg9er%Sea6%2zlqqx3wRfL(ur_J3*VdyhU(ewb|Fu9yvYAd247p`if%73Hl(DrTBBf z%@^*mT0|^ORpd3re>czm_=|&-a6z;E zzoLV&l?MF7`C4wedL<)SXlE(6omF%>0HQhN-89$yD<}x-{YyB!8&Bu>LZ#v`d}911 zY%41I;ibwTAgc;BAz?uFv%F}#;syYTp$p@6Vi3Qe>YP}~9$eS~!6YCo29%(DBsSrC zj{@*)H#)*49WV(we+1#KI|c?w%?W#JiRhzUNSP$yd)yr7c1qw;6+^~euJ>FgUcjSx zgodCHa*cT<4hRL4ZSM`CwK%-;Vxn0IU;{KV+ zM_${Ux_I6jjn;K{zr>x-K|Q68R;hO-`LWgpqk6=QYxVh=)8kC!c%vAPv3y?4>MO93 z$p?*s;zC7JEUK%ERVe@lwx-u&fP9}9Adb7GQF`nqDL>ITp3TSOyeY7=UW~~&HGbUk z`WZHrJw3iCtp)1z3m>SlnSuR_n2PX;udmr>m-lxH(?QlV+xiyj5*<@#yrNS*$K^JKRD*l-GlA}pXP+J}H=_CKkHjN&N9O0%-t3B9imRrT=YAg1 zX-Z1@_*cc?>Nxrxq05PU6z&GHcSoH$Q?IYhyNjw6vxiwFR2Pl*KMie-)IPW}o!Or( zWBk7D8n#RP{Hxr!r>9qTL5-Nzbd7R*M1ok*5&Lor&aoPUiPKgYt>_T<5oEJ>cupLY z9{F%OV2du6^3I&9pbrrO8~CuyOpVywqgA9J;9+@pFqq$kB^?)B2_0v~U2}wsUH>4GWL% zD=2+8ncb(O)ojHC60@=XP$A+;4lk)lg+O9(aL$5-HAhpk%l9;ysmAl1KMJ4ygPfk1 z2VCsua z2ij0dlnXJpLN%DyKCJ4b^1HB8m~_E&{hB*?^X9Q#4G50JbrR#dRX1LtA5Z5(GNo2H zfD9$v^7XQPWj1V|6d5{eokYdGJCJL+${Pr-{5?7uilcipaC>B`H8rW#V$Wu!S>1c@ zMF^HEhv{fRdyZEO%o*{C8x!0XFM3{?la-U}?Ez?Z7e-6t5KldP5f}GZLO-vjn4)_Lr2FihoHXI>k&)1kT3B=gLy<$w zM!tUc6Zm^WkShbWb${t$nX^98R9%`I!c94Eak|V>PGC+$%0A=j0{4*H_LVwR`?&zQ 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 j1XXh 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≷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